INSTAR Deutschland GmbHINSTAR Deutschland GmbH

INSTAR MQTT Server mit ioBroker



Diskutieren Sie diesen Artikel im INSTAR Forum

Installieren des ioBroker unter CentOS 8

Wenn Sie ein anderes System als CentOS betreiben, beachten Sie bitte die offizielle Dokumentation um dir beim Einstieg zu helfen.

Einrichten von Node.js

Wir beginnen mit der Installation von ioBroker mit Hilfe des offiziellen Installationsskript in Node.js v10.

Wenn Sie yum module list nodejs ausführen, erfahren wir, welche Version von Node.js standardmäßig installiert wird. Die Ausgabe - wie unten gezeigt - bedeutet, dass wir Version 10 bekommen werden. Genau was wir brauchen:

CentOS-8 - AppStream
Name         Stream       Profiles                                    Summary                
nodejs       10 [d]       common [d], development, minimal, s2i       Javascript runtime     

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Alles, was wir also tun müssen, ist den folgenden Befehl auszuführen, um unsere Umgebung einzurichten:

yum module install nodejs

ioBroker Installation Skript

Das folgende Skript übernimmt dann die eigentliche Installation für uns:

curl -sL https://iobroker.net/install.sh | bash -

ioBroker mit Ihrer INSTAR IP-Kamera


Nachdem das Skript durchgelaufen ist, können Sie auf die ioBroker Oberfläche auf der IP-Adresse Ihres Servers mit dem Port 8081 zugreifen:


ioBroker mit Ihrer INSTAR IP-Kamera


Verbindung zum MQTT Broker herstellen

ioBroker bietet eine Reihe von Adaptern an, mit denen Sie die Software an die MQTT-Schnittstelle Ihrer Kamera anschließen können. Einige Beispiele sind:

Node-RED Adapter

Sie können Node-RED als Adapter direkt aus der ioBroker UI installieren:


ioBroker mit Ihrer INSTAR IP-Kamera


Sie können den Node-RED Webserver-Port - Standard 1880 -, eine Benutzeranmeldung für die Schnittstelle und einen URL-Rootpfad festlegen, z.B. /nodered:


ioBroker mit Ihrer INSTAR IP-Kamera


Der Node-RED-Adapter sollte nach dem Speichern Ihrer Einstellungen betriebsbereit sein:


ioBroker mit Ihrer INSTAR IP-Kamera


Jetzt können Sie über die IP-Adresse Ihres Servers auf die Node-RED-Benutzeroberfläche zugreifen, mit dem Port, der Root-URL und dem Login, das Sie zuvor festgelegt haben - z.B. http://192.168.2.111:1880/nodered/:


ioBroker mit Ihrer INSTAR IP-Kamera


Um eine Verbindung zu Ihrer Kamera herzustellen, können Sie unser Node-RED Tutorial verwenden.

Beispiel Flow

Beginnen Sie mit einem MQTT Input Knoten und fügen Sie das Status Topic für die Funktion hinzu, die Sie schalten möchten - z.B. instar/000389888811/status/alarm/area1/enable würde den aktuellen Zustand zurückgeben. (AN {"val":"1"} oder AUS {"val":"0"}) des ersten Alarmerkennungsbereichs:


ioBroker mit Ihrer INSTAR IP-Kamera


Fügen Sie nun einen Dashboard-Switch hinzu und weisen Sie ihm die beiden möglichen Zustände {"val": "1"} oder {"val": "0"} zu, die der Erkennungsbereich annehmen kann:


ioBroker mit Ihrer INSTAR IP-Kamera


Und beenden Sie die Sequenz, indem Sie einen MQTT Output-Knoten mit dem entsprechendenBefehl Topic instar/000389888811/alarm/area1/enable hinzufügen:


ioBroker mit Ihrer INSTAR IP-Kamera


Der resultierende Flow sieht so aus und kann aus dem untenstehenden JSON-Code in Node-RED importiert werden:


ioBroker mit Ihrer INSTAR IP-Kamera


