oliverlorenz.com

[feed]  [twitter]  [mastodon]  [xing]  [linkedin]  [github]  [matrix] 

HomeMatic mit NodeRED

4. July 2017

Nachdem mein Vater begeistert von HomeMatic erzählt und mich damit begeistert hat bin ich nun endlich dazu gekommen meine ersten HomeMatic Geräte mit NodeRED zu verbinden. Wie das funktioniert möchte ich heute vorstellen.

Das Setup

Als Basisausstattung habe ich folgende Komponenten im Einsatz:

  • Eine HomeMatic Basisstation
  • Einen HomeMatic Unterputz Schaltaktor
  • Einen Raspberry Pi 2 mit einem Docker-Host, in dem ein NodeRED-Container läuft.
  • NodeRED-Plugins:

    • node-red-contrib-homematic
    • node-red-dashboard (optional)

HomeMatic Basisstation vorbereiten

Die HomeMatic Basisstation ist in der Lage Plugins zu installieren. Als erstes muss die REST-Schnittstelle aktiviert werden.

REST-Schnittstelle installieren

Achtung: Seit euch bewusst, dass diese Schnittstelle nicht gesichert ist. Ihr solltet euch also sicher sein, dass die Station nicht aus dem Internet erreichbar ist oder anders gesichert.

Dazu muss das folgende Plugin heruntergeladen und unter Systemsteuerung > Zusatzsoftware installiert werden. Hier der Link zum Plugin:

CUX-Deamon Plugin installieren

Dieser Schritt ist optional. Solltet ihr kein Interesse daran haben, dass ihr ein physisches Drücken des Schalters verarbeiten könnt, kann dieser Schritt ignoriert werden.

Ich persönlich finde es elementar, dass ich den tatsächlichen Status des Schalters habe und nicht nur auf gut Glück schalte. Aber das ist natürlich Geschmackssache.

Das Plugin bringt der Zentrale ein Paar neue Fähigkeiten bei. "Old Dog, new Tricks". Unter anderem bringt es das Programm Curl mit. Das ist eine sehr verbreitete Library die es ermöglicht HTTP-Requests abzusenden. Diese werden wir dann in NodeRED abfangen und sind damit immer im Bild wie der Status unseres Schalters ist.

Dazu muss das folgende Plugin heruntergeladen und unter Systemsteuerung > Zusatzsoftware installiert werden. Hier der Link zum Plugin:

NodeRED vorbereiten

Den Schalter aus NodeRED heraus schalten

Das ist eigentlich ziemlich easy. Als erstes installiert ihr die Node node-red-contrib-homematic. Die Node hat das ziemlich Clever gelöst. Sie selbst konfiguriert euch nur den HTTP-Request, die Kommunikation selbst übernimmt die Standard HTTP Request Node. Lean at its best! So sieht meine Konfiguration zum anschalten des Schalters aus:

On

Das gleiche legt ihr zum Ausschalten an. Hierzu einfach die Node kopieren und den "State" auf 0 setzen

Wenn ihr nun euren Flow mit einer Inject-Node auslöst sollte euer Schalter schalten.

Den Status des Schalters in NodeRED empfangen

NodeRED kann ja prinzipiell alles. Was wir brauchen ist ein HTTP-Endpoint der von der Zentrale aus angesteuert werden kann. Gesagt getan. Ob ihr einen einzelnen Endpoint zum Ein- und Ausschalten habt, oder dafür zwei Endpoints konfiguriert ist relativ egal. Ich habe mich für zwei einzelne Endpoints entschieden:

Damit sind die Voraussetzungen auf NodeRED-Seite geschaffen. Wir binden das später zusammen.

Konfiguration der Zentrale

Als erstes müsst ihr euer Gerät anlernen. Das beschreibe ich hier nicht. Die Zentrale und das Internetz hilft euch da ausreichend weiter.

Programme erstellen

Die Programme sind das Bindeglied aus der Sicht der Zentrale. Sie führen per Curl einen Request Richtung NodeRED aus. Hier ein Beispiel des Programmcodes.

Programme an die Schaltaktivität koppeln

Den Schalter müssen wir noch so konfigurieren, dass er (bzw. die Zentrale) das Programm ausführt. Ein simpler Screenshot sollte hier als Erklärung reichen :)

Alles zusammen

Den Weg den Schalter über die Zentrale zu Schalten haben wir bereits absolviert. Auch vom Schalter zu NodeRED haben wir eine Brücke schlagen können. Am Schluss habe ich mir noch eine einfache Oberfläche mit dem NodeRED-Dashbord zusammengebastelt, der den Status setzt und widerspiegelt.

Den entsprechenden Flow könnt ihr einfach kopieren.

flow

