Gut zu wissen
- Authentifizierung: curl --anyauth -u {user}:{pass} (so in allen VAPIX-Beispielen); AXIS OS nutzt standardmäßig Digest.
- Rechte: Snapshot/PTZ = Viewer, Licht/Sirene/Aufnahme = Operator, Privatzonen/Apps/Neustart = Administrator. Für die CCU ein eigenes Konto mit minimal nötigen Rechten anlegen.
- JSON-APIs (lightcontrol, siren_and_light, firmwaremanagement) per POST mit Content-Type: application/json; unterstützte Versionen via method getSupportedVersions.
Alle Hinweise (7)
- ptz.cgi antwortet bei Erfolg mit HTTP 204, bei Fehlern mit HTTP 200 und Text „Error: …“.
- Parameterwerte mit Leerzeichen/Sonderzeichen URL-kodieren (Preset-Namen, options=streamprofile%3DName).
- Push und E-Mail laufen über Ereignis-/Aktionsregeln – kein einfacher URL-Schalter belegt.
- record.cgi/stop.cgi sind veraltet und entfallen mit AXIS OS 13.
Bewegungserkennung an
Im Generator öffnenAlarmanlage scharf → Bewegungserkennung der Kamera einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/applications/control.cgi?action=start&package=VideoMotionDetection'Startet die VMD-App (Beispiel der VMD-2.1-Doku mit GET; Application API zeigt POST). Paketname bei neueren VMD-Versionen per list.cgi prüfen. Admin-Rechte.
Erwartete Antwort: OK
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/applications/control.cgi?action=start&package=VideoMotionDetection'");Quelle: developer.axis.com
Bewegungserkennung aus
Im Generator öffnenJemand ist zu Hause → Bewegungserkennung ausschalten, keine Fehlalarme
curl -s --digest -u 'BENUTZER:PASSWORT' -X POST 'http://KAMERA-IP/axis-cgi/applications/control.cgi?action=stop&package=VideoMotionDetection'Stoppt die App (action=stop laut Application API); Paketname per list.cgi prüfen. Admin-Rechte.
Erwartete Antwort: 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/axis-cgi/applications/control.cgi?action=stop&package=VideoMotionDetection'");Quelle: developer.axis.com
Aufnahme an
Im Generator öffnenAlarm oder Abwesenheit → Aufnahme starten bzw. Aufnahmeplan aktivieren
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/record/record.cgi?diskid=SD_DISK'Startet Edge-Aufnahme auf SD-Karte; recordingid aus der Antwort für Stopp merken. Optional options=streamprofile%3DName. Rechte: Operator/Admin.
Erwartete Antwort: <record recordingid="..." result="OK" />
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/record/record.cgi?diskid=SD_DISK'");Quelle: developer.axis.com
Aufnahme aus
Im Generator öffnenAnwesend → Aufnahme stoppen bzw. Aufnahmeplan deaktivieren
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/record/stop.cgi?recordingid=WERT'{wert} = recordingid aus record.cgi. Dauer-Aufnahmeprofil entfernen: record/continuous/removeconfiguration.cgi?profile=N.
Erwartete Antwort: <stop recordingid="..." result="OK" />
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/record/stop.cgi?recordingid=WERT'");Quelle: developer.axis.com
Position anfahren
Im Generator öffnenBewegungsmelder an der Einfahrt löst aus → Kamera schwenkt auf die gespeicherte Position
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?gotoserverpresetname=1&camera=1'Preset per Name; per Nummer: gotoserverpresetno={preset}. Leerzeichen URL-kodieren (%20).
Erwartete Antwort: HTTP 204 No Content (Fehler: 200 mit „Error:“)
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?gotoserverpresetname=1&camera=1'");Quelle: developer.axis.com
Schwenken / Neigen
Im Generator öffnenKamera per Taster oder Programm schrittweise bewegen
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?move=WERT&camera=1'{wert}: up, down, left, right, upleft, upright, downleft, downright, home, stop. Alternativ continuouspantiltmove=pan,tilt (-100..100, 0,0 = Stopp).
Erwartete Antwort: HTTP 204 No Content
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?move=WERT&camera=1'");Quelle: developer.axis.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/axis-cgi/jpg/image.cgi?resolution=1920x1080&camera=1'Zulässige Auflösungen siehe Properties.Image.Resolution; camera Standard 1 (bei Mehrkanalgeräten auch quad).
Erwartete Antwort: JPEG-Bild
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/jpg/image.cgi?resolution=1920x1080&camera=1'");Quelle: developer.axis.com
Nachtsicht (IR) an
Im Generator öffnenNachtsicht dauerhaft einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?ircutfilter=off&camera=1'IR-Sperrfilter aus = Nachtmodus. Laut Doku produkt-/firmwareabhängig.
Erwartete Antwort: HTTP 204 No Content
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?ircutfilter=off&camera=1'");Quelle: developer.axis.com
Nachtsicht (IR) aus
Im Generator öffnenIR aus, z. B. hinter einer Scheibe, um Spiegelungen zu vermeiden
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?ircutfilter=on&camera=1'IR-Sperrfilter an = Tagmodus. Produktabhängig.
Erwartete Antwort: HTTP 204 No Content
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?ircutfilter=on&camera=1'");Quelle: developer.axis.com
Nachtsicht (IR) automatisch
Im Generator öffnenNachtsicht wieder der Kamera überlassen
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?ircutfilter=auto&camera=1'Automatische Tag/Nacht-Umschaltung. Produktabhängig.
Erwartete Antwort: HTTP 204 No Content
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/com/ptz.cgi?ircutfilter=auto&camera=1'");Quelle: developer.axis.com
Privatsphäre-Modus an
Im Generator öffnenJemand ist zu Hause → Kamera schaut weg bzw. Bild wird abgedeckt
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/privacymask.cgi?action=enable_all'Aktiviert alle Privatzonen (Admin); nur wenn Properties.PrivacyMask.MainSwitch=yes. Einzelne Maske über param.cgi (Image.I0.Overlay.MaskWindows.M0.Enabled).
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/privacymask.cgi?action=enable_all'");Quelle: developer.axis.com
Privatsphäre-Modus aus
Im Generator öffnenAlle sind weg → Kamera wieder scharf
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/privacymask.cgi?action=disable_all'Deaktiviert alle Privatzonen (Admin); nur wenn Properties.PrivacyMask.MainSwitch=yes.
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-cgi/privacymask.cgi?action=disable_all'");Quelle: developer.axis.com
Licht / Spotlight an
Im Generator öffnenBewegungsmelder im Garten → Spotlight der Kamera einschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary '{"apiVersion":"1.0","context":"ccu","method":"activateLight","params":{"lightID":"led0"}}' 'http://KAMERA-IP/axis-cgi/lightcontrol.cgi'Schaltet IR- bzw. Weißlicht-LED (lightID per getLightInformation ermitteln). Deaktiviertes Licht vorher mit enableLight freigeben. Rechte: Operator/Admin.
Erwartete Antwort: "data": {}
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '{\042apiVersion\042:\0421.0\042,\042context\042:\042ccu\042,\042method\042:\042activateLight\042,\042params\042:{\042lightID\042:\042led0\042}}' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary @- 'http://KAMERA-IP/axis-cgi/lightcontrol.cgi'");Quelle: developer.axis.com
Licht / Spotlight aus
Im Generator öffnenSpotlight nach einigen Minuten wieder ausschalten
curl -s --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary '{"apiVersion":"1.0","context":"ccu","method":"deactivateLight","params":{"lightID":"led0"}}' 'http://KAMERA-IP/axis-cgi/lightcontrol.cgi'Schaltet die LED ab. Rechte: Operator/Admin.
Erwartete Antwort: "data": {}
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '{\042apiVersion\042:\0421.0\042,\042context\042:\042ccu\042,\042method\042:\042deactivateLight\042,\042params\042:{\042lightID\042:\042led0\042}}' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary @- 'http://KAMERA-IP/axis-cgi/lightcontrol.cgi'");Quelle: developer.axis.com
Sirene / Alarmton auslösen
Im Generator öffnenEinbruchalarm der Homematic-Alarmanlage → Sirene der Kamera auslösen
curl -s --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary '{"apiVersion":"1.0","context":"ccu","method":"start","params":{"profile":"WERT"}}' 'http://KAMERA-IP/axis-cgi/siren_and_light.cgi'Startet ein im Gerät angelegtes Profil (Name URL-/JSON-genau). Stopp: method stop mit params {"profile":"{wert}"} oder {"all":["siren","light"]}. Rechte: Operator/Admin.
Erwartete Antwort: "data"
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '{\042apiVersion\042:\0421.0\042,\042context\042:\042ccu\042,\042method\042:\042start\042,\042params\042:{\042profile\042:\042WERT\042}}' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary @- 'http://KAMERA-IP/axis-cgi/siren_and_light.cgi'");Quelle: developer.axis.com
Neustart
Im Generator öffnenKamera hängt → per Programm neu starten
curl -s --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary '{"apiVersion":"1.0","context":"ccu","method":"reboot"}' 'http://KAMERA-IP/axis-cgi/firmwaremanagement.cgi'Admin-Rechte. Für ältere Firmware gibt es restart.cgi (hier nicht geprüft).
Erwartete Antwort: "method": "reboot", "data": {}
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("printf '{\042apiVersion\042:\0421.0\042,\042context\042:\042ccu\042,\042method\042:\042reboot\042}' | curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' -X POST -H 'Content-Type: application/json' --data-binary @- 'http://KAMERA-IP/axis-cgi/firmwaremanagement.cgi'");Quelle: developer.axis.com
Videostream (RTSP)
Im Generator öffnenLive-Bild in Dashboard, NAS oder Tablet einbinden
curl -s --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-media/media.amp?videocodec=h264&resolution=1920x1080'Schema rtsp://{user}:{pass}@{ip}:554/axis-media/media.amp... (RTSP-Port Standard 554); alternativ streamprofile=NAME.
Als Homematic-Skript (CCU3/OpenCCU)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -m 10 --digest -u 'BENUTZER:PASSWORT' 'http://KAMERA-IP/axis-media/media.amp?videocodec=h264&resolution=1920x1080'");Quelle: developer.axis.com
Was per URL nicht geht
Push-Benachrichtigung an, Push-Benachrichtigung aus, E-Mail-Alarm an, E-Mail-Alarm aus – laut Dokumentation gibt es dafür keinen URL-Befehl.
Modellreihen
- Feste Kameras (M-, P-, Q-Serie Box/Dome/Bullet)M10, M30, M20, P13, P14, P32, P33, P37, Q16, Q35, Q17
- Feste Kameras mit IR/Weißlicht (-L/-LE/-DLE)-LE, -LV, -PLE, -DLE, P1455-LE, M2036-LE
- PTZ-Kameras (Q60/Q62/Q61, P56, M50)Q60, Q61, Q62, Q63, P56, M50, Q86
- Sirenen-/Lichtgeräte (D4100) und Geräte mit Siren-and-light-APID4100, D4200
Häufige Fragen
Wie melde ich mich bei Axis-Befehlen an?
Axis nutzt Digest oder Basic. Im Generator wird die passende Anmeldung automatisch in den curl- und CCU-Befehl eingebaut.
Funktionieren die Befehle mit jedem Axis-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
- VAPIX Pan/tilt/zoom API
- VAPIX Video streaming
- VAPIX Light control
- VAPIX Siren and light
- VAPIX Firmware management API
- VAPIX Overlay API (Privacy mask)
- VAPIX Edge storage API
- VAPIX Application API
- VAPIX Video motion detection 2.1 API
- VAPIX Network video Übersicht
Etwas funktioniert bei dir anders? Gib uns Bescheid – wir prüfen jede Meldung.