Gut zu wissen
- Alle Befehle per POST an /cgi-bin/api.cgi?cmd=<Befehl>, Body als JSON-Array, Content-Type application/json. Die Doku-Beispiele kürzen den Pfad meist auf /api.cgi; Abschnitt 2.1 und Snap nennen /cgi-bin/api.cgi. Snap funktioniert laut Support-Artikel auch als einfacher Browser-Aufruf (GET).
- Kurzsitzung (für curl von der CCU am einfachsten): &user={user}&password={pass} an die URL hängen. Langsitzung: zuerst cmd=Login mit Body [{"cmd":"Login","param":{"User":{"Version":"0","userName":"{user}","password":"{pass}"}}}], danach &token={token} statt user/password. Token gilt 3600 s (leaseTime).
- HTTP ist ab Werk aus, HTTPS an (Port 443). HTTP/RTSP-Port unter Einstellungen > Netzwerk > Erweitert > Porteinstellungen aktivieren. Bei HTTPS mit Selbstzertifikat in curl -k nötig.
Alle Hinweise (8)
- Kanal: in der API 0-basiert (Einzelkamera = 0); in RTSP-URLs zweistellig ab 01.
- Ob V20-Befehle (SetRecV20, SetPushV20, SetEmailV20, SetAudioAlarmV20) oder die alten (SetRec, SetPush, SetEmail) gelten, zeigt GetAbility: scheduleVersion ver=1 → V20.
- Sonderzeichen im Passwort in der URL kodieren (z. B. & als %26).
- Laut Reolink-Support: Akku-WLAN-Kameras (Argus u. a.), E1, E320/E321 und Lumus E430 (Hw. IPC_325C7) nur über Home Hub/NVR; 4G-Modelle (Go, TrackMix LTE, Duo 2 LTE) gar nicht. E1 Pro, E330 und Lumus Pro E450 gehen auch direkt.
- Bewegungserkennung hat in der API keinen globalen Ein/Aus-Schalter (enable wurde laut Revisionshistorie aus SetAlarm entfernt, SetMdAlarm hat keins); Reaktionen werden über Aufnahme, Push, E-Mail und Audioalarm einzeln geschaltet.
Push-Benachrichtigung an
Im Generator öffnenAlle verlassen das Haus → Push-Nachrichten der Kamera einschalten
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetPushV20","param":{"Push":{"enable":1,"schedule":{"channel":0}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPushV20&user=BENUTZER&password=PASSWORT'App-Push ein. In der Doku steht bei der URL versehentlich cmd=SetPush, der Body nutzt SetPushV20.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetPushV20\042,\042param\042:{\042Push\042:{\042enable\042:1,\042schedule\042:{\042channel\042:0}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPushV20&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetPush","param":{"Push":{"schedule":{"enable":1}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPush&user=BENUTZER&password=PASSWORT'Alter Befehl, laut Doku nur für Modellreihe 52X.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetPush\042,\042param\042:{\042Push\042:{\042schedule\042:{\042enable\042:1}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPush&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Push-Benachrichtigung aus
Im Generator öffnenWieder zu Hause → keine Push-Nachrichten mehr aufs Handy
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetPushV20","param":{"Push":{"enable":0,"schedule":{"channel":0}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPushV20&user=BENUTZER&password=PASSWORT'App-Push aus.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetPushV20\042,\042param\042:{\042Push\042:{\042enable\042:0,\042schedule\042:{\042channel\042:0}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPushV20&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetPush","param":{"Push":{"schedule":{"enable":0}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPush&user=BENUTZER&password=PASSWORT'Alter Befehl, laut Doku nur für 52X.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetPush\042,\042param\042:{\042Push\042:{\042schedule\042:{\042enable\042:0}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetPush&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Aufnahme an
Im Generator öffnenAlarm oder Abwesenheit → Aufnahme starten bzw. Aufnahmeplan aktivieren
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetRecV20","param":{"Rec":{"schedule":{"channel":0,"enable":1}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRecV20&user=BENUTZER&password=PASSWORT'Schaltet die Aufnahme laut Zeitplan ein. GetRecV20 zeigt zusätzlich Rec.enable. Kein Befehl zum manuellen Start einer Aufnahme.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetRecV20\042,\042param\042:{\042Rec\042:{\042schedule\042:{\042channel\042:0,\042enable\042:1}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRecV20&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetRec","param":{"Rec":{"channel":0,"schedule":{"enable":1}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRec&user=BENUTZER&password=PASSWORT'Alter Befehl für Geräte ohne V20-Zeitplan.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetRec\042,\042param\042:{\042Rec\042:{\042channel\042:0,\042schedule\042:{\042enable\042:1}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRec&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Aufnahme aus
Im Generator öffnenAnwesend → Aufnahme stoppen bzw. Aufnahmeplan deaktivieren
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetRecV20","param":{"Rec":{"schedule":{"channel":0,"enable":0}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRecV20&user=BENUTZER&password=PASSWORT'Aufnahme-Zeitplan aus.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetRecV20\042,\042param\042:{\042Rec\042:{\042schedule\042:{\042channel\042:0,\042enable\042:0}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRecV20&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetRec","param":{"Rec":{"channel":0,"schedule":{"enable":0}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRec&user=BENUTZER&password=PASSWORT'Alter Befehl, Aufnahme-Zeitplan aus.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetRec\042,\042param\042:{\042Rec\042:{\042channel\042:0,\042schedule\042:{\042enable\042:0}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetRec&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
E-Mail-Alarm an
Im Generator öffnenUrlaub → Alarm-E-Mails mit Bild einschalten
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetEmail","param":{"Email":{"schedule":{"enable":1}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetEmail&user=BENUTZER&password=PASSWORT'E-Mail-Alarm ein (SMTP muss eingerichtet sein).
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetEmail\042,\042param\042:{\042Email\042:{\042schedule\042:{\042enable\042:1}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetEmail&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
E-Mail-Alarm aus
Im Generator öffnenZurück → Alarm-E-Mails ausschalten
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetEmail","param":{"Email":{"schedule":{"enable":0}}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetEmail&user=BENUTZER&password=PASSWORT'E-Mail-Alarm aus.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetEmail\042,\042param\042:{\042Email\042:{\042schedule\042:{\042enable\042:0}}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetEmail&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Position anfahren
Im Generator öffnenBewegungsmelder an der Einfahrt löst aus → Kamera schwenkt auf die gespeicherte Position
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"PtzCtrl","param":{"channel":0,"op":"ToPos","id":1,"speed":32}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=PtzCtrl&user=BENUTZER&password=PASSWORT'Preset-ID 1–64 (laut SetPtzPreset).
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042PtzCtrl\042,\042param\042:{\042channel\042:0,\042op\042:\042ToPos\042,\042id\042:1,\042speed\042:32}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=PtzCtrl&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Schwenken / Neigen
Im Generator öffnenKamera per Taster oder Programm schrittweise bewegen
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"PtzCtrl","param":{"channel":0,"op":"WERT","speed":32}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=PtzCtrl&user=BENUTZER&password=PASSWORT'{wert}: Left, Right, Up, Down, LeftUp, LeftDown, RightUp, RightDown, ZoomInc, ZoomDec, FocusInc, FocusDec, IrisInc, IrisDec, Auto, StartPatrol, StopPatrol. Bewegung läuft bis op "Stop" gesendet wird. Die Doku beschreibt ZoomInc/ZoomDec vertauscht wirkend – Richtung am Gerät prüfen.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042PtzCtrl\042,\042param\042:{\042channel\042:0,\042op\042:\042WERT\042,\042speed\042:32}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=PtzCtrl&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Schnappschuss (Bild-URL)
Im Generator öffnenKlingel gedrückt → aktuelles Bild abrufen und per Push oder Telegram verschicken
curl -s -k 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=WERT&user=BENUTZER&password=PASSWORT'rs = beliebige Zeichenfolge gegen Browser-Cache. Laut Support-Artikel nicht bei B800, B400, P310C, D800, P335C, D400, Akku-Kameras, Lumus, E1/E1 Pro.
Erwartete Antwort: Content-Type: image/jpeg
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=WERT&user=BENUTZER&password=PASSWORT'");Quelle: support.reolink.com
Nachtsicht (IR) an
Im Generator öffnenNachtsicht dauerhaft einschalten
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetIrLights","action":0,"param":{"IrLights":{"channel":0,"state":"On"}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetIrLights&user=BENUTZER&password=PASSWORT'"On" steht im Wertebereich von GetIrLights; ob das Gerät es kann, per GetIrLights (action 1, range) prüfen.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetIrLights\042,\042action\042:0,\042param\042:{\042IrLights\042:{\042channel\042:0,\042state\042:\042On\042}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetIrLights&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Nachtsicht (IR) aus
Im Generator öffnenIR aus, z. B. hinter einer Scheibe, um Spiegelungen zu vermeiden
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetIrLights","action":0,"param":{"IrLights":{"channel":0,"state":"Off"}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetIrLights&user=BENUTZER&password=PASSWORT'IR-LEDs aus (Wert "Off" aus dem Wertebereich von GetIrLights).
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetIrLights\042,\042action\042:0,\042param\042:{\042IrLights\042:{\042channel\042:0,\042state\042:\042Off\042}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetIrLights&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Nachtsicht (IR) automatisch
Im Generator öffnenNachtsicht wieder der Kamera überlassen
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetIrLights","action":0,"param":{"IrLights":{"channel":0,"state":"Auto"}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetIrLights&user=BENUTZER&password=PASSWORT'IR-LEDs automatisch.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetIrLights\042,\042action\042:0,\042param\042:{\042IrLights\042:{\042channel\042:0,\042state\042:\042Auto\042}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetIrLights&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Privatsphäre-Modus an
Im Generator öffnenJemand ist zu Hause → Kamera schaut weg bzw. Bild wird abgedeckt
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetMask","action":0,"param":{"Mask":{"channel":0,"enable":1,"area":[{"screen":{"height":720,"width":1280},"block":{"x":0,"y":0,"width":1280,"height":720}}]}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetMask&user=BENUTZER&password=PASSWORT'Privatzonen-Maske ein. area-Felder sind laut Doku Pflicht; Beispielbereich anpassen bzw. vorhandene Bereiche per GetMask übernehmen.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetMask\042,\042action\042:0,\042param\042:{\042Mask\042:{\042channel\042:0,\042enable\042:1,\042area\042:[{\042screen\042:{\042height\042:720,\042width\042:1280},\042block\042:{\042x\042:0,\042y\042:0,\042width\042:1280,\042height\042:720}}]}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetMask&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Privatsphäre-Modus aus
Im Generator öffnenAlle sind weg → Kamera wieder scharf
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetMask","action":0,"param":{"Mask":{"channel":0,"enable":0,"area":[{"screen":{"height":720,"width":1280},"block":{"x":0,"y":0,"width":1280,"height":720}}]}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetMask&user=BENUTZER&password=PASSWORT'Maske aus; Bereiche wie bei privat_an mitsenden.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetMask\042,\042action\042:0,\042param\042:{\042Mask\042:{\042channel\042:0,\042enable\042:0,\042area\042:[{\042screen\042:{\042height\042:720,\042width\042:1280},\042block\042:{\042x\042:0,\042y\042:0,\042width\042:1280,\042height\042:720}}]}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetMask&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Licht / Spotlight an
Im Generator öffnenBewegungsmelder im Garten → Spotlight der Kamera einschalten
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetWhiteLed","param":{"WhiteLed":{"channel":0,"state":1,"bright":WERT}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetWhiteLed&user=BENUTZER&password=PASSWORT'Weißlicht/Spotlight ein, bright 1–100. mode: 0 nachts dauernd, 1 bei Alarm, 2 Zeitplan.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetWhiteLed\042,\042param\042:{\042WhiteLed\042:{\042channel\042:0,\042state\042:1,\042bright\042:WERT}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetWhiteLed&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Licht / Spotlight aus
Im Generator öffnenSpotlight nach einigen Minuten wieder ausschalten
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"SetWhiteLed","param":{"WhiteLed":{"channel":0,"state":0}}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetWhiteLed&user=BENUTZER&password=PASSWORT'Weißlicht aus.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042SetWhiteLed\042,\042param\042:{\042WhiteLed\042:{\042channel\042:0,\042state\042:0}}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=SetWhiteLed&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Sirene / Alarmton auslösen
Im Generator öffnenEinbruchalarm der Homematic-Alarmanlage → Sirene der Kamera auslösen
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"AudioAlarmPlay","action":0,"param":{"alarm_mode":"times","manual_switch":0,"times":WERT,"channel":0}}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=AudioAlarmPlay&user=BENUTZER&password=PASSWORT'Spielt den Alarmton {wert}-mal ab. Alternativ alarm_mode "manu" mit manual_switch 1 (an) / 0 (aus).
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042AudioAlarmPlay\042,\042action\042:0,\042param\042:{\042alarm_mode\042:\042times\042,\042manual_switch\042:0,\042times\042:WERT,\042channel\042:0}}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=AudioAlarmPlay&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Neustart
Im Generator öffnenKamera hängt → per Programm neu starten
curl -s -k -X POST -H 'Content-Type: application/json' --data-binary '[{"cmd":"Reboot"}]' 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=Reboot&user=BENUTZER&password=PASSWORT'Startet Kamera bzw. NVR neu.
Erwartete Antwort: "code" : 0 ... "rspCode" : 200
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '[{\042cmd\042:\042Reboot\042}]' | curl -s -m 10 -k -X POST -H 'Content-Type: application/json' --data-binary @- 'https://KAMERA-IP/cgi-bin/api.cgi?cmd=Reboot&user=BENUTZER&password=PASSWORT'");Quelle: community.symcon.de
Videostream (RTSP)
Im Generator öffnenLive-Bild in Dashboard, NAS oder Tablet einbinden
curl -s -k 'https://KAMERA-IP/Preview_01_main'Kein HTTP: rtsp://{user}:{pass}@{ip}:554/Preview_{kanal}_main (bzw. _sub). Kanal zweistellig ab 01; am Home Hub API-Kanal +1. RTSP-Port muss in den Netzwerkeinstellungen aktiviert sein. Kanal in der RTSP-Adresse zweistellig: 01 = Einzelkamera bzw. erster NVR-Kanal.
Erwartete Antwort: RTSP-Videostream
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'https://KAMERA-IP/Preview_01_main'");Quelle: support.reolink.com
curl -s -k 'https://KAMERA-IP/h264Preview_01_main'rtsp://{user}:{pass}@{ip}:554/h264Preview_{kanal}_main; bei H.265 h265Preview_{kanal}_main. Kanal in der RTSP-Adresse zweistellig: 01 = Einzelkamera bzw. erster NVR-Kanal.
Erwartete Antwort: RTSP-Videostream
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'https://KAMERA-IP/h264Preview_01_main'");Quelle: community.symcon.de
Was per URL nicht geht
Bewegungserkennung an, Bewegungserkennung aus – laut Dokumentation gibt es dafür keinen URL-Befehl.
Modellreihen
- RLC-Serie (PoE/WLAN, Bullet/Dome/Turret)RLC-4, RLC-5, RLC-8, RLC-1
- PTZ-Modelle (RLC-PTZ, TrackMix, E1)RLC-823, TrackMix, E1
- Duo / ColorX / FloodlightDuo, CX, Floodlight
- NVR (RLN) und Home HubRLN, Home Hub
- Akku-/4G-Kameras (Argus, Go) – CGI/RTSP nur über Home Hub/NVR bzw. gar nichtArgus, Go
Häufige Fragen
Wie melde ich mich bei Reolink-Befehlen an?
Reolink nutzt Zugangsdaten in der URL oder Token / API-Key. Im Generator wird die passende Anmeldung automatisch in den curl- und CCU-Befehl eingebaut.
Funktionieren die Befehle mit jedem Reolink-Modell?
Nicht immer. Je Befehl steht dabei, für welche Modellreihe und Firmware er dokumentiert ist. Im Zweifel den Befehl einmal im Browser oder per curl testen und die Antwort der Kamera prüfen.
Quellen
- Reolink Camera HTTP API User Guide Version 7 (2022-9), Kopie im Symcon-Forum
- Reolink Support: Live-JPEG-Bild per Webbrowser (Snap)
- Reolink Support: Introduction to RTSP
- Reolink Support: Which Reolink Products Support CGI/RTSP/ONVIF
Etwas funktioniert bei dir anders? Gib uns Bescheid – wir prüfen jede Meldung.