Software

Other

Homematic CCU3

In diesem Tutorial werden wir die Homematic CCU3 verwenden, um eine INSTAR Full HD-Kamera über die Homematic WebUI zu steuern. Beachten Sie, dass es ein weiteres Tutorial gibt, das Node-RED über das Homematic RedMatic-Plugin verwendet, um im Grunde dasselbe zu tun. Wenn Ihnen Node-RED mehr liegt, finden Sie das RedMatic-Tutorial hier.

Zeitgesteuerte Kameraoperationen

In diesem Abschnitt möchten wir einen Zeitplan erstellen, um zu bestimmten Tageszeiten automatisch CGI-Befehle an unsere Kamera zu senden. Was wir erreichen wollen, ist eine Automatisierung, die die Bewegungserkennung der Kamera aktiviert, nachdem wir an einem Arbeitstag unser Hause verlassen haben, und sie deaktiviert, bevor wir wieder zu Hause ankommen.

Dazu erstellen wir mit CUx-D eine virtuelle Schaltfläche und schreiben in der Homematic-Benutzeroberfläche ein kleines Skript, das diese Schaltfläche auslöst, wenn es Zeit ist, den Alarm ein- / auszuschalten und den entsprechenden Befehl an unsere Kamera zu senden.

Installieren des CUx Daemon

Wir werden den CuX Deamon verwenden, um eine virtuelle Taste zu erstellen, an die wir später unsere programmierte Logik anhängen um Befehle an unsere Kamera senden können.

Wir müssen zuerst die neueste Version von CuxD herunterladen - im Moment ist dies:

Wählen Sie die richtige Version für Ihre CCU - in meinem Fall ist dies die CCU3:

Homematic IP

Jetzt können wir CuxD auf unserer Homematic CCU3 installieren. Gehen Sie zu Einstellungen / Systemeinstellungen und klicken Sie auf Zusatzsoftware:

Homematic IP

Wählen Sie nun die heruntergeladene Datei aus und klicken Sie auf Installation. Und nach dem Hochladen der Datei auf Starte Installation. Warten Sie einige Minuten und laden Sie die Homematic-Benutzeroberfläche neu, sobald die CCU wieder online ist.

Homematic IP

Erstellen einer virtuellen Schaltfläche

Kehren Sie in der Homematic-Benutzeroberfläche zu Settings / System Settings zurück und klicken Sie auf die neue Schaltfläche CUx-Daemon:

Homematic IP

Klicken Sie auf Geräte und wählen Sie:

  • Gerätetyp: (28) System
  • Funktion: Exec
  • Seriennummer: einfach bei 1 belassen
  • Name: kann leer gelassen werden
  • Icon: wählen Sie ein Icon
  • Control: Taster

Klicken Sie auf Gerät erzeugen, um Ihre Einstellungen zu speichern:

Homematic IP

Wir können den Button aus dem obigen Beispiel ansprechen, indem wir CUX2801001:1 die ID der Schaltfläche mit der angehangenen Seriennummer anrufen - dies war oben die 1 (CUX2801001 repräsentiert den Typ, die Funktion usw., die wir für unsere Schaltfläche ausgewählt haben). Im nächsten Schritt werden wir ein kleines Programm schreiben, das unserer Schaltfläche eine Reihe von Linux-Befehlen zuweist, die jedes Mal ausgeführt werden (EXEC), wenn die Schaltfläche verwendet wird.

Programm erstellen

Wir wollen jetzt ein Programm schreiben, das den Alarmplan unserer Kamera deaktiviert, wenn wir zu Hause sind, und ihn wieder aktivieren, nachdem wir zur Arbeit gegangen sind. Zu diesem Zweck weisen wir der virtuellen Schaltfläche, die wir oben erstellt haben, einen wget Befehl zu. Dieser Befehl kontaktiert unsere Kamera jedes Mal, wenn die virtuelle Taste ausgelöst wird und verwendet den CGI-Befehl, um den Alarmzeitplan einzuschalten.

Navigieren Sie zum Programmmenü und klicken Sie auf NEU, um das neue Programm zu erstellen:

Homematic IP

Wählen Sie Zeitsteuerung für die WENN Bedingung unseres Programms und stellen Sie das Zeitfenster ein, indem Sie nicht zu Hause sind. Im Beispiel wähle ich ein Fenster von 8:30 bis 18:30 Uhr an Werktagen:

Homematic IP