[{"id":"dac11c59.6853d8","type":"ui_switch","z":"2acb1608.b8f56a","name":"","label":"Schlafzimmer","group":"e2fb566a.0c74e","order":2,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":520,"y":280,"wires":[["a3d4ad05.5865a"]]},{"id":"10287178.37c3bf","type":"link in","z":"2acb1608.b8f56a","name":"Schlafzimmer-Licht anschalten","links":["3fc795c9.3680ba"],"x":375,"y":320,"wires":[["8686e1ad.a0f9e"]]},{"id":"c794cc4e.0e311","type":"link in","z":"2acb1608.b8f56a","name":"Schlafzimmer-Licht ausschalten","links":[],"x":375,"y":360,"wires":[["37d48a73.79ceee"]]},{"id":"8686e1ad.a0f9e","type":"change","z":"2acb1608.b8f56a","name":"on","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":320,"wires":[["a3d4ad05.5865a"]]},{"id":"37d48a73.79ceee","type":"change","z":"2acb1608.b8f56a","name":"off","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":360,"wires":[["a3d4ad05.5865a"]]},{"id":"a3d4ad05.5865a","type":"switch","z":"2acb1608.b8f56a","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","outputs":2,"x":730,"y":280,"wires":[["41202a38.12a32c","42b9b79.3817448"],["cc1a15ec.d2e2b8","42b9b79.3817448"]]},{"id":"41202a38.12a32c","type":"homematic","z":"2acb1608.b8f56a","ccu":"25124b06.8c72e4","device":"fb4fb915.7a0cc8","function":"setValue","attribute":"STATE","value":"0","nodeName":"","x":930,"y":280,"wires":[["90faeb1e.0b752"]]},{"id":"cc1a15ec.d2e2b8","type":"homematic","z":"2acb1608.b8f56a","ccu":"25124b06.8c72e4","device":"fb4fb915.7a0cc8","function":"setValue","attribute":"STATE","value":"1","nodeName":"","x":930,"y":320,"wires":[["90faeb1e.0b752"]]},{"id":"90faeb1e.0b752","type":"http request","z":"2acb1608.b8f56a","name":"","method":"use","ret":"txt","url":"","tls":"","x":1110,"y":280,"wires":[[]]},{"id":"b89d77b3.347f1","type":"link in","z":"2acb1608.b8f56a","name":"Schlafzimmer-Licht indicator","links":["42b9b79.3817448","9f527dd7.91d0a"],"x":375,"y":280,"wires":[["dac11c59.6853d8"]]},{"id":"42b9b79.3817448","type":"link out","z":"2acb1608.b8f56a","name":"","links":["b89d77b3.347f1"],"x":875,"y":360,"wires":[]},{"id":"fabf056c.88549","type":"http in","z":"2acb1608.b8f56a","name":"","url":"/switches/bedroom/main/off","method":"get","swaggerDoc":"","x":250,"y":440,"wires":[["451b0aad.9f3d0c"]]},{"id":"68690ed5.55224","type":"http in","z":"2acb1608.b8f56a","name":"","url":"/switches/bedroom/main/on","method":"get","swaggerDoc":"","x":250,"y":400,"wires":[["1edce2e1.db67cd"]]},{"id":"a39f9907.1e6c5","type":"http response","z":"2acb1608.b8f56a","name":"","x":950,"y":400,"wires":[]},{"id":"451b0aad.9f3d0c","type":"change","z":"2acb1608.b8f56a","name":"on","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":400,"wires":[["9f527dd7.91d0a"]]},{"id":"1edce2e1.db67cd","type":"change","z":"2acb1608.b8f56a","name":"off","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":440,"wires":[["9f527dd7.91d0a"]]},{"id":"9f527dd7.91d0a","type":"link out","z":"2acb1608.b8f56a","name":"","links":["5f03cf5a.b67998","b89d77b3.347f1"],"x":575,"y":420,"wires":[]},{"id":"5f03cf5a.b67998","type":"link in","z":"2acb1608.b8f56a","name":"http request","links":["9f527dd7.91d0a","641ebdba.0045fc"],"x":875,"y":400,"wires":[["a39f9907.1e6c5"]]},{"id":"e2fb566a.0c74e","type":"ui_group","z":"","name":"Licht","tab":"2d019577.245fa2","order":1,"disp":true,"width":"6"},{"id":"25124b06.8c72e4","type":"ccu-address","z":"","host":"192.168.0.52","interfaceName":"BidCos-RF.","name":""},{"id":"fb4fb915.7a0cc8","type":"homematic-device","z":"","channel":"NEQ1549903:1","name":"Schlafzimmer Lichtschalter"},{"id":"2d019577.245fa2","type":"ui_tab","z":"","name":"Wohnung","icon":"dashboard","order":1}]

Fazit

Hammer! Ein physisch funktionierender Lichtschalter der seinen Status aktiv einer Zentralinstanz weitergibt und eben auch über diese schaltbar ist. Das ganze ist auch in einer Mietwohnung ohne größere Umbauten machbar und ist quasi unsichtbar.