INSTAR MQTT Server mit Homematic

Redmatic

Wir haben bereits ein Tutorial über die Installation von Redmatic - dort konnten Sie Node-RED auf ihrer Homematic verwenden, um die Kontrolle über Ihre Kamera mit Hilfe der HTTP-Schnittstelle zu übernehmen (CGI Befehle). Dort finden Sie auch alle Informationen, die Sie benötigen, um Homematic-Sensoren an Ihre CCU anzuschließen und wie Sie Ihre Homematic-Software für die Kommunikation mit Ihrer INSTAR IP-Kamera einrichten.

Diesmal werden wir die gleichen Tools verwenden, aber sie werden sie mit der MQTT-Schnittstelle Ihrer INSTAR Full HD-Kamera verbinden.

Erste Schritte mit Node-RED

Wir haben bereits mit Node-RED in Verbindung mit dem MQTT Protokoll zur Automatisierung unserer IP-Kamera gearbeitet. Node-RED lässt sich sehr einfach über das Addon RedMatic auf dem Homematic Control Panel installieren.

RedMatic kombiniert mehrere Softwarekomponenten zu einem CCU-Add-on, das bequem auf einer Homematic CCU3 als Zusatzsoftware über das WebUI installiert werden kann.

Die installierte Node-RED-Version wird mit den CCU-Knoten für Node-RED ausgeliefert und ermöglicht es, Regeln, Automatisierungen, Skripte und Verbindungen von externen Diensten und Systemen für Ihr Homematic System auf einfache, visuelle Weise zu implementieren - und das weitgehend ohne Programmierkenntnisse.

Die RedMatic WebApp ist eine Benutzeroberfläche, die ohne weitere Konfiguration sofort genutzt werden kann. Die Installation kommt darüber hinaus noch mit einem Dashboard, das Sie zur Steuerung Ihrer Automatisierungen nutzen können.

  1. Zuerst müssen wir die neueste Version von Github herunterladen. Sie benötigen die Datei redmatic-<version>.tar.gz:

Homematic CCU3

  1. Gehen Sie in der Homematic WebUI auf das Control Panel um Zusatzsoftware zu installieren:

Homematic CCU3

Homematic CCU3

  1. Wählen Sie die heruntergeladene Datei aus und installieren sie das Addon (kann bis zu 10 Minuten dauernx).:

Homematic CCU3

Homematic CCU3

  1. Warten Sie dann, bis die CCU neu gestartet ist. Die Installation von RedMatic dauert einige Zeit. Node-RED wird danach erreichbar sein unter http://<ccu-adresse>/addons/red. Und das Node-RED Dashboard unter http://<ccu-adresse>/addons/red/ui:

Homematic CCU3

Das Standard-Login ist Admin (mit Großbuchstaben A) und das Admin-Passwort auf Ihrer CCU3!

Homematic Sensoren

Sie können dem früheren Tutorial folgen um zu lernen wie Sie Sensoren zu Ihrem Homematic-System hinzufügen können.

Bewegungsmelder

Wir möchten nun einen Homematic Bewegungsmelder verwenden, um unsere Schwenk-/Neigekamera auf gespeicherte Position 2 zu bewegen, wenn eine Bewegung erkannt wird. Nachdem der Bewegungsmelder in seinen Ruhezustand zurückgekehrt ist, möchten wir, dass unsere Kamera wieder in die Position 1 schwenkt.

  1. Zuerst ziehen wir einen CCU Value Knoten auf den Arbeitsbereich und doppelklicken darauf, um die Konfigurationsseite zu öffnen.
  2. Wählen Sie BidCos-RF als Schnittstelle, um Ihren Homematic PIR-Bewegungsmelder einzubinden.
  3. Wenn Sie in das Feld Kanal klicken, sehen Sie alle RF-Geräte, die mit Ihrem Homematic Center verbunden sind. Als wir unseren Bewegungsmelder anlernten, sahen wir, dass der Name des Melders mit NEQ1545018 beginnt. Wir haben zwei Einträge zur Verfügung - der erste endet mit :0 und der zweite mit :1. Wir werden den zweiten hier auswählen (wenn Sie den ersten nehmen und Sie werden sehen, dass es noch andere Variablen gibt, einschließlich LOWBAT, das eine Warnung bei niedrigem Batteriestand beinhaltet, die wir in unsere Node-RED-Ströme aufnehmen könnten.)
  4. Als Datenpunkt wählen wir Motion. Dieser gibt uns immer eine Meldung von true, sobald der Sensor eine Bewegung erkannt hat.

Homematic CCU3

Der Bewegungssensor sendet entweder einen false oder true Zustand, wenn sich sein Zustand ändert - eine erkannte Bewegung löst den true Zustand aus und fällt nach einer Abklingzeit wieder auf false Zustand zurück. Um diese Informationen zu nutzen, werden wir einen Switch Knoten hinzufügen, der diese beiden Nachrichten trennt:

Homematic CCU3