Jetzt müssen wir die Aktion schreiben, die ausgelöst werden soll, wenn die DANN Bedingung erfüllt ist. Klicken Sie auf das grüne Kreuz und wählen Sie Script aus dem Dropdown-Menü. Klicken Sie auf die drei Punkte, die daneben angezeigt werden, um Ihr Skript hinzuzufügen:

Homematic IP

Dadurch wird der Skript-Editor geöffnet. Kopieren Sie nun den folgenden Skriptblock und fügen Sie ihn in den Editor ein. Sie müssen den CGI-Befehl entsprechend Ihrer Kameraeinstellung anpassen - Im Beispiel habe ich ein IN-8015 Full HD für die IP-Adresse 192.168.2.117 verwendet und einen Administrator-Login mit dem Benutzernamen admin und dem Passwort instar:

WriteLine("Motion Detection Armed");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.117/param.cgi?cmd=setscheduleex&-ename=md&-week0=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week1=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week2=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week3=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week4=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week5=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week6=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-usr=admin&-pwd=instar'");

Homematic IP

In diesem CGI-Befehl stellen week0 - week6 die Wochentage Mo - So dar und jedes P steht für 30 Minuten des Tages (48 x 30 Minuten = 24 Stunden), an dem der Alarm auf Ihrer Kamera aktiv ist. Sie können diesen Zeitplan anpassen, indem Sie einen Teil des Ps durch Ns ersetzen. Jedes N deaktiviert den Alarm für 30 Minuten während dieser Tageszeit.

OPTIONAL: Sie können Ihr Skript testen, indem Sie die Homematic WebUI in einem anderen Browser-Tab ein zweites Mal öffnen, zum Programmmenü wechseln und statt eines NEUEN Programms auf Skript testen klicken und Ihr Skript in das Eingabefeld kopieren:

Homematic IP

Durch Ausführen des Skripts erhalten Sie die Befehlszeilenausgabe Motion Detection Armed und schalten den Alarmzeitplan an Ihrer Kamera ein. Ersetzen Sie alle Ps im CGI-Befehl durch Ns und versuchen Sie es erneut - jetzt wird der Zeitplan deaktiviert.

Jetzt müssen wir als SONST Bedingung nur noch den CGI Befehl zum deaktivieren des Alarmzeitplans hinzufügen und unser Programm ist fertig:

WriteLine("Motion Detection Disarmed");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.117/param.cgi?cmd=setscheduleex&-ename=md&-week0=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week1=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week2=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week3=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week4=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week5=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week6=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-usr=admin&-pwd=instar'");

Homematic IP

Klicken Sie auf OK, um das Programm zu speichern. Das Skript wird jeden Morgen um 8:30 Uhr ausgelöst und aktiviert den Alarm auf Ihrer Kamera. Um 18:30 Uhr wird die SONST Bedingung erfüllt und der Alarm wird ausgeschaltet, bevor Sie nach Hause zurückkehren.

Zusatz: Wenn Sie mehr als eine Kamera haben, können Sie diese gleichzeitig aktivieren und deaktivieren. In diesem Fall fügen Sie dem Skript einfach weitere Befehle hinzu, die Sie ausführen möchten:

WriteLine("Motion Detection Armed");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.114/param.cgi?cmd=setscheduleex&-ename=md&-week0=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week1=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week2=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week3=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week4=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week5=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week6=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-usr=admin&-pwd=instar'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.115/param.cgi?cmd=setscheduleex&-ename=md&-week0=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week1=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week2=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week3=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week4=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week5=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week6=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-usr=admin&-pwd=instar'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.116/param.cgi?cmd=setscheduleex&-ename=md&-week0=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week1=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week2=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week3=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week4=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week5=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week6=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-usr=admin&-pwd=instar'");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.117/param.cgi?cmd=setscheduleex&-ename=md&-week0=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week1=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week2=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week3=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week4=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week5=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week6=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-usr=admin&-pwd=instar'");

Hinweis Dies ist nur ein Beispiel für die Automatisierung Ihrer Kamerafunktion. Jede andere Funktion Ihrer Kamera kann von der Homematic CCU3 auf dieselbe Weise zeitgesteuert werden - Sie müssen lediglich den CGI-Befehl mit einem anderen Befehl aus unserer CGI-Dokumentation austauschen.

Verwendung der Homematic CCU3 als Alarmserver für unsere Kamera

Beachten Sie bitte

