Flic2 Buttons mit Node-Red

Als Flic Button Nutzer der ersten Stunde konnte ich mir natürlich die neuen Flic 2 Buttons nicht entgehen lassen und habe an deren Crowd Funding Aktion teilgenommen. Dabei habe ich mir auch gleich einen Flic Hub gegönnt - doch wie kann ich diese praktischen Schalter in mein Node-Red basiertes Smart Home integrieren?

 

Noch gibt es keine Erweiterung, die eine direkte Einbindung via Node-Red nodes zuließe, aber über den Flic Hub kann ein anderer Weg beschritten werden: Beim Einrichten eines Flic Buttons kann festgelegt werden, was bei einem Klick passieren soll. Unter anderem kann dort ein Web-Request ausgeführt werden. Da ja auch Node-Red auf einem Webserver läuft, kann man sich das zunutze machen und über http requests die Flic Interaktionen in Node-Red bringen.

Die Konfiguration des http request nodes ist dabei ganz einfach: Method "POST" und als URL z.B. "/flic" eintragen, dann ist der Node schon fertig konfiguriert.

Wenn man mehrere Flic Buttons nutzen will, kann man in einem Switch Node die verschiedenen Nodes unterscheiden und dann für jeden Flic Button die Art des Tastendrucks unterscheiden (single, double, hold)

FlicHubNodeRedFlow

 

Hier der Flow zum Import in die eigene Node-Red Installation:


[{"id":"1b54bb0a.8d3255","type":"http in","z":"b2a04d88.d25d1","name":"Flic Hub incoming","url":"/flic","method":"post","upload":false,"swaggerDoc":"","x":125.5853042602539,"y":333.109188079834,"wires":[["815e7c71.c1e7a","a130102d.d4d64","b6025a89.3021"]]},{"id":"815e7c71.c1e7a","type":"http response","z":"b2a04d88.d25d1","name":"flic response","statusCode":"","headers":{},"x":331.4460258483887,"y":284.26495933532715,"wires":[]},{"id":"a130102d.d4d64","type":"switch","z":"b2a04d88.d25d1","name":"which flic","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"flic2-1","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":321.5922622680664,"y":334.827938079834,"wires":[["a11407cd.d3d928"],[]]},{"id":"a11407cd.d3d928","type":"switch","z":"b2a04d88.d25d1","name":"press","property":"payload.pattern","propertyType":"msg","rules":[{"t":"eq","v":"single","vt":"str"},{"t":"eq","v":"double","vt":"str"},{"t":"eq","v":"hold","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":4,"x":500.27771759033203,"y":328.0744972229004,"wires":[["4a113298.fd977c"],["1f81e0ca.3011df"],["d6b784a4.310a98"],[]]},{"id":"b6025a89.3021","type":"debug","z":"b2a04d88.d25d1","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":306,"y":397,"wires":[]}]


 Die Konfiguration in der Flic App erfolgt dann für jeden am Flic Hub angelernten Flic Button. Bei jedem Klick (Click, Double Click oder Hold) soll ein "Internet Request" geschickt werden an http://noderedserveradresse:1880/flic .

  • POST
  • ContentType: application/json
  • Body: {"id":"flic2-1","pattern":"single"} - als Beispiel für den ersten Flic2 Button, wenn er einmal gedrückt wird.

Damit sendet der Flic Hub jede Betätigung des Flic Buttons als http request mit der POST Methode im JSON Format an den Node-Red Server. Dieser wertet mit dem oben aufgezeichneten Flow das JSON aus und kann dann entsprechende Aktionen ausführen.