Falls wir von unserem Sensor (Alarm) ein true erhalten, wollen wir die Nachrichten auf {"val": "1"} ändern. Ein false bedeutet, dass der Sensor wieder in den Ruhezustand gegangen ist (Idle) und wir müssen die Meldung auf {"val":"0"} ändern:

Homematic CCU3

Diese Nachricht können wir nun nutzen, um über die MQTT-Schnittstelle ein Preset auf unserer Kamera anzufahren. Ein Wert von 0 repräsentiert die erste und ein Wert von 1 die zweite voreingestellte Position auf unserer Kamera. Das MQTT-Topic, an das wir diese Informationen senden müssen, heißt features/ptz/preset. Wir können einen MQTT Out Knoten verwenden, um dieses Status-Update an unsere Kamera zu senden:

Homematic CCU3

Damit sich Node-RED mit dem MQTT Broker Ihrer Kamera verbinden kann, müssen Sie zunächst den Server definieren. Geben Sie die IP-Adresse Ihrer Kamera und den MQTT-Port ein, den Sie in der WebUI Ihrer Kamera einstellt haben. Wenn Sie den regulären Port (Standard 1883) wählen, überspringen Sie den folgenden Schritt. Wenn Sie jedoch die TLS-Verschlüsselung für Ihr MQTT-Netzwerk verwenden möchten, wählen Sie stattdessen den SSL-Port (Standard 8883). Klicken Sie danach auf das Editieren Symbol, um das SSL-Zertifikat Ihrer Kamera unten hinzuzufügen:

Homematic CCU3

Öffnen Sie die WebUI Ihrer Kamera und navigieren Sie zum Konfigurationsmenü MQTT Broker unter Features. Klicken Sie dort auf die Schaltfläche Download, um die Client-Zertifikatsdatei von Ihrer Kamera herunterzuladen.

Zurück in Node-RED klicken Sie auf Upload, um das Zertifikat hochzuladen:

Homematic CCU3

Wechseln Sie danach auf die Registerkarte Security und geben Sie dort das von Ihnen eingestellte MQTT Broker Login ein:

Homematic CCU3

Jedes Mal, wenn der Bewegungssensor ausgelöst wird, erhält Ihre Kamera nun den Befehl, zu Preset Position 2 anzufahren und zu Position 1 zurückzukehren, wenn der Sensor wieder in den Ruhezustand wechselt.

Wir können die gleichen Schritte für den Türsensor wiederholen, den wir zuvor unserem Homematic-System hinzugefügt haben, um unsere Kamera zur Preset Position 3 zu schicken, sobald jemand die Türe öffnet:

Homematic CCU3

Den Node-RED Flow herunterladen

Sie können den kompletten Flow herunterladen und in Ihr Node-RED Admin-Panel importieren. Kopieren Sie den untenstehenden JSON-Code und klicken Sie in Node-RED auf das Hamburger-Menü oben rechts. Wählen Sie Import und kopieren Sie den Code in das Eingabefeld. Klicken Sie auf die rote Schaltfläche Import und ziehen Sie den Fluss an die gewünschte Position.

