Homematic IP CCU3 Zentrale und RedMatic
- Sensoren an der Zentrale anlernen
- Anlegen von Systemvariablen und Programmen
- Installation von Node-RED
- Installation eines MQTT Servers
- Homematic -> INSTAR IP Kamera
- INSTAR IP Kamera -> Homematic
- Vollständiger Node-RED Flow
Sensoren an der Zentrale anlernen
Um Ihre Homematic oder Homematic IP Geräte softwarebasiert steuern und konfigurieren sowie in Zentralenprogrammen nutzen zu können, müssen Sie die Geräte über die WebUI ins System einbinden. Gehen Sie dazu wie folgt vor:
- Starten Sie die WebUI Bedienoberfläche im Webbrowser Ihres PCs.
- Klicken Sie auf den Button „Geräte anlernen“ im rechten oberen Bereich des Browserfensters.
- Aktivieren Sie den passenden Anlernmodus des Geräts, das Sie anlernen möchten. Weitere Informationen dazu können Sie der jeweiligen Bedienungsanleitung entnehmen.
- Warten Sie, bis der Anlernvorgang abgeschlossen ist. Zur Bestätigung eines erfolgreichen Anlernvorgangs leuchtet die LED des Geräts grün. Leuchtet die LED rot, versuchen Sie es erneut.
- Nach kurzer Zeit erscheint das neu angelernte Gerät im Posteingang Ihrer WebUI.
Anlegen von Systemvariablen und Programmen
Um mit unseren Sensoren zu kommunizieren - wir möchten im Beispiel den Homematic Funk-Bewegungsmelder, außen installieren und einen Systemalarm bei Bewegung auslösen, müssen wir eine Systemvariablen erstellen:
Klicken Sie hier unten auf Neu um eine neue Variable anzulegen:
Geben Sie hier das folgende ein, um eine Systemvariable mit dem Namen PIR Sensor anzulegen, klicken Sie danach auf Ok und in der folgenden Listenansicht auf Programme:
In dem folgenden Fenster klicken Sie wieder auf Neu - hier können wir uns jetzt das folgende Programm zusammenklicken und bestätigen:
Hier haben wir bei der Bedingung in der Geräteauswahl den Bewegungsmelder und ausgewählt und in der Spalte Aktivität bei Systemzustand die Auslösung unserer Systemvariable: PIR Sensor gesetzt.
Wenn wir jetzt eine Bewegungserkennung auslösen, werden wir eine Alarmmeldung erhalten:
Installation von Node-RED
Wir haben bereits Node-RED forgestellt und im Zusammenspiel mit dem MQTT Protokoll Prozesse auf unserer IP Kamera automatisiert. Auf der Homematic Zentrale ist Node-RED sehr einfach zu installieren mit Hilfe des RedMatic Addons.
RedMatic fasst mehrere Softwarekomponenten zu einem CCU Addon zusammen, einem Softwarepaket, dass auf einer Homematic CCU3 als Zusatzsoftware komfortabel über das WebUI installiert werden kann.
Die Grundlage bildet Node-RED mit den CCU Nodes für Node-RED. Hiermit ist es auf einfache, visuelle Weise möglich Regeln, Automationen, Scripte und Anbindungen von externen Services und Systemen für ein Homematic System zu realisieren - und das weitgehend auch ohne Programmierkenntnisse.
Für die Visualisierung und Steuerung sind RedMatic WebApp und Node-RED Dashboard enthalten. RedMatic WebApp ist eine Bedienoberfläche die ohne weitere Konfiguration sofort genutzt werden kann. Node-RED Dashboard ist ein konfigurierbares User Interface, kann mehr Möglichkeiten als die RedMatic WebApp bieten, ist aber mit Konfigurationsaufwand verbunden.
- Zunächst müssen wir die neueste Version von Github herunterladen. Es wird die Datei
redmatic-<version>.tar.gz
benötigt:
- In der Homematic WebUI unter Systemsteuerung Zusatzsoftware aufrufen:
- Heruntergeladene Datei auswählen und installieren (kann bis zu 10min dauern):
- Im Anschluss abwarten bis sich die CCU neu gestartet hat - hier ist Geduld erforderlich. Die Installation von RedMatic benötigt einige Zeit. Node-RED ist unter
http://<ccu-adresse>/addons/red
erreichbar. Node-RED Dashboard ist unterhttp://<ccu-adresse>/addons/red/ui
erreichbar:
Das Standard Login ist Admin
(mit großem A
) und das admin Kennwort auf Ihrem CCU3!
Das Kennwort können Sie unter Systemsteuerung / Zusatzsoftware auch von Hand festlegen - ändern Sie dort die Authentifizierung von ReGaHSS auf Credentials:
Installation eines MQTT Servers
MQTT ist ein Kommunikationsprotokoll das speziell für IoT Geräte entwickelt wurde und uns einige Vorteile bietet. Es ist jedoch etwas kompliziert es unter Windows oder einem Raspberry Pi einzurichten, da dafür ein extra MQTT Server benötigt wird. Dies ist zum Glück bei der Homematik Zentrale genau so einfach wie die Installation von Node-RED.
Dennoch ist die Nutzung des MQTT Protokolls rein optional - für die Beispiele die wir unten aufführen wird es z.B. nicht benötigt (man kann die verwendeten MQTT Nodes auch durch Link Nodes ersetzen und erhält das gleiche Ergebnis!). MQTT wird in dem Moment wichtig wenn man noch eine weitere Heimautomatisierungszentralen, wie z.B. OpenHAB oder ioBroker einsetzt oder Drittanbieter Sensoren verwenden möchte, die nicht direkt in der Homematic eingebunden werden können. MQTT, im Zusammenspiel mit Node-RED, kann hier das Bindeglied sein, dass alle Bausteine Ihrer Automatisierung zusammenbringt.
Um das MQTT Protokoll mit der Homematic nutzen zu können, müssen wir den Mosquitto Server als Addon für die Homematic CCU3 installieren. Gehen Sie dafür auf die Release Seite auf Github und laden Sie dort die aktuellste mosquitto-<version>.tar.gz
Datei herunter. Diese können Sie danach unter Systemsteuerung / Zusatzsoftware in der WebUI der CCU3 installieren:
Aktivieren des SSH Zugriffs (Optional)
Per default lauscht Mosquitto auf den Ports 1883/mqtt und 1884/ws. Falls auf der CCU ein Zertifikat vorhanden ist werden automatisch auch TLS listener geöffnet (8883/mqtts und 8884/wss).
Das Addon installiert außer dem Broker auch die Kommandozeilenwerkzeuge mosquitto_pub und mosquitto_sub und verlinkt diese nach /usr/local/bin/.
Um den SSH Zugriff zu aktivieren gehen Sie bitte auf Systemsteuerung / Sicherheit, aktivieren Sie den Dienst und hinterlegen Sie ein Kennwort. Im Anschluß muss die CCU3 neugestartet werden:
Nach dem Neustart können Sie Ihr Terminal - unter Windows kann z.B. das kostenlose Terminus verwendet werden - nutzen um sich mit dem Benutzernamen root
und dem oben festgelegten Kennwort auf der IP Adresse Ihrer CCU anzumelden:
Die Mosquitto Konfiguration ist unter /usr/local/addons/mosquitto/etc/conf.d/*.conf
zu finden. Neustart via /etc/config/rc.d/mosquitto restart
.
Per default lauscht Mosquitto auf den Ports 1883/mqtt
und 1884/ws
. Falls auf der CCU ein Zertifikat vorhanden ist werden automatisch auch TLS listener geöffnet (8883/mqtts
und 8884/wss
).
Das Addon installiert außer dem Broker auch die Kommandozeilenwerkzeuge mosquitto_pub
und mosquitto_sub
und verlinkt diese nach /usr/local/bin/
.
Bei Aufrufen von mosquitto_pub via CUxD Exec muss dem Aufruf das setzen des lib Pfades vorangestellt werden, z.B.: LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/mosquitto_pub -t 'test' -m 'test'
Testen des MQTT-Servers
Der SSH Zugriff (oben) erlaubt es den MQTT Server direkt auf dem Betriebsystem der CCU3 zu testen. In diesem Abschnitt wollen wir uns das ganze einmal ausgehend von einem Windows Rechner ansehen. Wir können dafür das Tool MQTT.fx herunterladen und unter Windows 10 installieren.
Klicken Sie in der Benutzerobefläche auf das Zahnrad um die Konfiguration für den MQTT Server auf der Homatic Zentrale hinzuzufügen:
Geben Sie hier die IP Adresse Ihrer Homatic Zentrale als Broker Address an und behalten Sie den Port bei. Wenn Sie im vorherigen Schritt per SSH den Port geändert haben oder eine Benutzerauthentifizierung hinzugefügt haben, müssen Sie dies hier entsprechen berücksichtigen:
Bestätigen Sie die Eingaben und klicken Sie auf Connect neben dem Zahnrad vom vorherigen Schritt. Wechseln Sie danach darunter auf den Subscribe Tab, geben Sie ein #
in die Zeilen neben dem Subscribe Button ein und betätigen Sie danach den Button um ein Abo für alle MQTT Meldungen, die unser Server empfängt, anzulegen.
Wechseln Sie danach auf den Publish Tab und geben Sie hier ein MQTT Topic - z.B. /test/
- ein und darunter einen Wert - {"val" : "1"}
- den Sie unter dem Topic veröffentlichen möchten:
Wenn im Anschluß den Publish Button bestätigen und wieder zum Subscribe Tab wechseln, sollte die Meldung von unserem MQTT Server empfangen und wieder zurück zu MQTT.fx gesendet wurden, da wir angegeben hatten über alle Meldungen informiert werden zu wollen:
Wenn Sie diese Meldung sehen, wurde der Server korrekt eingerichtet und ist in Ihrem Netzwerk aktiv.
Homematic -> INSTAR IP Kamera
Jetzt haben wir alle Vorbereitungen getroffen um unsere INSTAR IP Kamera in das Homematic System einzubinden. Und dies kann jetzt vollständig über Node-RED passieren, das wesentlich flexibler ist als das was einem die Homematic Zentrale zur Verfügung stellt. Hierfür können wir uns im Prinzip aus den folgenden Tutorials bedienen, in denen wir diese Integration bereits durchgeführt hatten:
Diese können wir eigentlich komplett recyceln mit einer kleinen Ergänzung, wir werden die bereits vorinstallierten CCU Nodes nutzen um den Status unserer Sensoren an der Homematic Zentrale abzufragen. Der folgenden Node-RED Flows verwenden jedoch einen speziellen Node mit dem Namen node-red-contrib-string, der nicht in Node-RED vorinstalliert ist. Sie können diese über das Palettenmenü nachinstallieren.
Homematic Sensoren (Bewegungsmelder)
- Wir beginnen damit einen CCU Value Node auf die Arbeitsfläche zu ziehen und einen Doppelklick auf diesen auszuführen, um die Konfigurationsseite zu öffnen.
- Wählen Sie hier BidCos-RF als interface aus um Ihren Homematic PIR Bewegungsmelder einzubringen.
- Wenn Sie in das Channel Feld klicken, werden Ihnen alle mit Ihrer Homematic Zentrale verbundenen RF Geräte angezeigt. Als wir unseren Bewegungsmelder an die Zentrale angelernt hatten, haben wir gesehen, daß der Name des Melders mit NEQ1545018 beginnt. Uns stehen hiervon stehen uns zwei Einträge zur Verfügung - der erste endet auf :0 und der zweite auf :1. Wir wählen hier den zweiten aus (Sie können testweise auch einmal den ersten nehmen und werden sehen, dass Ihnen dort andere Variablen zur Verfügung stehen - unter anderem LOWBAT, wo Sie die Warnung eines niedrigen Batteriestandes im Melder in Node-RED einfließen lassen können.)
- Als Datenpunkt wählen wir Motion. Dieser wird uns immer einen Wert
true
geben, sobald der Sensor eine Bewegung erkannt hat.
Jetzt werden wir bei Bewegungserkennung immer eine Meldung in Node-RED erhalten und müssen darauf reagieren. Dies können wir mit dem folgenden Flow realisieren, den Sie kopieren und in Node-RED importieren können (dieser Flow beinhaltet die Konfiguration meines Bewegungsmelders - diesen müssen Sie durch Ihren eben erstellten ersetzen):
Bei dem Ausgangs-Knoten auf der rechten Seite handelt es sich um einen MQTT Sender. Achten Sie bitte darauf, dass dieser als Server localhost:1883
eingetragen hat - dies ist der MQTT Server den wir zuvor installiert haben].
Wenn Sie nach dem Kopieren auf den roten Deploy Button klicken und danach einen Alarm bei Ihrem Bewegungsmelder auslösen, sollten Sie in MQTT.fx die Meldung {"val":"triggered"}
auf dem MQTT Topic /homematic/pir/alarm
sehen.
INSTAR IP Kamera
Jetzt müssen wir diese Bewegungsmeldung so umsetzen, dass sie einen Alarm in unserer Kamera auslöst. Dafür können wir einen Flow aus den vorherigen Node-RED Tutorials wiederverwenden:
Beachten Sie hier, dass Sie den oben markierten Knoten editieren müssen und die IP Adresse und das Administrator Login Ihrer INSTAR FullHD Kamera eintragen müssen (der Befehl zum manuellen Auslösen des Alarms - /param.cgi?cmd=pushhostalarm
- steht Ihnen nur bei Full HD Kamera Modellen zur Verfügung. Wenn Sie ein HD oder VGA Kameramodell einsetzen, können Sie den CGI Befehl im Flow jedoch durch einen anderen ersetzen, der für Ihr Kameramodell einsetzbar ist):
Wenn Sie jetzt eine Bewegungserkennung bei Ihrem Homematic Bewegungsmelder auslösen, werden Sie in Ihrer Kamera einen Audioalarm im System Logbuch finden - dieser wird alle Alarmaktionen auslösen, die Sie in der WebUI Ihrer Kamera aktiviert haben - z.B. einen Alarmaufnahme auf die interne SD Karte oder das Versenden einer Alarmemail.
Homematic Sensoren (Türkontakt)
Als zweites Beispiel können wir den Homematic Funk-Tür/Fensterkontakt, optisch hinzufügen und unsere Kamera damit dazu bewegen sich zur Tür auszurichten, sobald diese geöffnet wird. Das Einbinden des Sensors in die Homematik Software und in Node-RED ist identisch zu dem vorherigen Beispiel (den kompletten Node-RED Flow können Sie sich am Ende dieser Seite kopieren und in Node-RED importieren):
Im folgenden Part können Sie sehen, daß wir den Tür-Sensor mit unserem Push-Alarm gekoppelt haben. So kann sowohl der PIR Bewegungsmelder als auch der Tür-Sensor einen Alarm auf der Kamera auslösen. Des Weiteren wurde eine Sequenz hinzugefügt, die beim Öffnen der Tür unsere Full HD PTZ Kamera (z.B. IN-8015 Full HD oder IN-9020 Full HD) in Richtung der Türe schwenkt (diese Position muß in der Kamera WebUI unter Position 1 gespeichert werden: /param.cgi?cmd=preset&-act=goto&-number=0
) und beim Schließen der Tür die Kamera wieder in die Ruheposition (auf Position 2 gespeichert: /param.cgi?cmd=preset&-act=goto&-number=1
) fährt. Damit dies funktioniert, müssen Sie in den beiden Nodes unter dem roten Pfeil die IP Adresse und das Login Ihrer Kamera eintragen (wie bereits zuvor auch):
INSTAR IP Kamera -> Homematic
Anlegen der Systemvariablen
Bislang haben wir die Kamera über die Homematic Zentrale gesteuert indem wir Homematic Sensoren nutzten um Aktionen auf der Kamera auszulösen. Den umgekehrten Fall können wir über den Alarmserver auf der Kamera realisieren. Im Folgenden wollen wir die Systemvariable: Anwesenheit - die vom Typ her eine Logikwert darstellt und in der Homematic vorangelegt ist - in der Homematic Zentrale nutzen, um eine selbst angelegte Alarmvariable (Eingangsbereich) zu schalten.
Diese Variablen können wir wie zuvor unter Einstellungen > Systemvariable
wie folgt anlegen:
Um diese Variablen zu verknüpfen, müssen wir - oben im Bild mit einem roten Pfeil gekennzeichnet - auf den Programme Button klicken und das folgende Programm anlegen:
Dieses Programm achtet darauf wenn der Systemzustand Anwesenheit auf anwesend geschaltet wird und schaltet in diesem Fall den Systemzustand Eingangsbereich auf ausgelöst.
Oder einfach formuliert, wenn unsere Kamera eine Person erkennt (über den internen Bewegungsmelder oder die Bewegungs-/ Audioerkennung), soll der Homematic Zentrale die Anwesenheit einer Person gemeldet werden und daraufhin ein Alarm für den Eingangsbereich ausgelöst werden.
Sinnvollerweise können wir noch ein Zeitfenster bestimmen indem diese Regel aktiv sein soll, indem man bei UND auf das grüne + klickt, Zeitsteuerung auswählt und danach im Zeitmodul ein Zeitfenster auswählt:
In dem Beispiel wurde festgelegt, dass der Alarm nur ausgelöst wird, wenn die Kamera zwischen 18:00 und 8:30 Uhr eine Bewegung erkennt.
Konfiguration von Node-RED
Wir können jetzt in Node-RED einen sysvar Knoten nehmen und ihn über zwei Inject Knoten mit den Boolean true
oder false
zu speisen.
Oben gezeigt ist die Konfiguration des True Inject Knotens - für den zweiten muß hier entsprechend false
ausgewählt werden.
Im sysvar Knoten können wir hier unsere Anwesenheit Systemvariable auswählen:
Wenn wir jetzt unsere true
und false
Knoten anklicken wird die Systemvariable Anwesenheit in der Homematic Zentrale auf jeweils true oder false gestellt. Im Bild unten haben wir einen Debug Knoten ans Ende der Sequenz gestellt der uns eine Textausgabe auf der Rechte Seite gibt - so können wir genau sehen, was gerade zur CCU geschickt wurde:
Sie können diesen Flow von hier kopieren und in Node-RED einfügen (beachten Sie, daß Sie nach dem kopieren noch Ihre eigene Systemvariable im sysvar Knoten festlegen müssen):
Da wir die Systemvariable Anwesenheit mit unserer Alarmvariable Eingangsbereich per Programm gekoppelt haben, sehen wir jetzt auch jedes Mal einen System Alarm in der Homematic, wenn wir den true Inject Knoten anklicken:
Wir hatten bereits in einem früheren Tutorial einen Webhook in Node-RED erstellt, den wir als Alarmserver verwenden können, um mit unserer Kamera eine Node-RED Sequenz anzustoßen. Diesen Code können wir hier - in vereinfachter Form - recyceln:
Diese Sequenz stellt einen __HTTP Eingangsknoten__ bereit mit dem, wenn die Kamera den Alarmserver kontaktiert, eine HTML Seite als Antwort gesendet wird. Im Knoten können Sie sehen, daß dieser einen _Webhook_ auf der URL `alarm/eingang` aufbaut - beachten Sie hierbei jedoch, daß diese URL relative zur Adresse von Node-RED ist. Der vollständige Pfad, um auf den _Webhook_ zuzugreifen lautete entsprechend `/addons/red/alarm/eingang`:
![Homematic IP](./Homematic_IP_CCU3_51.png)
Wenn diese Meldung reinkommt verwenden wir einen __Change Knoten__ um ein `true` zum __Anwesenheit sysvar Knoten__ zu senden - also genau wie wir es oben manuell über den __Inject Knoten__ gemacht hatten. Darunter haben wir noch einen __Delay Knoten__ der automatisch nach _5s_ den Status wieder auf `false` setzt und damit den Alarm wieder scharf stellt.
### Alarmserver Einstellung auf der Kamera
<EuiSpacer />
<APIv2Box />
<EuiSpacer />
Jetzt müssen wir noch in unserer Kamera den [erstellten Alarmserver](/Web_User_Interface/1080p_Serie/Alarm/Alarm_Server/) hinterlegen. Das Ganze sollte dann so ausschauen:
![Homematic IP](./Homematic_IP_CCU3_52.png)
Die Adresse unseres Alarmservers ist die __lokale IP Adresse der CCU__, der Port ist `80` und der Server Pfad lautet `/addons/red/alarm/eingang`. Der Parameter darunter ist optional und wird nur für die Webseite verwendet, die unser Webhook bereitstellt. Auch wurde in der WebUI der Kamera aktiviert, daß der Alarmauslöser mit angehangen werden soll - wenn Sie z.B. nur den internen PIR Sensor Ihrer Kamera zur Bewegungserkennung verwenden, wird dann ein `&active=5` an die URL angehangen (welche Zahl für welchen Auslöser steht können Sie [hier nachlesen](/Web_User_Interface/1080p_Serie/Alarm/Alarm_Server/)). Sie können die URL testen indem Sie die Adresse in Ihrem Webbrowser aufrufen `http://<IP Adresse der CCU>/addons/red/alarm/eingang?alarm=ausgelöst&active=5`:
![Homematic IP](./Homematic_IP_CCU3_53.png)
Das Aufrufen dieser URL simuliert hier natürlich das Auslösen des Alarmservers durch die Kamera. Wir sollten entsprechend erwarten, daß wir einen Alarm in der CCU sehen:
![Homematic IP](./Homematic_IP_CCU3_54.png)
Jedes Mal wenn die Kamera jetzt einen Alarm auslöst und den Alarmserver kontaktiert, wird jetzt in der Homematic Zentrale die Anwesenheit einer Person registriert und außerhalb der Arbeitszeiten von _18:00 bis 8:30 Uhr_ sofort ein Alarm ausgelöst - beachten Sie allerdings, daß diese Funktion auf der Kamera einen _Cooldown_ von __60s__ hat - es kann also nur max. 1 mal pro Minute ein Alarm ausgelöst werden! Diesen Alarm können Sie jetzt mit jeder Variable in Ihrem Hausautomatisierungssystem koppeln und somit Reaktionen auf das Eindringen automatisieren.
## Vollständiger Node-RED Flow
* [Download JSON Flow](/Node-RED_Flows/nodered_flow_homematic_ccu3_und_redmatic_05.json)
export const _frontmatter = {"title":"Homematic IP CCU3 Zentrale und RedMatic","path":"/Erweitert/Homematic_CCU3_und_RedMatic/","dateChanged":"2019-02-15","author":"Mike Polinowski","excerpt":"Um Ihre Homematic oder Homematic IP Geräte wie Ihre INSTAR IP Kamera zu steuern und konfigurieren sowie in Zentralenprogrammen nutzen zu können, können Sie diese über Node-RED ins System einbinden.","social":"/images/Search/AU_SearchThumb_Homematic.webp","toc":"/images/Search/TOC_Icons/Wiki_Tiles_Advanced_Homematic_white.webp","chapter":"Advanced User","category":"smarthome","type":"Homematic"}