INSTAR 2K+ und 4K mit Homematic: neue CGI-Befehle und fertige Programme
Die neuen INSTAR-Kameras der 2K+- und 4K-Serie verstehen die bekannten CGI-Befehle nicht mehr: anderer Pfad, keine Bindestriche, neue Werte. Hier stehen die wichtigsten Befehle in der neuen Form – PIR, Position anfahren, Aufnahme starten, Alarm scharf schalten – und fünf fertige Homematic-Programme, in denen sie zusammenspielen.
Inhalt
Was sich geändert hat
Wer seine INSTAR-Kamera schon länger über die Homematic schaltet, kennt die Befehle aus unserer Anleitung für die HD-Modelle: /cgi-bin/hi3510/param.cgi, Parameter mit Bindestrich wie -enable=1, Zugangsdaten mit -usr und -pwd. Die neuen Kameras der UltraHD-Serie (2K+ und 4K) verstehen diese Syntax nicht mehr. INSTAR hat die CGI-Schnittstelle für diese Generation neu aufgebaut. Die Befehlsnamen sind zum Teil gleich geblieben, aber Pfad, Parameter und Werte haben sich geändert.
| HD und Full HD (720p/1080p) | 2K+ und 4K (1440p/2160p) | |
|---|---|---|
| Pfad | /param.cgi bzw. /cgi-bin/hi3510/param.cgi |
/param.cgi |
| Parameter | mit Bindestrich: -enable=1 |
ohne Bindestrich: enable=1 |
| Zugangsdaten in der URL | &-usr=…&-pwd=… |
&user=…&pwd=… |
| Bewegungsbereiche | 4, Auswahl mit -name=1 |
8, Auswahl mit area=1 |
| PIR-Sensor | setpirattr&-pir_enable=1 |
setpirattr&enable=1 |
| Nachtsicht | -infraredstat=auto, close (HD zusätzlich open) |
infraredstat=0, 1 oder 2 |
| Snapshot | /tmpfs/snap.jpg |
/snap.cgi?chn=11 |
| MJPEG-Stream | /cgi-bin/hi3510/mjpegstream.cgi?-chn=11 |
/livestream/11?action=play&media=mjpeg |
| Ganzen Alarm aus/an | nicht mit einem Befehl | setalarmattr&armed=0 bzw. armed=1 |
Die rechte Spalte stammt aus der aktuellen CGI-Liste der UltraHD-Serie im INSTAR-Wiki, die mittlere aus der 1080p-CGI-Liste und unserer bisherigen Anleitung. Jeder Befehl antwortet mit response="200", wenn er geklappt hat.
Welche Kameras betroffen sind
Die neue Befehlsliste gilt laut INSTAR-Wiki für die gesamte UltraHD-Serie. Für Homematic-Programme ist vor allem wichtig, ob eine Kamera einen PIR-Wärmesensor hat und ob sie schwenken kann:
| Modell | Auflösung | Einsatz | PIR | Schwenkbar |
|---|---|---|---|---|
| IN-8401 2K+ | 1440p | innen | ja | nein |
| IN-8403 2K+ PoE | 1440p | innen | ja | nein |
| IN-8415 2K+ | 1440p | innen | ja | ja |
| IN-9408 2K+ | 1440p | außen | ja | nein |
| IN-9420 2K+ | 1440p | außen | ja | ja |
| IN-8815 4K | 2160p | innen | – | ja |
| IN-9808 4K | 2160p | außen | ja | nein |
| IN-9820 4K | 2160p | außen | ja | ja, mit 5-fach-Zoom |
Einsatzort nach der Modellübersicht im INSTAR-Wiki, PIR und Schwenkfunktion nach den Produktangaben bei Amazon. Beim IN-8815 nennt die Produktbeschreibung keinen PIR-Sensor. Links zu allen Modellen stehen unten im Kasten „Erwähnte Geräte“.
Für die HD-Modelle (z. B. IN-5905 HD, IN-6012 HD, IN-7011 HD) und die Full-HD-Modelle (z. B. IN-8015, IN-9008, IN-9020) gelten weiter die bisherigen Befehle.
Vorbereitung an der Homematic
Die Befehle schickt die Zentrale wie bisher über den CUx-Daemon (CUxD) mit dem Gerät CMD_EXEC und wget. Das funktioniert an der CCU3, an RaspberryMatic und an OpenCCU.
- In der Weboberfläche der Kamera einen eigenen Benutzer für die Homematic anlegen, mit eigenem Passwort. So muss der Admin-Zugang nicht in Skripten stehen.
- In den Skripten
KAMERA-IP,BENUTZERundPASSWORTersetzen. Läuft die Kamera nicht auf Port 80, hängt Ihr den Port an:192.168.178.50:8080. - Sonderzeichen im Passwort müssen URL-kodiert werden, z. B.
@als%40und?als%3F. Einfacher ist ein langes Passwort aus Buchstaben und Ziffern. - Die URL steht in einfachen Anführungszeichen, damit die Shell auf der Zentrale die
&-Zeichen nicht als Befehlstrenner liest. - Jeden Befehl zuerst einmal im Browser aufrufen. Kommt
response="200"zurück, stimmen Adresse und Zugangsdaten.
In den fertigen Programmen weiter unten stehen IP-Adresse und Zugangsdaten einmal oben im Skript als Variablen ip und login. Dann müsst Ihr sie nur an einer Stelle ändern, und für eine zweite Kamera kopiert Ihr einfach die Zeilen mit einer zweiten IP.
Wichtig: Benutzer und Passwort gehen bei http:// im Klartext durchs Netz. Die Befehle deshalb nur im lokalen Netz nutzen und die Kamera nicht per Portfreigabe ins Internet stellen.
Die Befehle im Überblick
Diese Befehle sind für Homematic-Programme am nützlichsten. Jeder steht als einzelne Skriptzeile da, zum Testen über „Skript testen“ in der WebUI.
Alarm komplett scharf oder unscharf. Mit armed=0 ignoriert die Kamera alle Alarmauslöser auf einmal: Bewegungsbereiche, PIR, Objekterkennung und Alarmeingang. Mit armed=1 ist sie wieder scharf. Bei den alten Modellen musste man dafür jeden Bereich einzeln abschalten.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setalarmattr&armed=1&user=BENUTZER&pwd=PASSWORT'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setalarmattr&armed=0&user=BENUTZER&pwd=PASSWORT'");
PIR-Wärmesensor ein oder aus. Der Parameter heißt jetzt einfach enable. Zusätzlich gibt es setalarmattr&linkpir=1: Dann löst die Kamera nur aus, wenn PIR und Bildanalyse anschlagen. Das kann Fehlalarme durch Schatten, Regen oder Scheinwerfer verringern.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setpirattr&enable=1&user=BENUTZER&pwd=PASSWORT'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setpirattr&enable=0&user=BENUTZER&pwd=PASSWORT'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setalarmattr&linkpir=1&user=BENUTZER&pwd=PASSWORT'");
Gespeicherte Position anfahren (nur schwenkbare Modelle). index ist die Positionsnummer 1 bis 8. Der Befehl beginnt tatsächlich mit get, auch wenn er die Kamera bewegt. Die Position speichert Ihr vorher in der Weboberfläche der Kamera oder per setptzpreset&act=set&index=2, während die Kamera in die gewünschte Richtung zeigt. Der ältere Befehl ptzpreset ist laut INSTAR veraltet.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=getptzpreset&act=goto&index=2&user=BENUTZER&pwd=PASSWORT'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setptzpreset&act=set&index=2&user=BENUTZER&pwd=PASSWORT'");
Manuelle Aufnahme auf die SD-Karte. time ist die Länge in Sekunden (15 bis 900). stoprec beendet die Aufnahme vorzeitig.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=startrec&time=60&user=BENUTZER&pwd=PASSWORT'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=stoprec&user=BENUTZER&pwd=PASSWORT'");
Alarm auslösen. pushhostalarm startet ein Alarmereignis; im Systemprotokoll der Kamera erscheint es als „Manual alarm triggered“. Welche Alarmaktionen (Aufnahme, Push, E-Mail) dabei laufen, probiert Ihr am besten einmal mit Euren Einstellungen aus.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=pushhostalarm&user=BENUTZER&pwd=PASSWORT'");
Alarm vorübergehend stummschalten. interval ist die Dauer in Sekunden, bis 43.200 (12 Stunden).
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setmutealarm&interval=300&user=BENUTZER&pwd=PASSWORT'");
Bewegungsbereiche einzeln schalten. Es gibt acht Bereiche, gewählt mit area=1 bis area=8. Mehrere Bereiche lassen sich in einer URL hintereinander setzen, so wie es das INSTAR-Wiki zeigt.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setmdattr&area=1&enable=1&area=2&enable=1&user=BENUTZER&pwd=PASSWORT'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setmdattr&area=1&enable=0&area=2&enable=0&user=BENUTZER&pwd=PASSWORT'");
Im Wiki werden bei setmdattr immer auch Position, Größe und Empfindlichkeit mitgeschickt. Ob die Kamera nur area und enable annimmt, ohne die übrigen Werte zu ändern, prüft Ihr am besten einmal: erst den Befehl ausführen, dann mit param.cgi?cmd=getmdattr&area=1&user=…&pwd=… nachsehen, ob Position und Empfindlichkeit gleich geblieben sind. Für das reine Scharf- und Unscharfschalten ist armed der sicherere Weg.
Nachtsicht. infraredstat erwartet jetzt Zahlen: 0 = Infrarot-LEDs aus, 1 = immer an, 2 = automatisch über den Helligkeitssensor. Ob die Kamera gerade im Nachtmodus ist, verrät getnightstate.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://KAMERA-IP/param.cgi?cmd=setinfrared&infraredstat=2&user=BENUTZER&pwd=PASSWORT'");
Fertige Programme für die Homematic
- 1Bewegungsmelder Einfahrt meldet Bewegung
- 2Programm in der CCU3 bzw. OpenCCU startet
- 3Kamera fährt Position 2 an
- 4Aufnahme läuft, Push aufs Handy
Die Programme legt Ihr in der WebUI unter „Programme und Verknüpfungen → Programme & Zentralenverknüpfung“ an. Die Bedingungen stehen im Wenn-Teil, das Skript kommt als Aktivität „Skript“ in den Dann- bzw. Sonst-Teil. Gerätenamen und Systemvariablen sind Beispiele und müssen zu Eurer Installation passen.
1. Kameras mit der Alarmanlage scharf schalten
Die Systemvariable „Alarm Status“ aus der Anleitung zur Homematic-Alarmanlage schaltet die Kamera gleich mit, samt PIR-Sensor.
- Wenn: Systemvariable „Alarm Status“ bei „Aktiviert“ – bei Änderung auslösen
- Dann: Skript „scharf“
- Sonst: Skript „unscharf“
! Dann: Kamera scharf
string ip = "192.168.178.50"; ! IP der Kamera
string login = "&user=homematic&pwd=PASSWORT"; ! Kamera-Benutzer
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=setpirattr&enable=1" # login # "'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=setalarmattr&armed=1" # login # "'");
! Sonst: Kamera unscharf
string ip = "192.168.178.50"; ! IP der Kamera
string login = "&user=homematic&pwd=PASSWORT"; ! Kamera-Benutzer
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=setalarmattr&armed=0" # login # "'");
2. Tür geht auf: Kamera schwenkt hin und nimmt auf
Öffnet sich bei scharfer Anlage die Terrassentür, fährt eine schwenkbare Kamera (z. B. IN-8415, IN-9420, IN-9820) auf die Tür und nimmt zwei Minuten auf die SD-Karte auf. Vorher in der Kamera die Blickrichtung zur Tür als Position 2 speichern.
- Wenn: Tür-/Fensterkontakt „Terrassentür“ bei „offen“ – bei Änderung auslösen
- Und: Systemvariable „Alarm Status“ bei „Aktiviert“ – nur prüfen
- Dann: Skript
string ip = "192.168.178.50"; ! IP der Kamera
string login = "&user=homematic&pwd=PASSWORT"; ! Kamera-Benutzer
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=getptzpreset&act=goto&index=2" # login # "'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=startrec&time=120" # login # "'");
Die Aufnahme läuft schon, während die Kamera schwenkt, die ersten Sekunden zeigen also die Bewegung. Feste Kameras ohne Schwenkfunktion nutzen dasselbe Programm einfach ohne die getptzpreset-Zeile.
3. Homematic-Melder löst den Kamera-Alarm aus
Ein Homematic-Bewegungsmelder an der Einfahrt, ein Rauchmelder oder die Klingel lösen in der Kamera einen Alarm aus. Die Kamera arbeitet dann ihre eigenen Alarmaktionen ab, z. B. Aufnahme und Push in die INSTAR-App.
- Wenn: Bewegungsmelder „Einfahrt“ bei „Bewegung erkannt“ – bei Aktualisierung auslösen
- Dann: Skript
string ip = "192.168.178.50"; ! IP der Kamera
string login = "&user=homematic&pwd=PASSWORT"; ! Kamera-Benutzer
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=pushhostalarm" # login # "'");
4. Wer heimkommt, löst keinen Alarm aus
Geht bei unscharfer Anlage die Haustür auf, schaltet die Kamera ihren Alarm für fünf Minuten stumm. So landen keine Videos und Push-Nachrichten von der eigenen Familie auf dem Handy.
- Wenn: Tür-/Fensterkontakt „Haustür“ bei „offen“ – bei Änderung auslösen
- Und: Systemvariable „Alarm Status“ bei „Deaktiviert“ – nur prüfen
- Dann: Skript
string ip = "192.168.178.50"; ! IP der Kamera
string login = "&user=homematic&pwd=PASSWORT"; ! Kamera-Benutzer
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=setmutealarm&interval=300" # login # "'");
5. Innenkamera nur, wenn niemand zu Hause ist
Sobald jemand zu Hause ist, schaltet die Innenkamera ihren Alarm ab, und eine schwenkbare Kamera dreht sich auf eine Position, die nichts Privates zeigt, z. B. zur Wand (Position 1). Ist niemand mehr da, schwenkt sie zurück in den Raum (Position 2) und wird scharf. Die Systemvariable „Anwesenheit“ setzt Ihr z. B. mit dem Handsender, der Alarmanlage oder einer Anwesenheitserkennung.
- Wenn: Systemvariable „Anwesenheit“ bei „anwesend“ – bei Änderung auslösen
- Dann: Skript „privat“
- Sonst: Skript „überwachen“
! Dann: jemand ist zu Hause
string ip = "192.168.178.50"; ! IP der Kamera
string login = "&user=homematic&pwd=PASSWORT"; ! Kamera-Benutzer
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=setalarmattr&armed=0" # login # "'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=getptzpreset&act=goto&index=1" # login # "'");
! Sonst: niemand zu Hause
string ip = "192.168.178.50"; ! IP der Kamera
string login = "&user=homematic&pwd=PASSWORT"; ! Kamera-Benutzer
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=getptzpreset&act=goto&index=2" # login # "'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://" # ip # "/param.cgi?cmd=setalarmattr&armed=1" # login # "'");
Programme mit Sonst-Teil (1 und 5) haben bewusst nur eine Bedingung. So läuft der Sonst-Teil genau dann, wenn die Systemvariable auf den anderen Wert wechselt.
Snapshot und Videostream
Ein Einzelbild holt Ihr über snap.cgi. Kanal 11 liefert die volle Auflösung, 12 und 13 kleinere Bilder. Das Skript speichert das Bild auf der Zentrale, z. B. um es anschließend per E-Mail oder Push zu verschicken:
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /tmp/instar.jpg 'http://KAMERA-IP/snap.cgi?chn=11&user=BENUTZER&pwd=PASSWORT'");
Für Dashboards und Apps gibt es diese Streams. Sie sind zum Anschauen gedacht, nicht für wget auf der Zentrale, weil ein Stream nie endet:
- RTSP:
rtsp://BENUTZER:PASSWORT@KAMERA-IP:554/livestream/11(12 und 13 für die kleineren Streams) - MJPEG:
http://KAMERA-IP/livestream/11?action=play&media=mjpeg&user=BENUTZER&pwd=PASSWORT
Der Hauptstream der 2K+-Kameras ist H.265-kodiert. Nicht jeder Player und nicht jeder Browser kann das abspielen. Für ältere Tablets an der Wand ist der MJPEG-Stream oder Kanal 12 die sicherere Wahl.
Hinweis für ältere Full-HD-Modelle
Beim Durchsehen der 1080p-Dokumentation ist uns ein Detail aufgefallen, das auch für die bisherigen Skripte wichtig ist: Bei der IN-6014 HD und der IN-9020 Full HD hängt der PIR-Sensor intern am Alarmeingang. Dort schaltet Ihr ihn laut INSTAR nicht mit setpirattr, sondern mit setioattr&-io_enable=1 bzw. 0. Die übrigen Befehle für HD und Full HD stehen unverändert in der Anleitung für HD-Kameras; Tests mit Homematic gibt es zur IN-9008 und zur IN-9020.
Erwähnte Geräte
9 Produkte- Innen, PIRINSTAR IN-8401 2K+ (weiß)bei Amazon ansehen* (öffnet in neuem Tab)
- Innen, PoE, PIRINSTAR IN-8403 2K+ PoE (weiß)bei Amazon ansehen* (öffnet in neuem Tab)
- Innen, schwenkbar, PIRINSTAR IN-8415 2K+ (weiß)bei Amazon ansehen* (öffnet in neuem Tab)
- Außen, PIRINSTAR IN-9408 2K+ (weiß)bei Amazon ansehen* (öffnet in neuem Tab)
- Außen, schwenkbar, PIRINSTAR IN-9420 2K+ (weiß)bei Amazon ansehen* (öffnet in neuem Tab)
- Innen, schwenkbarINSTAR IN-8815 4K (weiß)bei Amazon ansehen* (öffnet in neuem Tab)
- Außen, PIRINSTAR IN-9808 4K (weiß)bei Amazon ansehen* (öffnet in neuem Tab)
- Außen, schwenkbar, ZoomINSTAR IN-9820 4K (schwarz)bei Amazon ansehen* (öffnet in neuem Tab)
- ZentraleHomematic IP Zentrale CCU3bei Amazon ansehen* (öffnet in neuem Tab)
*Werbung / Affiliate-Link – Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.
Häufige Fragen
Funktionieren die alten INSTAR-CGI-Befehle mit den 2K+-Kameras?
Nein. Die 2K+- und 4K-Modelle nutzen den Pfad /param.cgi mit Parametern ohne Bindestrich und die Zugangsdaten als user= und pwd=. Befehle mit /cgi-bin/hi3510/, -usr und -pwd sind für die HD- und Full-HD-Serie gedacht.
Wie schalte ich bei einer INSTAR 2K+ Kamera den kompletten Alarm ab?
Mit param.cgi?cmd=setalarmattr&armed=0. Die Kamera ignoriert dann alle Alarmauslöser. Mit armed=1 ist sie wieder scharf.
Wie fährt eine INSTAR 2K+ Kamera per Homematic eine Position an?
Mit param.cgi?cmd=getptzpreset&act=goto&index=2 (Position 1 bis 8). Das geht nur bei schwenkbaren Modellen wie IN-8415, IN-9420, IN-8815 oder IN-9820.
Wie bekomme ich ein Standbild von einer INSTAR 2K+ oder 4K Kamera?
Über http://KAMERA-IP/snap.cgi?chn=11&user=BENUTZER&pwd=PASSWORT. Kanal 11 ist die volle Auflösung, 12 und 13 liefern kleinere Bilder.
Brauche ich für die Befehle ein Zusatzprogramm auf der Homematic?
Ja, den CUx-Daemon (CUxD) mit dem Gerät CMD_EXEC. Darüber ruft die Zentrale die Kamera-URL mit wget auf. Das funktioniert an CCU3, RaspberryMatic und OpenCCU.
Quellen und weiterführende Links (12)
- INSTAR Wiki: UltraHD-Serie (2K+ & 4K) CGI-Liste
- INSTAR Wiki: 1440p Alarm-Menü – Bereiche (setmdattr)
- INSTAR Wiki: 1440p Alarm-Menü – Aktionen (setalarmattr, setpirattr, setmutealarm, pushhostalarm)
- INSTAR Wiki: 1440p IR-Nachtsicht (setinfrared, getnightstate)
- INSTAR Wiki: 1440p Aufnahme (startrec, stoprec)
- INSTAR Wiki: 1440p PTZ (getptzpreset, setptzpreset)
- INSTAR Wiki: IN-9408 2K+ Video-Streaming (RTSP, MJPEG, Snapshot)
- INSTAR Wiki: 1080p Alarm-Menü – Bereiche
- INSTAR Wiki: 1080p Alarm-Menü – Aktionen (PIR, setioattr)
- INSTAR Wiki: 1080p IR-Nachtsicht
- INSTAR Wiki: Innenkameras (Modellübersicht)
- INSTAR Wiki: Außenkameras (Modellübersicht)
Kommentare
Fragen oder Ergänzungen? Meldet Euch einfach in den Kommentaren.