INSTAR Deutschland GmbH

Wie man mit Alarmserver-Abfragen arbeitet



Diskutieren Sie diesen Artikel im INSTAR Forum

INSTAR IP-Kameras bieten eine Alarmserver-Funktion - 1080p-Modelle, 720p-Modelle - mit der Sie eine Anfrage an ein Heimautomationssystem in Ihrem Netzwerk senden können. So wird Ihr Smarthome benachrichtigt und es kann eine Reaktion ausgelöst werden.

In einem aktuellen Update haben wir Parameter (URL Queries) eingeführt, die an diesen HTTP-GET-Request angehängt werden können. Es stehen drei benutzerdefinierte Parameter zur Verfügung, sowie ein spezifizierter Parameter, der uns sagen kann, was den Alarm ausgelöst hat. Letzterer - genannt aktive - kann die folgenden 10 Werte haben:

  • Alarmbereich 1 ausgelöst: &active=1
  • Alarmbereich 2 ausgelöst: &active=2
  • Alarmbereich 3 ausgelöst: &active=3
  • Alarmbereich 4 ausgelöst: &active=4
  • Alarm-In / PIR ausgelöst: &active=5
  • Audio Alarm ausgelöst: &active=6
  • Bewegungserkennung & ausgelöst (Bereich 1): &active=7
  • Bewegungserkennung & ausgelöst (Bereich 2): &active=8
  • Bewegungserkennung & ausgelöst (Bereich 3): &active=9
  • Bewegungserkennung & ausgelöst (Bereich 4): &active=10

Wir wollen nun einen Webhook in Node-RED - als Platzhalter für eine der vielen verfügbaren Smarthome-Lösungen - bauen und diesen Webhook je nach URL Query unterschiedliche Aktionen auslösen lassen.

Setup

  • Erste Kamera: IP=192.168.2.116, port=80, name=frontdoor, login=admin/instar
  • Zweite Kamera: IP=192.168.2.117, port=80, name=garden, login=admin/instar
  • Node-RED Server: IP=192.168.2.48, port=1880

Was wir erreichen wollen

Wenn unsere erste Kamera ausgelöst wird, möchten wir, dass sie den Node-RED Webhook kontaktiert, sich als frontdoor identifiziert und wenn der Alarm durch eine Audioerkennung (&active=6) ausgelöst wurde, wollen wir, dass die Kamera zu der gespeicherten Position 3 fährt - von der wir schätzen, dass das Geräusch gekommen sein wird. Wenn der Alarm durch die interne Bewegungserkennung ausgelöst wurde (also die Abfrage nicht den Parameter &active=6 übergeben hat), wollen wir unsere zweite Kamera garden kontaktieren und sie herumschwenken lassen auf Position 2, um den Bereich zu überprüfen, in dem die Bewegung erkannt wurde.

Und umgekehrt - wenn unsere zweite Kamera einen Alarm auslöst, soll sie den Node-RED Webhook kontaktieren, sich als garden identifizieren und im Falle eines Audioalarms in die Position 3 gehen. Wenn der Alarmauslöser nicht die Audioerkennung war, sollte stattdessen die frontdoor Kamera kontaktiert werden und in die Position 2 gehen.

Um unser Setup nach einem Alarmauslöser zurückzusetzen, können wir die Position 1 auf unsere Kameras als Park Position einstellen. Oder wir senden aktiv einen Befehl an unsere Kamera, um in die Ruheposition zurückzukehren - mit einer Verzögerung unserer Wahl. Das läßt sich dann auch mit einer manuellen Aufnahme kombinieren.

Siehe Node-RED Smarthome Übersicht für einen Anwendungsfall.

Node-RED Flow

Alarmserver Queries in Node-RED

In diesem Ablauf richten wir einen Webhook unter der URL /as-webhook/ ein - damit wir ihn unter der IP/Port unseres Node-RED-Servers + URL erreichen können. In diesem Fall ist dies: http://192.168.2.48:1880/as-webhook/:

Alarmserver Queries in Node-RED

Wenn wir eine GET-Anfrage über diese URL erhalten, müssen wir nun die damit gesendeten URL-Parameter raussuchen. Zuerst suchen wir nach einem Query namens Kamera und sehen, ob dieser den Wert frontdoor oder garden hat, um die Kamera zu identifizieren, die uns kontaktiert hat.

Dann müssen wir nach dem Parameter active suchen, um zu schauen ob der Alarm durch den Audioalarm - &active=6 - ausgelöst wurde oder nicht. Wenn ja, müssen wir den CGI-Befehl zurückgeben, um eine Videoaufzeichnung zu starten und die Kamera zur Position 3 zu bewegen. Andernfalls senden wir den CGI-Befehl, um sich auf Position 2 zu bewegen und die Aufnahme zu starten zur anderen Kamera.

Und nach einer bestimmten Zeit - ich werde 15s wählen - müssen wir den Befehl senden, die Aufnahme zu stoppen und zur Position 1 zurückzukehren.

Für unsere erste Kamera lauten diese Befehle wie folgt:

ALARM AKTION

  • http://192.168.2.116/param.cgi?cmd=manualrec&-act=on&-time=60&cmd=preset&-act=goto&-number=2&-usr=admin&-pwd=instar // if &active=6
  • http://192.168.2.117/param.cgi?cmd=manualrec&-act=on&-time=60&cmd=preset&-act=goto&-number=1&-usr=admin&-pwd=instar // if not &active=6

RESET

  • http://192.168.2.116/param.cgi?cmd=manualrec&-act=off&cmd=preset&-act=goto&-number=0&-usr=admin&-pwd=instar // if &active=6
  • http://192.168.2.117/param.cgi?cmd=manualrec&-act=off&cmd=preset&-act=goto&-number=0&-usr=admin&-pwd=instar // if not &active=6

Alarmserver Konfiguration

Der Alarmserver in unserer Kamera muss wie folgt konfiguriert werden:

Alarmserver Queries in Node-RED

Für die andere Kamera müssen wir nur den Kameranamen auf camera = frontdoor setzen.

Jedes Mal, wenn der Alarm auf unserer Kamera ausgelöst wird, kontaktiert sie jetzt unseren Node-RED Webhook und sendet sowohl ihren Namen als auch den Alarmauslöser.

Prüfung

Mit dem Inject Node können Sie testen, ob Node-RED korrekt eingerichtet ist. Durch Anklicken des Knotens senden Sie eine GET-Anfrage an Ihren Webhook senden und übertragen dabei die folgenden Query Parameter:

Alarmserver Queries in Node-RED

Importieren des Flows in Node-RED

Den kompletten Flow können Sie über den untenstehenden Link herunterladen:

Download Flow

Laden Sie diese JSON-Daten in einen Texteditor herunter und bearbeiten Sie die Pparameter - IP-Adressen, Logins, usw. - damit diese Ihren persönlichen Setup entsprechen. Sie können dafür einfach die Suchen & Ersetzen Funktion Ihres Text Editors nutzen.

Um die Daten in Ihre Node-RED-Installation zu importieren, öffnen Sie das Hamburger-Menü oben rechts, wählen Sie Import und Clipboard:

Alarmserver Queries in Node-RED

Kopieren und fügen Sie die Daten in das Textfeld ein und klicken Sie auf Import:

Alarmserver Queries in Node-RED

Und fertig!