Es gibt eine neue Alarmserver API für WQHD 2K+ Kameras. Die einzelnen Schritte unten sind weiterhin gültig. Nur der URL Query nennt sich jetzt &trigger anstelle von &active, die Zahlenwerte haben sich geändert und ermöglichen jetzt das auswerten mehrerer, zeitgleicher Alarmauslöser! Sie finden eine Beispiel-Implementierung der MQTT- and HTTP-Alarmserver v2 API mit Node-RED hier.

Wir haben jetzt die Möglichkeit, CGI-Befehle geplant abzusenden, um unsere Kamera über die Homematic-Benutzeroberfläche zu automatisieren. In diesem Abschnitt wollen wir uns nun ansehen, wie wir die Homematic CCU3 benachrichtigen können, wenn unsere Kamera mithilfe des internen PIR-Sensors eine Bewegung erkennt.

Das Problem, das wir lösen werden, ist, dass es oft gewünscht wird, die IR-Nachtsicht-LEDs ausgeschaltet zu lassen, bis der PIR-Bewegungsmelder ausgelöst wird. Dies reduziert die Sichtbarkeit unserer Kamera in der Nacht sowie unsere Stromrechnung und vor allem ziehen wir nachts keine fliegenden Insekten mehr an, die wiederum Spinnen anziehen, die ihre Netze vor unserer Kameralinse bauen!

Alle INSTAR HD- und Full HD-Kameras können eine HTTP-GET-Anforderung an einen externen Alarmserver senden, wenn ein Alarm vom internen PIR-Sensor ausgelöst wird. Wir können auf der CCU3 einen Webhook erstellen, der eine solche Anforderung abfängt und eine Systemvariable schaltet. Danach müssen wir nur noch ein kleines Programm schreiben, das einen CGI-Befehl an unsere Kamera sendet, der die IR-LEDs für eine Minute einschaltet und dieses mit der Variable koppeln.

Einrichten einer Systemvariablen

Um eine neue Systemvariable zu erstellen, gehen Sie zu Einstellungen / Systemvariable und klicken Sie auf NEU:

Homematic IP

Ich werde die Variable motion_detected_8015 nennen, die vom Typ Alarm ist und nach dem Auslösen wahr sein sollte. Klicken Sie auf OK, um die Variable zu speichern.

Homematic IP

Alarmserver konfigurieren

Die Homematic-Software bietet uns jetzt einen Webhook, mit dem wir die Variable durch Senden einer Webanforderung an den CCU3-Server auslösen können. Wenn Ihre Homematic Server-IP beispielsweise 192.168.2.14 lautet (ändern Sie diese Adresse in Ihre eigene Server-Adresse), senden Sie die folgende Anfrage an Port 8181:

http://192.168.2.14:8181/ccu3.exe?Antwort=dom.GetObject("motion_detected_8015").State(1)

Die ccu3.exe kann beliebig benannt werden - voelligegal.exe. Wir müssen dann die Variable spezifizieren die wir auslösen wollen motion_detected_8015 und in welchen Zustand wir sie versetzen wollen - beim Erstellen der Variablen wählten wir das 1 bedeutet, dass die Variable wahr ist, also müssen wir hier State (1) wählen.

Kopieren Sie diesen Befehl in die Adressleiste Ihres Browsers und geben Sie Ihre Homematic-Benutzeranmeldung ein. Wenn Sie die Anfrage absenden, wird unsere Variable ausgelöst:

Homematic IP

Wir haben das Konzept getestet und können jetzt diesen Webhook zu unseren Kameras Alarmserver Konfiguration hinzufügen, damit die Kamera bei jedem Auslösen des internen Alarms unsere CCU3 benachrichtigt:

Homematic IP

Vergessen Sie nicht, den Alarmserver zu aktivieren und Ihre Homematic-Authentifizierung hinzuzufügen, damit Ihre Kamera die CCU3 kontaktieren kann.

Jetzt können wir zu den Alarm Aktionen wechseln und den PIR Bewegungsmelder aktivieren (stellen Sie sicher das alle Alarmbereiche und und die Kopplung mit dem PIR Sensor deaktiviert sind):

Homematic IP

Wir können jetzt das Programm testen - gehen Sie vor Ihre Kamera und sehen Sie, ob die Systemvariable ausgelöst wird:

Homematic IP

Die Variable wurde ein zweites Mal ausgelöst - diesmal von unserer Kamera!

Das Programm schreiben

Wie bereits zuvor können wir nun ein kleines Programm schreiben, das durch den Zustandswechsel der Systemvariablen motion_detected_8015 ausgelöst wird. Gehen Sie dafür zum Programmmenü zurück und wählen Sie Neu, um ein neues Programm zu erstellen:

Homematic IP

Das Skript, das wir benötigen, soll die IR-LEDs unserer Kamera aktivieren und - nach einer Verzögerung von 60s - wieder deaktivieren. Dies kann mit den folgenden zwei Skripten erfolgen:

WriteLine("Activate IR Nightvision");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.117/param.cgi?cmd=setinfrared&-infraredstat=auto&-usr=admin&-pwd=instar'");
WriteLine("Deactivate IR Nightvision");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.117/param.cgi?cmd=setinfrared&-infraredstat=close&-usr=admin&-pwd=instar'");

Homematic IP

Klicken Sie auf OK, um das Programm zu speichern. Wenn Sie jetzt wieder vor Ihre Kamera treten, wird die Systemvariable ausgelöst und die Nachtsicht-IR-LEDs Ihre Kamera werden auf automatisch gestellt (Sie werden nur bei Dunkelheit eingeschaltet). Nach einer Minute wechseln sie wieder in den deaktivierten Zustand:

Homematic IP

Anschließen unserer Kamera an einen Homematic Bewegungsmelder

In einem früheren Tutorial hatten wir bereits den Homematic PIR Sensor zur CCU3 hinzugefügt und Wir haben eine Systemvariable erstellt, die ausgelöst wird, wenn der Sensor eine Bewegung erkennt. Anschließend haben wir RedMatic - ein Node-RED-Addon für Homematic - installiert, um unsere Kamera mit dieser Systemvariablen zu verknüpfen. Dieses Mal werden wir es ohne die Hilfe von Node-RED machen.

Jetzt möchten wir die Alarmmeldung des externen PIR-Sensor verwenden, um unsere Kamera in eine andere Position zu schwenken zu lassen. Als Beispiel: Unsere Kamera beobachtet die linke Hausseite, während der PIR-Sensor die rechte Seite im Auge behält. Sobald der PIR Sensor eine Bewegung erkennt wollen wir die Kamera nach rechts schauen lassen, um den potentiellen Eindringling zu erfassen.

Das Programm das wir bereits erstellt hatten nutzt die Alarmmeldung des Homematic PIR Sensor (HM-Sen-MDIR-O-2 NEQ1545018:1) um die System Variable PIR Sensor auszulösen:

Homematic IP

We now need a second program that uses the the state of the PIR Sensor variable to send commands to our camera. So go to the Program Menu and click NEW:

Homematic IP

Wir benötigen jetzt ein zweites Programm, das den Status der Variablen PIR Sensor verwendet, um Befehle an unsere Kamera zu senden von Position 1 auf Position 2 zu wechseln. Gehen Sie also zum Programmmenü und klicken Sie auf NEU. Geben Sie beim Script die folgenden Zeilen ein:

WriteLine("Go to Position 2");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.117/param.cgi?cmd=preset&-act=goto&-number=1&-usr=admin&-pwd=instar'");

Wir können dann ein zweites Skript hinzufügen, das nach einer kurzen Verzögerung von 60s unsere Kamera zurück auf Position 1 bringt:

WriteLine("Go to Position 1");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - 'http://192.168.2.117/param.cgi?cmd=preset&-act=goto&-number=0&-usr=admin&-pwd=instar'");

Hinweis: Alternativkann hierfür auch die Kamera Park Position verwendet werden - die Kamera kehrt nach einem einstellbaren Zeitintervall nach dem Bewegen immer in die Parkposition zurück. Darüber ließen sich dann auch mehrere PIR Sensoren einbinden:

  • Wenn PIR Sensor 1 auslöst schaue nach links
  • Wenn PIR Sensor 2 auslöst schaue nach rechts
  • Ansonsten schaue geradeaus (über die Parkposition)

Und schon hat man multiple Blickwinkel abgedeckt, für die man zuvor mehrere Kameras benötigt hätte.

Ergänzung: Anstatt über die Systemvariable zu gehen, kann man alternativ auch direkt beim Eingang der Medlung durch den PIR Sensor den Versand des CGI Befehls auslösen:

Homematic IP

INSTAR Forum

Diskutieren Sie diesen Artikel im INSTAR Forum !