Gut zu wissen
- Authentifizierung laut Guide per HTTP Basic oder Digest (RFC 2617); viele Firmwares erlauben ab Werk nur Digest – curl daher mit --digest -u {user}:{pass}.
- Kein Login/Token nötig: jeder Request trägt die Anmeldung. Zu viele Fehlversuche sperren den Benutzer vorübergehend.
- PUT-Befehle mit XML-Body: curl --digest -u {user}:{pass} -X PUT -H "Content-Type: application/xml" -d '<…>' http://{ip}:{port}/ISAPI/…
Alle Hinweise (8)
- Kanalnummern: Konfigurations- und PTZ-URLs nutzen den Kanal (1), Streaming/Snapshot die Streaming-ID = Kanal×100+1 (101 Haupt-, 102 Substream); Aufnahme-Tracks üblich ebenso 101.
- Konfigurations-PUTs (Bewegung, Privatzone, IR, Licht, Trigger) am sichersten als GET → Wert ändern → kompletten Block per PUT zurück; Teil-Bodies akzeptiert nicht jede Firmware.
- Event-Verknüpfungen: PUT /ISAPI/Event/triggers/VMD-{kanal}/notifications ersetzt die gesamte Liste (email, center, record, IO, beep …).
- Je nach Firmware muss ISAPI unter Netzwerk → Erweitert → Integrationsprotokoll aktiviert sein.
- Unterstützte Funktionen je Modell über …/capabilities-URLs abfragen (z. B. /ISAPI/PTZCtrl/channels/1/capabilities, /ISAPI/Event/triggersCap).
Bewegungserkennung an
Im Generator öffnenAlarmanlage scharf → Bewegungserkennung der Kamera einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<MotionDetection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><enabled>true</enabled></MotionDetection>' 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/motionDetection'Schema verlangt weitere Pflichtknoten (z. B. MotionDetectionLayout): erst GET, nur <enabled> auf true ändern, kompletten Block per PUT zurückschreiben.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<MotionDetection version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><enabled>true</enabled></MotionDetection>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/motionDetection'");Quelle: vcentri.com
Bewegungserkennung aus
Im Generator öffnenJemand ist zu Hause → Bewegungserkennung ausschalten, keine Fehlalarme
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<MotionDetection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><enabled>false</enabled></MotionDetection>' 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/motionDetection'Wie bewegung_an mit <enabled>false</enabled> (GET → ändern → PUT). Smart-Events bei AcuSense separat.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<MotionDetection version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><enabled>false</enabled></MotionDetection>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/motionDetection'");Quelle: vcentri.com
Push-Benachrichtigung an
Im Generator öffnenAlle verlassen das Haus → Push-Nachrichten der Kamera einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<EventTriggerNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><EventTriggerNotification><id>center</id><notificationMethod>center</notificationMethod><notificationRecurrence>beginning</notificationRecurrence></EventTriggerNotification></EventTriggerNotificationList>' 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'Verknüpfung „center“ (Alarm an Zentrale senden) für Bewegung; Trigger-ID VMD-1 laut Guide. Dass Hik-Connect-Push darüber läuft, ist nicht dokumentiert. PUT ersetzt die ganze Liste: erst GET, Eintrag ergänzen, zurückschreiben.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<EventTriggerNotificationList version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><EventTriggerNotification><id>center</id><notificationMethod>center</notificationMethod><notificationRecurrence>beginning</notificationRecurrence></EventTriggerNotification></EventTriggerNotificationList>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'");Quelle: vcentri.com
Push-Benachrichtigung aus
Im Generator öffnenWieder zu Hause → keine Push-Nachrichten mehr aufs Handy
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<EventTriggerNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"></EventTriggerNotificationList>' 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'Achtung: leere Liste entfernt alle Verknüpfungen. Besser GET, nur den center-Eintrag entfernen, Rest zurückschreiben.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<EventTriggerNotificationList version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042></EventTriggerNotificationList>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'");Quelle: vcentri.com
Aufnahme an
Im Generator öffnenAlarm oder Abwesenheit → Aufnahme starten bzw. Aufnahmeplan aktivieren
curl -s --digest -u 'BENUTZER:PASSWORT' -X POST 'http://KAMERA-IP/ISAPI/ContentMgmt/record/control/manual/start/tracks/101'Manuelle Aufnahme starten (Abschnitt 15.2.32). Guide nennt <ID> nur „recording channel ID“; üblich ist Track 101 für Kanal 1. Benötigt SD-Karte/NAS bzw. NVR.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X POST 'http://KAMERA-IP/ISAPI/ContentMgmt/record/control/manual/start/tracks/101'");Quelle: download.isecj.jp
Aufnahme aus
Im Generator öffnenAnwesend → Aufnahme stoppen bzw. Aufnahmeplan deaktivieren
curl -s --digest -u 'BENUTZER:PASSWORT' -X POST 'http://KAMERA-IP/ISAPI/ContentMgmt/record/control/manual/stop/tracks/101'Manuelle Aufnahme stoppen (Abschnitt 15.2.33); Track-ID wie bei aufnahme_an.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X POST 'http://KAMERA-IP/ISAPI/ContentMgmt/record/control/manual/stop/tracks/101'");Quelle: download.isecj.jp
E-Mail-Alarm an
Im Generator öffnenUrlaub → Alarm-E-Mails mit Bild einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<EventTriggerNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><EventTriggerNotification><id>email</id><notificationMethod>email</notificationMethod><notificationRecurrence>beginning</notificationRecurrence></EventTriggerNotification></EventTriggerNotificationList>' 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'E-Mail-Verknüpfung für Bewegungsalarm; SMTP vorher unter /ISAPI/System/Network/mailing einrichten. PUT ersetzt die ganze Liste – GET, ergänzen, zurückschreiben.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<EventTriggerNotificationList version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><EventTriggerNotification><id>email</id><notificationMethod>email</notificationMethod><notificationRecurrence>beginning</notificationRecurrence></EventTriggerNotification></EventTriggerNotificationList>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'");Quelle: vcentri.com
E-Mail-Alarm aus
Im Generator öffnenZurück → Alarm-E-Mails ausschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<EventTriggerNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"></EventTriggerNotificationList>' 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'Achtung: leere Liste entfernt alle Verknüpfungen. Besser GET, nur email-Eintrag entfernen, andere (center, record …) beibehalten.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<EventTriggerNotificationList version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042></EventTriggerNotificationList>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Event/triggers/VMD-1/notifications'");Quelle: vcentri.com
Position anfahren
Im Generator öffnenBewegungsmelder an der Einfahrt löst aus → Kamera schwenkt auf die gespeicherte Position
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT 'http://KAMERA-IP/ISAPI/PTZCtrl/channels/1/presets/1/goto'Kein Body nötig (Abschnitt 4.16). Kanal bei Einzelkamera = 1.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT 'http://KAMERA-IP/ISAPI/PTZCtrl/channels/1/presets/1/goto'");Quelle: download.catalogosicurezza.com
Schwenken / Neigen
Im Generator öffnenKamera per Taster oder Programm schrittweise bewegen
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<PTZData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><pan>WERT</pan><tilt>0</tilt><zoom>0</zoom></PTZData>' 'http://KAMERA-IP/ISAPI/PTZCtrl/channels/1/continuous'pan/tilt/zoom je -100..100. Bewegung läuft weiter, bis alle Werte 0 gesendet werden.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<PTZData version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><pan>WERT</pan><tilt>0</tilt><zoom>0</zoom></PTZData>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/PTZCtrl/channels/1/continuous'");Quelle: download.catalogosicurezza.com
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<PTZData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><pan>WERT</pan><tilt>0</tilt><zoom>0</zoom><Momentary><duration>1000</duration></Momentary></PTZData>' 'http://KAMERA-IP/ISAPI/PTZCtrl/channels/1/momentary'Bewegung für duration Millisekunden, stoppt selbst. Unterstützung über /ISAPI/PTZCtrl/channels/{kanal}/capabilities prüfen.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<PTZData version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><pan>WERT</pan><tilt>0</tilt><zoom>0</zoom><Momentary><duration>1000</duration></Momentary></PTZData>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/PTZCtrl/channels/1/momentary'");Quelle: download.catalogosicurezza.com
Schnappschuss (Bild-URL)
Im Generator öffnenKlingel gedrückt → aktuelles Bild abrufen und per Push oder Telegram verschicken
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/ISAPI/Streaming/channels/101/picture'ID = Kanal×100+1 (101). Optional ?videoResolutionWidth=…&videoResolutionHeight=…; nur Hauptstream, nur JPEG. Beispiel im Guide nutzt auch /channels/1/picture.
Erwartete Antwort: JPEG-Bilddaten (image/jpeg)
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/ISAPI/Streaming/channels/101/picture'");Quelle: download.isecj.jp
Nachtsicht (IR) an
Im Generator öffnenNachtsicht dauerhaft einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<IrcutFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><IrcutFilterType>night</IrcutFilterType></IrcutFilter>' 'http://KAMERA-IP/ISAPI/Image/channels/1/IrcutFilter'Tag/Nacht fest auf Nacht. Bei Hybridlicht-Modellen steuert zusätzlich SupplementLight das Licht.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<IrcutFilter version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><IrcutFilterType>night</IrcutFilterType></IrcutFilter>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Image/channels/1/IrcutFilter'");Quelle: download.isecj.jp
Nachtsicht (IR) aus
Im Generator öffnenIR aus, z. B. hinter einer Scheibe, um Spiegelungen zu vermeiden
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<IrcutFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><IrcutFilterType>day</IrcutFilterType></IrcutFilter>' 'http://KAMERA-IP/ISAPI/Image/channels/1/IrcutFilter'Fest auf Tagmodus.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<IrcutFilter version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><IrcutFilterType>day</IrcutFilterType></IrcutFilter>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Image/channels/1/IrcutFilter'");Quelle: download.isecj.jp
Nachtsicht (IR) automatisch
Im Generator öffnenNachtsicht wieder der Kamera überlassen
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<IrcutFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><IrcutFilterType>auto</IrcutFilterType></IrcutFilter>' 'http://KAMERA-IP/ISAPI/Image/channels/1/IrcutFilter'Automatische Tag/Nacht-Umschaltung.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<IrcutFilter version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><IrcutFilterType>auto</IrcutFilterType></IrcutFilter>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Image/channels/1/IrcutFilter'");Quelle: download.isecj.jp
Privatsphäre-Modus an
Im Generator öffnenJemand ist zu Hause → Kamera schaut weg bzw. Bild wird abgedeckt
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<PrivacyMask version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><enabled>true</enabled></PrivacyMask>' 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/privacyMask'Schaltet vorher angelegte Privatzonen ein (deckt nicht das ganze Bild ab). GET → enabled ändern → PUT.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<PrivacyMask version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><enabled>true</enabled></PrivacyMask>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/privacyMask'");Quelle: download.isecj.jp
Privatsphäre-Modus aus
Im Generator öffnenAlle sind weg → Kamera wieder scharf
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<PrivacyMask version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><enabled>false</enabled></PrivacyMask>' 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/privacyMask'Privatzonen ausschalten.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<PrivacyMask version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><enabled>false</enabled></PrivacyMask>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/System/Video/inputs/channels/1/privacyMask'");Quelle: download.isecj.jp
Licht / Spotlight an
Im Generator öffnenBewegungsmelder im Garten → Spotlight der Kamera einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<SupplementLight version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><supplementLightMode>whitelight</supplementLightMode><mode>on</mode></SupplementLight>' 'http://KAMERA-IP/ISAPI/Image/channels/1/SupplementLight'Weißlicht dauerhaft an; Helligkeit optional über <brightnessLimit>0–100</brightnessLimit> (nur bei mode on). Werte über /SupplementLight/capabilities prüfen.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<SupplementLight version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><supplementLightMode>whitelight</supplementLightMode><mode>on</mode></SupplementLight>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Image/channels/1/SupplementLight'");Quelle: download.isecj.jp
Licht / Spotlight aus
Im Generator öffnenSpotlight nach einigen Minuten wieder ausschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<SupplementLight version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><mode>off</mode></SupplementLight>' 'http://KAMERA-IP/ISAPI/Image/channels/1/SupplementLight'Zusatzlicht aus (mode off; alternativ supplementLightMode close). Automatik: mode auto.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<SupplementLight version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><mode>off</mode></SupplementLight>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/Image/channels/1/SupplementLight'");Quelle: download.isecj.jp
Sirene / Alarmton auslösen
Im Generator öffnenEinbruchalarm der Homematic-Alarmanlage → Sirene der Kamera auslösen
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT 'http://KAMERA-IP/ISAPI/Event/triggers/notifications/AudioAlarm/1/test?format=json'Nicht in der offiziellen Doku; laut Community Test-Warnton ca. 5 s. ID je Modell verschieden (Beispiele 1 und 14). Offiziell nur Konfiguration über …/AudioAlarm?format=json.
Erwartete Antwort: JSON ResponseStatus OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT 'http://KAMERA-IP/ISAPI/Event/triggers/notifications/AudioAlarm/1/test?format=json'");Quelle: community.home-assistant.io
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary '<IOPortData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><outputState>high</outputState></IOPortData>' 'http://KAMERA-IP/ISAPI/System/IO/outputs/1/trigger'Schaltet Alarmausgang (Relais) für externe Sirene; mit <outputState>low</outputState> wieder aus. Nur bei Kameras mit Alarmausgang.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '<IOPortData version=\0422.0\042 xmlns=\042http://www.isapi.org/ver20/XMLSchema\042><outputState>high</outputState></IOPortData>' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT -H 'Content-Type: application/xml' --data-binary @- 'http://KAMERA-IP/ISAPI/System/IO/outputs/1/trigger'");Quelle: download.isecj.jp
Neustart
Im Generator öffnenKamera hängt → per Programm neu starten
curl -s --digest -u 'BENUTZER:PASSWORT' -X PUT 'http://KAMERA-IP/ISAPI/System/reboot'Nur PUT ist dokumentiert, kein Body. Benutzer braucht Administrator- bzw. Neustart-Rechte.
Erwartete Antwort: XML ResponseStatus mit statusCode 1 / statusString OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X PUT 'http://KAMERA-IP/ISAPI/System/reboot'");Quelle: download.isecj.jp
Videostream (RTSP)
Im Generator öffnenLive-Bild in Dashboard, NAS oder Tablet einbinden
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/ISAPI/Streaming/channels/101'RTSP statt HTTP (DESCRIBE/SETUP/PLAY, „GET“ nur Platzhalter): rtsp://{user}:{pass}@{ip}:554/ISAPI/Streaming/channels/101; 102 = Substream.
Erwartete Antwort: RTSP-Videostream (H.264/H.265)
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/ISAPI/Streaming/channels/101'");Quelle: download.isecj.jp
Modellreihen
- Hikvision Netzwerkkameras (Bullet/Dome/Turret, inkl. AcuSense/ColorVu)DS-2CD
- AcuSense-Kameras mit Blitzlicht und Sirene (Live Guard)DS-2CD2, -LU/SL, /SL, -ISU/SL
- ColorVu-Kameras mit WeißlichtDS-2CD, -L, -LU, -LS
- Hikvision PTZ-/Speed-Dome-KamerasDS-2DE, DS-2DF, DS-2DY
- HiLook by Hikvision IP-KamerasIPC-, PTZ-N
Häufige Fragen
Wie melde ich mich bei Hikvision-Befehlen an?
Hikvision nutzt Digest oder Basic. Im Generator wird die passende Anmeldung automatisch in den curl- und CCU-Befehl eingebaut.
Funktionieren die Befehle mit jedem Hikvision-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
- Hikvision Intelligent Security API (General Application) Developer Guide (2019, Spiegel iSec Japan)
- Hikvision IP Surveillance API User Guide Version 2.6 (Spiegel)
- Hikvision ISAPI 2.0 PTZ Service Specification (Spiegel)
- Hikvision Handbuch: ISAPI Service aktivieren
- Hikvision TPP Integration Center (offizielles Entwicklerportal, Registrierung)
- Home Assistant Community: Hikvision Audioalarm per ISAPI auslösen
- Hikvision: HiLook Produkte
Etwas funktioniert bei dir anders? Gib uns Bescheid – wir prüfen jede Meldung.