[{"id":"b99baf44.25272","type":"mqtt in","z":"c2e5509e.eb938","name":"area1","topic":"instar/000389888811/status/alarm/area1/enable","qos":"1","datatype":"auto","broker":"b0e646ce.236148","x":70,"y":68,"wires":[["9158f257.9f7fc"]]},{"id":"7ec111e1.da923","type":"mqtt out","z":"c2e5509e.eb938","name":"area1","topic":"instar/000389888811/alarm/area1/enable","qos":"1","retain":"","broker":"b0e646ce.236148","x":340,"y":68,"wires":[]},{"id":"9158f257.9f7fc","type":"ui_switch","z":"c2e5509e.eb938","name":"Alarm Area 1","label":"Alarm Area 1","tooltip":"","group":"bb4da677.e6f318","order":0,"width":0,"height":0,"passthru":false,"decouple":"false","topic":"","style":"","onvalue":"{\"val\":\"1\"}","onvalueType":"str","onicon":"","oncolor":"","offvalue":"{\"val\":\"0\"}","offvalueType":"str","officon":"","offcolor":"","x":204,"y":68,"wires":[["7ec111e1.da923"]]},{"id":"b0e646ce.236148","type":"mqtt-broker","z":"","name":"IN-9010FHD","broker":"192.168.2.165","port":"8883","tls":"4a5bc5a5.6ceddc","clientid":"","usetls":true,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"bb4da677.e6f318","type":"ui_group","z":"","name":"Alarm Area 1","tab":"b5b7854e.b8db58","disp":true,"width":"6","collapse":false},{"id":"4a5bc5a5.6ceddc","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"","certname":"instar-cert.cert","keyname":"","caname":"","servername":"","verifyservercert":true},{"id":"b5b7854e.b8db58","type":"ui_tab","z":"","name":"MQTT","icon":"dashboard","disabled":false,"hidden":false}]

Sie können auf das Node-RED Dashboard zugreifen, indem Sie der URL, die Ihr Node-RED verwendet, ein ui hinzufügen - z.B. http://192.168.2.111:1880/nodered/ -> http://192.168.2.111:1880/nodered/ui:


ioBroker mit Ihrer INSTAR IP-Kamera


MQTT Adapter

Um mit unserer Kamera über das MQTT-Protokoll direkt über ioBroker kommunizieren zu können, können wir auch den MQTT Broker/Client Adapter aus den Listen der verfügbaren Adapter installieren. Mit diesem Adapter können Sie MQTT-Nachrichten (Client) veröffentlichen und abonnieren sowie als primärer MQTT-Server für alle Ihre INSTAR Full HD-Kameras fungieren.


ioBroker mit Ihrer INSTAR IP-Kamera


Nach der Installation werden Sie vom Konfigurationsbildschirm begrüßt. Wie Sie im Screenshot unten sehen können, haben wir uns nicht für den Server entschieden, da wir wollen den INSTAR MQTT Broker auf unserer Kamera verwenden. Wenn Sie möchten, dass ioBroker der Standard-MQTT-Server ist, wählen Sie Server/Broker anstelle von Client/subscriber. Der Server läuft auf dem Standard-Port von 1883 und benötigt in unserem Fall das Login, das wir in unserer MQTT Broker Konfiguration festgelegt haben.


ioBroker mit Ihrer INSTAR IP-Kamera


Wir wollen nun eine Kamera mit der MAC-Adresse 00:03:03:89:88:88:88:11 an ioBroker anbinden - also wir wissen es sicher dass jede Nachricht, die dazu bestimmt ist, unsere Kamera zu steuern, mit instar/000389888811/# beginnen muß. Wir können hierfür ein allgemeines Wildcard-Abonnement anlegen. Wenn Sie mehrere Kameras anbinden möchten, können Sie stattdessen instar/# abonieren.


ioBroker mit Ihrer INSTAR IP-Kamera


Jetzt, wo alles eingestellt ist, können wir alles speichern und den MQTT-Adapter aktivieren:


ioBroker mit Ihrer INSTAR IP-Kamera


Der auf Ihrer Kamera installierte MQTT Broker speichert (retained) jeweils das letzte Status-Update für jedes MQTT-Topic und pushed alle Updates - dank unseres Wildcard-Abonnement für instar/000389888811/# - in den ioBroker-Objektbaum sobald wir uns verbinden:


ioBroker mit Ihrer INSTAR IP-Kamera


So wissen wir nun, in welchem Zustand sich die Kamera befindet und können diese Informationen in einer der ioBroker UI / Visualisierung verwenden. Aber der interessante Teil fehlt noch - die Befehls-Topics, die uns erlauben, Funktionen auf unserer Kamera ein- oder auszuschalten. Die ioBroker Vis UI benötigt die RAW Topics, um eine Verbindung mit unserer Kamera herzustellen. Diese können Sie mit MQTT.fx dem ioBroker-Objektbaum hinzufügen:


ioBroker with your INSTAR IP Camera


Verbinden Sie MQTT.fx mit Ihrem MQTT-Broker und veröffentlichen (publish) Sie die Topics, die Sie hinzufügen möchten. Wenn Sie zum Beispiel die Zahl 1 unter dem Topic instar/000389888811/alarm/area1/sensitivity/raw veröffentlichen, wird die Empfindlichkeit für Alarmbereich 1 auf den Wert 1 gesetzt. Das Aktualisieren des Topics instar/000389888811/alarm/area1/enable/raw wird mit 1 den Bereich aktivieren oder mit 0 den deaktivieren.

Jetzt haben wir auch Zugang zu diesen Befehls-Topics in der Visualisierung unserer Wahl haben:


ioBroker mit Ihrer INSTAR IP-Kamera


Visualization

Mit dem vis-Adapter können Sie Ihr persönliches Admin-Dashboard in ioBroker erstellen. Gehen Sie zur Registerkarte Adapter und installieren Sie Visualisierung, um zu beginnen:


ioBroker mit Ihrer INSTAR IP-Kamera


Sie können das Vis-Konfigurationspanel auf Port 8082 (Standard) öffnen oder auf diese Schaltfläche in der Übersicht der Instanzen klicken:


ioBroker mit Ihrer INSTAR IP-Kamera


ioBroker begrüßt Sie mit einer Demo-Ansicht wie dieser:


ioBroker mit Ihrer INSTAR IP-Kamera


Wir können nun eine neue Ansicht erstellen und ein Radio Button Widget auf den Canvas ziehen. Weisen Sie einfach diesem einfach die MQTT RAW Topics zu, die bei Verwendung der Schaltfläche aktualisiert werden sollen:


ioBroker mit Ihrer INSTAR IP-Kamera


Ein Klick auf den Button sendet entweder ein 1 oder 0 an das gewählte Topic - in meinem Fall instar/000389888811/alarm/area2/enable/raw. Sobald die Kamera - mit der MAC-Adresse 00:03:89:88:88:88:11 - dieses Update erhält, wird der Bewegungserkennungsbereich 2 aktiviert oder deaktiviert.

Um die Empfindlichkeit dieses Bereichs zu ändern, können wir ein Horizontal Slider Widget verwenden und diesem das entsprechende MQTT RAW Topics zuweisen. In meinem Fall instar/000389888811/alarm/area2/sensitivity/raw:


ioBroker mit Ihrer INSTAR IP-Kamera


Um Ihre Widgets zu testen, können Sie nun in das Vis Dashboard wechseln, indem Sie auf die Pfeiltaste oben rechts klicken. Beachten Sie, dass Sie eine Lizenz zur Nutzung der Visualisierung benötigen, die für den privaten Gebrauch kostenlos ist. Ein Tutorial zur Erlangung dieser Lizenz finden Sie in einem unserer früheren Tutorials für ioBroker.


ioBroker mit Ihrer INSTAR IP-Kamera


Die obige Animation zeigt das ioBroker Vis Dashboard auf der rechten Seite und das Node-RED Dashboard - das wir in einem vorherigen Schritt erstellt haben - auf der linken Seite. Das Aktivieren des Alarmbereichs oder das Ändern seiner Empfindlichkeit auf dem Vis-Dashboard wird automatisch dank MQTT zum Node-RED Dashboard ge-pushed.

JSON Flow for Node-RED

[{"id":"b99baf44.25272","type":"mqtt in","z":"c2e5509e.eb938","name":"area2","topic":"instar/000389888811/status/alarm/area2/enable","qos":"1","datatype":"auto","broker":"b0e646ce.236148","x":70,"y":60,"wires":[["9158f257.9f7fc"]]},{"id":"7ec111e1.da923","type":"mqtt out","z":"c2e5509e.eb938","name":"area2","topic":"instar/000389888811/alarm/area2/enable","qos":"1","retain":"false","broker":"b0e646ce.236148","x":658,"y":60,"wires":[]},{"id":"9158f257.9f7fc","type":"ui_switch","z":"c2e5509e.eb938","name":"Alarm Area 2","label":"Alarm Area 2","tooltip":"","group":"bb4da677.e6f318","order":0,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"","style":"","onvalue":"{\"val\":\"1\"}","onvalueType":"str","onicon":"","oncolor":"","offvalue":"{\"val\":\"0\"}","offvalueType":"str","officon":"","offcolor":"","x":517,"y":60,"wires":[["7ec111e1.da923"]]},{"id":"2df6850f.0faa9a","type":"mqtt in","z":"c2e5509e.eb938","name":"area2","topic":"instar/000389888811/status/alarm/area2/sensitivity","qos":"1","datatype":"auto","broker":"b0e646ce.236148","x":70,"y":160,"wires":[["f6880ca3.226b4"]]},{"id":"2b08d32a.75d44c","type":"mqtt out","z":"c2e5509e.eb938","name":"area2","topic":"instar/000389888811/alarm/area2/sensitivity","qos":"1","retain":"false","broker":"b0e646ce.236148","x":854,"y":161,"wires":[]},{"id":"4d19ae3.73a4a5","type":"change","z":"c2e5509e.eb938","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.val","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":347,"y":161,"wires":[["20fc6702.9f70c8"]]},{"id":"f6880ca3.226b4","type":"json","z":"c2e5509e.eb938","name":"","property":"payload","action":"","pretty":false,"x":194,"y":161,"wires":[["4d19ae3.73a4a5"]]},{"id":"d054f844.49d928","type":"function","z":"c2e5509e.eb938","name":"Transform","func":"msg.payload = '{\"val\":\"'+msg.payload+'\"}';\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":161,"wires":[["2b08d32a.75d44c"]]},{"id":"20fc6702.9f70c8","type":"ui_slider","z":"c2e5509e.eb938","name":"","label":"Area Sensitivity","tooltip":"","group":"bb4da677.e6f318","order":1,"width":0,"height":0,"passthru":false,"outs":"all","topic":"","min":0,"max":"100","step":1,"x":544,"y":161,"wires":[["d054f844.49d928"]]},{"id":"1f9ab059.2a762","type":"json","z":"c2e5509e.eb938","name":"","property":"payload","action":"","pretty":false,"x":192,"y":60,"wires":[["1a86a3d8.30000c"]]},{"id":"1a86a3d8.30000c","type":"change","z":"c2e5509e.eb938","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.val","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":343,"y":60,"wires":[[]]},{"id":"b0e646ce.236148","type":"mqtt-broker","z":"","name":"IN-9010FHD","broker":"192.168.2.165","port":"8883","tls":"4a5bc5a5.6ceddc","clientid":"","usetls":true,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"bb4da677.e6f318","type":"ui_group","z":"","name":"Alarm Area 2","tab":"b5b7854e.b8db58","disp":true,"width":"6","collapse":false},{"id":"4a5bc5a5.6ceddc","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"","certname":"instar-cert.cert","keyname":"","caname":"","servername":"","verifyservercert":true},{"id":"b5b7854e.b8db58","type":"ui_tab","z":"","name":"MQTT","icon":"dashboard","disabled":false,"hidden":false}]

Live Video

Sie können das live Video Ihre Kameras mit einem Image Widget hinzufügen. Alles, was Sie dort eintragen müssen, ist der Snapshot-Pfad für Ihre Kamera und ein gewünschtes Aktualisierungsintervall. Für eine Kamera auf IP 192.168.2.165 und dem Login admin/instar sind die Snapshot-Pfade (geordnet in abnehmender Auflösung)):

http://192.168.2.165/tmpfs/snap.jpg?usr=admin&pwd=instar
http://192.168.2.165/tmpfs/auto.jpg?usr=admin&pwd=instar
http://192.168.2.165/tmpfs/auto2.jpg?usr=admin&pwd=instar

ioBroker mit Ihrer INSTAR IP-Kamera


Um einen Live-Videostream hinzuzufügen, können Sie auch Tools wieMotionEye verwenden, um das Video direkt auf Ihren ioBroker Vis zu übertragen:

Alarmserver und Webhooks

Kontaktieren Sie ioBroker, wenn Ihre Kamera einen Alarm auslöst.

Der einfachste Weg, Ihren Kamera-Alarmserver mit ioBroker zu verbinden, ist über den Node-RED-Adapter. Bitte schauen Sie sich hierfür unser Tutorial unter dem folgenden Link an: