Virtuelle Gerätesimulation in homee mittels enocean-js am Beispiel Hue Bridge

Hier eine Möglichkeit, um Hue-Leuchten an der Hue-Bridge in homee als virtuelle Enocean Geräte zu integrieren.

Voraussetzungen:

homee + Enocean Würfel Raspberry Pi + Nodered Enocean 300 USB-Stick

Danke @Holger-Will für den tollen Enocean-js https://github.com/enocean-js/enocean-js

und

@Micha2536

für die Unterstützung!

[{"id":"1d5ef078.9a37b8","type":"function","z":"f69976a2.324d7","name":"Nodon Enocean 1Relay","func":"const Enocean = global.get('Enocean')\nvar channel = 18\n\nvar tel = Enocean.RadioERP1.from(\"55000d0701fdd4a00146000f01d2050f13a40101ffffffff58004b\")\ntel.senderId = global.get(\"enocean-base-id\") + channel\n\nreturn {payload: tel.toString()}","outputs":1,"noerr":0,"x":790,"y":1040,"wires":[["186dd01b.a6da5"]]},{"id":"885f0488.30506","type":"inject","z":"f69976a2.324d7","name":"Anlernen an homee","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":550,"y":1040,"wires":[["1d5ef078.9a37b8"]]},{"id":"186dd01b.a6da5","type":"enocean-out","z":"f69976a2.324d7","serialport":"36056171.b343b6","name":"","logOutput":false,"x":990,"y":1040,"wires":[["1610aa5f.f5bb9e"]]},{"id":"1610aa5f.f5bb9e","type":"debug","z":"f69976a2.324d7","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":1130,"y":1040,"wires":[]},{"id":"68b2cff1.a29f88","type":"comment","z":"f69976a2.324d7","name":"1. Anlernvorgang homee - siehe Text","info":"In homee einfach den Anlernvorgang für\nein Enocean-Gerät (anderes Gerät) starten.\nDann den Inject-Node betätigen.\nEs wird dann ein Unterputzschalter erkannt.\n\nJeweiliger Channel im Inject Node darf \nnur 1x verwendet werden!","x":180,"y":1040,"wires":[]},{"id":"fc8b65d2.5c431","type":"enocean-in","z":"f69976a2.324d7","serialport":"36056171.b343b6","name":"","x":510,"y":1200,"wires":[["37f9276e.3120c"]]},{"id":"1b977964.354ad7","type":"inject","z":"f69976a2.324d7","name":"LRN CH12","topic":"","payload":"{\"type\":\"LRN\",\"eep\":\"d2-01-0f\",\"senderId\":\"0186fbde\",\"name\":\"Zentrale\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":"5","x":520,"y":1260,"wires":[["37f9276e.3120c"]]},{"id":"37f9276e.3120c","type":"enocean-actor","z":"f69976a2.324d7","name":"Hue Iris rechts","channel":"13","adt":false,"x":760,"y":1200,"wires":[["ea455fc4.a9a7e","ab911a0.cf24f68"],[]]},{"id":"4b50aadf.5135cc","type":"hue-light","z":"f69976a2.324d7","name":"Hue iris rechts","bridge":"1514d048.34582","lightid":"4","colornamer":true,"x":1260,"y":1200,"wires":[[]]},{"id":"ea455fc4.a9a7e","type":"function","z":"f69976a2.324d7","name":"","func":"if ( msg.meta.destinationId ===\"ff9ed48c\"&& msg.meta.payload === \"010001\")\n{ return {payload:{\n        on: true,\n        brightness: 100\n    }}}\nif ( msg.meta.destinationId ===\"ff9ed48c\"&& msg.meta.payload === \"010000\")\n{ return {payload:{\n        on: false\n    }}}","outputs":1,"noerr":0,"x":1070,"y":1200,"wires":[["4b50aadf.5135cc"]]},{"id":"ab911a0.cf24f68","type":"function","z":"f69976a2.324d7","name":"Status an/aus","func":"const Enocean = global.get('Enocean')\nvar channel = 12\n\nvar tel1 = Enocean.RadioERP1.from(\"550009070156d20460e4050f13a40101ffffffff50001f\")\nvar tel2 = Enocean.RadioERP1.from(\"550009070156d2046080050f13a40101ffffffff52006e\")\ntel1.senderId = global.get(\"enocean-base-id\") + channel\ntel2.senderId = global.get(\"enocean-base-id\") + channel\n\nif ( msg.meta.destinationId ===\"ff9ed48c\"&& msg.meta.payload === \"010001\"){\nreturn {payload: tel1.toString()};\n}\nif ( msg.meta.destinationId ===\"ff9ed48c\"&& msg.meta.payload === \"010000\"){\nreturn {payload: tel2.toString()};\n}\n","outputs":1,"noerr":0,"x":940,"y":1240,"wires":[["fdfa8501.a08bb"]]},{"id":"fdfa8501.a08bb","type":"enocean-out","z":"f69976a2.324d7","serialport":"36056171.b343b6","name":"","logOutput":false,"x":1110,"y":1240,"wires":[[]]},{"id":"c3ff5e83.8b9f88","type":"function","z":"f69976a2.324d7","name":"Prüfen des Zustandes","func":"var nodeid = 396;  // node ID in homee vom Wemo\nvar attributid = 1446; // attribut ID in homee vom Wemo\nif (msg.payload.on === false)\n{return {payload: \"PUT:/nodes/\"+nodeid+\"/attributes/\"+attributid+\"?target_value=0\"}}\nif (msg.payload.on === true)\n{return {payload: \"PUT:/nodes/\"+nodeid+\"/attributes/\"+attributid+\"?target_value=1\"}}\n","outputs":1,"noerr":0,"x":1020,"y":1280,"wires":[["dcb50161.8267d"]]},{"id":"40c2c796.4cabe","type":"hue-light","z":"f69976a2.324d7","name":"Hue iris rechts","bridge":"1514d048.34582","lightid":"4","colornamer":true,"x":780,"y":1280,"wires":[["c3ff5e83.8b9f88"]]},{"id":"dcb50161.8267d","type":"link out","z":"f69976a2.324d7","name":"","links":["1f6d5452.168fbc"],"x":1215,"y":1280,"wires":[]},{"id":"5e3f1251.1b7dbc","type":"comment","z":"f69976a2.324d7","name":"2. Verbindung virtuelles Gerät - siehe Text","info":"Sender-ID liest man über den Debug-Node unter\ndem ersten Flow aus.\n\nDiese muss im LRN-Inject eingetragen werden.\n\nIm Actor Node einen nicht benutzen Channel\neingtragen, Cave: nicht den Channel aus Flow 1.","x":200,"y":1200,"wires":[]},{"id":"36056171.b343b6","type":"enocean-config-node","z":"","serialport":"/dev/ttyUSB0"},{"id":"1514d048.34582","type":"hue-bridge","z":"","name":"Philips hue","bridge":"192.168.1.121","key":"0s4cblRPnIHWqE7UVop815qZY0vEQPSeMavmlDIH","interval":"3000"}]

Flow Info

Created 5 years, 3 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • comment (x2)
  • debug (x1)
  • function (x4)
  • inject (x2)
  • link out (x1)
Other

Tags

  • homee
  • enocean-js
  • hue
  • virtuelle-Geräte
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option