[{"id":"d6b5f7c8.7183e8","type":"ccu-value","z":"427fc89b.e34038","name":"Motion Detector","iface":"BidCos-RF","channel":"NEQ1545018:1 HM-Sen-MDIR-O-2 NEQ1545018:1","datapoint":"MOTION","mode":"","start":true,"change":true,"cache":false,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":100,"y":100,"wires":[["2471cac0.29f4d6"]]},{"id":"d3434bbe.05fa58","type":"change","z":"427fc89b.e34038","name":"Alarm","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\":\"1\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":76,"wires":[["a8958f92.4cb8c"]]},{"id":"a8958f92.4cb8c","type":"mqtt out","z":"427fc89b.e34038","name":"features/ptz/preset","topic":"instar/000389888811/features/ptz/preset","qos":"1","retain":"false","broker":"6df4e12a.0c747","x":556,"y":99,"wires":[]},{"id":"2471cac0.29f4d6","type":"switch","z":"427fc89b.e34038","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":252,"y":100,"wires":[["d3434bbe.05fa58"],["6197b16.f4d705"]]},{"id":"6197b16.f4d705","type":"change","z":"427fc89b.e34038","name":"Idle","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\":\"0\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":127,"wires":[["a8958f92.4cb8c"]]},{"id":"c7056a66.400448","type":"ccu-value","z":"427fc89b.e34038","name":"Door Sensor","iface":"BidCos-RF","channel":"OEQ1985716:1 HM-Sec-SCo OEQ1985716:1","datapoint":"STATE","mode":"","start":true,"change":true,"cache":false,"queue":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":90,"y":200,"wires":[["1e91dd74.85f263"]]},{"id":"daa36829.abb308","type":"change","z":"427fc89b.e34038","name":"Alarm","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\":\"2\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":176,"wires":[["7de0a4c1.0f702c"]]},{"id":"7de0a4c1.0f702c","type":"mqtt out","z":"427fc89b.e34038","name":"features/ptz/preset","topic":"instar/000389888811/features/ptz/preset","qos":"1","retain":"false","broker":"6df4e12a.0c747","x":556,"y":199,"wires":[]},{"id":"1e91dd74.85f263","type":"switch","z":"427fc89b.e34038","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":252,"y":200,"wires":[["daa36829.abb308"],["10361ae7.7e6fb5"]]},{"id":"10361ae7.7e6fb5","type":"change","z":"427fc89b.e34038","name":"Idle","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\":\"0\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":227,"wires":[["7de0a4c1.0f702c"]]},{"id":"28e6bcd8.29e804","type":"comment","z":"427fc89b.e34038","name":"Homematic Sensors","info":"","x":110,"y":40,"wires":[]},{"id":"38263145.35ea0e","type":"ccu-connection","z":"","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048"},{"id":"6df4e12a.0c747","type":"mqtt-broker","z":"","name":"IN-9010 Full HD","broker":"192.168.2.165","port":"8883","tls":"95eab325.77ade","clientid":"","usetls":true,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"95eab325.77ade","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"","certname":"instar-cert.cert","keyname":"","caname":"","servername":"","verifyservercert":true}]
  • Sie können diese Flow mit Ihren eigenen Sensoren verwenden - ändern Sie einfach den ausgewählten Sensor im ersten Knoten jeder Sequenz.

Homematic CCU3

Systemvariablen

Wir können auch eine Systemvariable verwenden, um ein MQTT-Update an unsere Kamera zu senden. Als Beispiel wollen wir eine Variable erstellen, die Daheim lautet, die wir beim Betreten unseres Hauses auslösen wollen. In diesem Fall möchten wir, dass die Bewegungserkennung an unseren Kameras deaktiviert wird.

Um diese Variable zu erstellen gehen Sie bitte zu Einstellungen und Systemvariablen. Die Variable sollte true sein, wenn Sie zu Hause sind, und false, wenn Sie unterwegs sind:

Homematic CCU3

Jetzt können wir zu Node-RED wechseln und einen SysVar Knoten auf die Arbeitsfläche ziehen. Wählen Sie die soeben erstellte Variable Daheim und aktivieren Sie, das der Wert bei einer Änderung ausgegeben werden soll:

Homematic CCU3

Der Rest dieses Flow ist identisch mit den beiden, die wir zuvor erstellt haben. Wir müssen zwischen einer Message mit Payload true oder false unterscheiden. Je nach Payload soll ein MQTT Topic mit einem anderen Payload aktualisiert werden - 0 oder 1, aus oder an.

Wenn Sie den internen PIR-Sensor Ihrer Kamera verwenden, um Bewegungen zu erkennen, können Sie das alarm/actions/pir/enable Topic verwenden um den Sensor mit {"val":"1"} oder {"val":"o"} zu aktivieren oder deaktivieren.

Hinweis Dies gilt für die Kameramodelle IN-8015 FHD und IN-9008 FHD. Das Kameramodell IN-9020 FHD verwendet stattdessen den z.B. den Befehl "alarm/action/alarmin", um den PIR zu schalten. In unserer MQTT Dokumentation finden Sie einen passenden Befehl für jeden Anwendungsfall.

Homematic CCU3

Den Node-RED Flow herunterladen

Sie können den kompletten Flow herunterladen und in Ihr Node-RED Admin-Panel importieren. Kopieren Sie den untenstehenden JSON-Code und klicken Sie in Node-RED auf das Hamburger-Menü oben rechts. Wählen Sie Import und kopieren Sie den Code in das Eingabefeld. Klicken Sie auf die rote Schaltfläche Import und ziehen Sie den Fluss an die gewünschte Position.

[{"id":"e23a5982.cd37b8","type":"ccu-sysvar","z":"427fc89b.e34038","name":"Daheim","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":80,"y":320,"wires":[["1bc1f6f2.fbf029"]]},{"id":"f36b8a95.38f2b8","type":"change","z":"427fc89b.e34038","name":"home","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\":\"0\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":296,"wires":[["91a19433.03d868"]]},{"id":"91a19433.03d868","type":"mqtt out","z":"427fc89b.e34038","name":"alarm/actions/pir/enable","topic":"instar/000389888811/alarm/actions/pir/enable","qos":"1","retain":"false","broker":"6df4e12a.0c747","x":536,"y":319,"wires":[]},{"id":"1bc1f6f2.fbf029","type":"switch","z":"427fc89b.e34038","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":212,"y":320,"wires":[["f36b8a95.38f2b8"],["da80c0a1.e74de"]]},{"id":"da80c0a1.e74de","type":"change","z":"427fc89b.e34038","name":"away","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\":\"1\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":347,"wires":[["91a19433.03d868"]]},{"id":"38263145.35ea0e","type":"ccu-connection","z":"","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048"},{"id":"6df4e12a.0c747","type":"mqtt-broker","z":"","name":"IN-9010 Full HD","broker":"192.168.2.165","port":"8883","tls":"95eab325.77ade","clientid":"","usetls":true,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"95eab325.77ade","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"","certname":"instar-cert.cert","keyname":"","caname":"","servername":"","verifyservercert":true}]