node-red State Feedback

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Clear
Beiträge: 112
Registriert: 14.01.2018, 18:16
Wohnort: Ebergassing
Hat sich bedankt: 6 Mal
Danksagung erhalten: 7 Mal

node-red State Feedback

Beitrag von Clear » 17.03.2021, 14:42

Hallo,
Vor einiger Zeit bin ich bei Lidl auf auf eine etwas deformierte Schachtel mit einem Zwischenstecker SAPZ 1 A1 (SilverCrest) um €9,90 gestoßen.
Aus Neugier und wegen des günstigen Preises habe ich das Ding mitgenommen.
Nach einigen Recherchen im Netz habe ich festgestellt, dass es sich um ein ZigBee-kompatibles Gerät handelt.
https://www.zigbee2mqtt.io/devices/HG06337.html
Schnell noch einen ITSTUFF CC2531 ZigBee USB-Stick besorgt und als Zugabe einen Xiaomi Mi Temperature and Humidity Sensor.
Dann RedMatic installiert und losgelgt.
Nach einigen mühsamen Tagen und viel (sehr viel) lesen sowie einigen YouTube-Beiträgen von verdrahtet, konnte ich, und dank einiger sehr nützlicher Beiträge hier im Forum, das Thermometer mit red-node zum Laufen bringen, sodass die Messergebnisse an die RaspberryMatic übergeben wurden.
Auch den ZigBee Zwischenstecker konnte ich mit etwas Mühe und Schweiß nach längerem Probieren über die RaspberryMatic Oberfläche (virtuelle CuxD Schalter) und auch über das Dashboard schalten.
CuxD-Schalter_Steckdose_ZigBee.png

Code: Alles auswählen

[{"id":"2bb820b8.62a62","type":"tab","label":"Flow 5","disabled":false,"info":""},{"id":"df9898ef.6546e8","type":"zigbee-converter","z":"2bb820b8.62a62","shepherd":"e5041365.41a77","name":"Steckdose","topic":"zigbee/${name}","settopic":"zigbee/${name}/set","gettopic":"zigbee/${name}/get","device":"0xbc33acfffe16f7a9","attribute":"","payload":"json","x":890,"y":240,"wires":[["cf37e37c.dd14c"]]},{"id":"3615ced4.e9e172","type":"change","z":"2bb820b8.62a62","name":"Steckdose an","rules":[{"t":"set","p":"topic","pt":"msg","to":"zigbee/Steckdose/set","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"ON\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":200,"wires":[["df9898ef.6546e8"]]},{"id":"cf37e37c.dd14c","type":"debug","z":"2bb820b8.62a62","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1090,"y":240,"wires":[]},{"id":"31f5d374.3a98ac","type":"ccu-value","z":"2bb820b8.62a62","name":"","iface":"CUxD","channel":"CUX4000003:1 VIR-LG-ONOFF CUX4000003: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":230,"y":240,"wires":[["a1dcccbe.9b2ae"]]},{"id":"a1dcccbe.9b2ae","type":"switch","z":"2bb820b8.62a62","name":"switch","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":450,"y":240,"wires":[["3615ced4.e9e172"],["dced7699.ab5558"]]},{"id":"dced7699.ab5558","type":"change","z":"2bb820b8.62a62","name":"Steckdose aus","rules":[{"t":"set","p":"topic","pt":"msg","to":"zigbee/Steckdose/set","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"OFF\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":280,"wires":[["df9898ef.6546e8"]]},{"id":"645e7960.9353a8","type":"ui_switch","z":"2bb820b8.62a62","name":"Schalter","label":"Steckdosenschalter","tooltip":"","group":"d948a298.a1815","order":3,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"zigbee/Steckdose/set","style":"","onvalue":"{\"state\":\"ON\"}","onvalueType":"json","onicon":"","oncolor":"","offvalue":"{\"state\": \"OFF\"}","offvalueType":"json","officon":"","offcolor":"","x":640,"y":380,"wires":[["df9898ef.6546e8"]]},{"id":"e5041365.41a77","type":"zigbee-shepherd","name":"zigbee controller","path":"/dev/ttyACM0","baudRate":"115200","rtscts":true,"channelList":[11],"led":"disabled","adapter":"zstack"},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""},{"id":"d948a298.a1815","type":"ui_group","name":"Steckdose","tab":"99e9df83.0c218","order":1,"disp":true,"width":"6","collapse":false},{"id":"99e9df83.0c218","type":"ui_tab","name":"Zigbee","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
Nun sollten der Schalter und das Dashboard natürlich auf den jeweiligen Schaltzustand reagieren.
Wird die Steckdose händisch geschalten, sollte der entsprechende Status an den CuxD Schalter bzw. auch an des Dashboard gesendet werden, sodass die Schalterstellungen entsprechen angepasst werden. Das natürlich vice versa.

Zuerst habe den Output aus dem Steckdose-node mit einer Funktions-node angepasst, dass der Output von JSON ("state":"ON"), ("state":"OFF") auf true und false konvertiert werden und das an den Dashboerd-node Input verbunden.
Leider reagiert der Dashboard-schalter nicht.

Rückgabe_Dashboard.png
switch_node.png

Code: Alles auswählen

[{"id":"9166675.99cc798","type":"tab","label":"Flow 4","disabled":false,"info":""},{"id":"fb584bac.17eab8","type":"ui_switch","z":"9166675.99cc798","name":"Schalter","label":"Steckdosenschalter","tooltip":"","group":"d948a298.a1815","order":3,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"zigbee/Steckdose/set","style":"","onvalue":"{\"state\":\"ON\"}","onvalueType":"json","onicon":"","oncolor":"","offvalue":"{\"state\": \"OFF\"}","offvalueType":"json","officon":"","offcolor":"","x":600,"y":220,"wires":[["9db023ba.39917"]]},{"id":"9db023ba.39917","type":"zigbee-converter","z":"9166675.99cc798","shepherd":"e5041365.41a77","name":"Steckdose","topic":"zigbee/${name}","settopic":"zigbee/${name}/set","gettopic":"zigbee/${name}/get","device":"0xbc33acfffe16f7a9","attribute":"","payload":"json","x":830,"y":120,"wires":[["37dcb71f.3478f8"]]},{"id":"3aa0b25b.930b3e","type":"change","z":"9166675.99cc798","name":"Steckdose an","rules":[{"t":"set","p":"topic","pt":"msg","to":"zigbee/Steckdose/set","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"ON\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":80,"wires":[["9db023ba.39917"]]},{"id":"264f1206.56197e","type":"ccu-value","z":"9166675.99cc798","name":"","iface":"CUxD","channel":"CUX4000003:1 VIR-LG-ONOFF CUX4000003: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":170,"y":120,"wires":[["4db4e1a2.d9da9"]]},{"id":"4db4e1a2.d9da9","type":"switch","z":"9166675.99cc798","name":"switch","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":120,"wires":[["3aa0b25b.930b3e"],["f27b9732.afa6e8"]]},{"id":"f27b9732.afa6e8","type":"change","z":"9166675.99cc798","name":"Steckdose aus","rules":[{"t":"set","p":"topic","pt":"msg","to":"zigbee/Steckdose/set","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"OFF\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":160,"wires":[["9db023ba.39917"]]},{"id":"9a11e261.04b44","type":"link in","z":"9166675.99cc798","name":"","links":[],"x":-75,"y":200,"wires":[[]]},{"id":"e69ca3b8.686b9","type":"debug","z":"9166675.99cc798","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1370,"y":220,"wires":[]},{"id":"82026d63.6ae93","type":"function","z":"9166675.99cc798","name":"","func":"if(msg.payload==\"ON\"){\n msg.payload=true}\nelse\n{\n msg.payload=false\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1180,"y":220,"wires":[["e69ca3b8.686b9","fb584bac.17eab8"]]},{"id":"37dcb71f.3478f8","type":"change","z":"9166675.99cc798","name":"","rules":[{"t":"move","p":"payload.state_undefined","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1110,"y":120,"wires":[["82026d63.6ae93"]]},{"id":"d948a298.a1815","type":"ui_group","name":"Steckdose","tab":"99e9df83.0c218","order":1,"disp":true,"width":"6","collapse":false},{"id":"e5041365.41a77","type":"zigbee-shepherd","name":"zigbee controller","path":"/dev/ttyACM0","baudRate":"115200","rtscts":true,"channelList":[11],"led":"disabled","adapter":"zstack"},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""},{"id":"99e9df83.0c218","type":"ui_tab","name":"Zigbee","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
In welcher Stellung der Schalter am Dashboard auch steht, die Steckdose schaltet kurz aus und sofort wieder ein.
Egal ob man in der RaspberryMatic, am Dashboard oder händisch schaltet.
Irgendwo ist da ein Widerspruch in meinem Flow. Ich komme nicht dahinter.

Wie ich den Status des virtuellen CUxD-Schalters beeinflusse, kann ich mir noch garnicht vorstellen.

Vielen Dank
Clear

Ich hoffe, es kann mir jemand aus dem Forum weiter helfen.

Benutzeravatar
Clear
Beiträge: 112
Registriert: 14.01.2018, 18:16
Wohnort: Ebergassing
Hat sich bedankt: 6 Mal
Danksagung erhalten: 7 Mal

Re: node-red State Feedback

Beitrag von Clear » 18.03.2021, 14:02

Danke, hab's alleine hinbekommen. :roll:

Grüße
Clear

Lederhaut
Beiträge: 2
Registriert: 18.03.2021, 16:39
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: node-red State Feedback

Beitrag von Lederhaut » 19.03.2021, 09:35

Hallo Clear,
wie ht du das dann noch hinbekommen?

Ich hab die gleiche Steckdose bei mir auch, und den "state_undefined" vom Device hab ich dann als boolean umgewandelt und wieder in den UI Switch geschickt. Das funktioniert bei mir soweit, dass der UI switch anzeigt, ob die Steckdose an oder aus ist.
(CUxD benutze ich nicht)

Viele Grüße

Benutzeravatar
Clear
Beiträge: 112
Registriert: 14.01.2018, 18:16
Wohnort: Ebergassing
Hat sich bedankt: 6 Mal
Danksagung erhalten: 7 Mal

Re: node-red State Feedback

Beitrag von Clear » 19.03.2021, 12:03

Vielen Dank,
wenigstens eine "alte" Lederhaut die mir antwortet.
Normalerweise schreibe ich nicht "hab's alleine hinbekommen" sondern zeige auch meine Lösung.
Ich war halt etwas sauer, dass nach 90 Aufrufen sich niemand gemeldet hat.
Weil ich mir nicht vorstellen kann, dass gerade Anfänger nicht ähnliche Probleme haben.

Mein Ziel war, egal wo der Schalter geschaltet wird, am Gerät selbst, am Dashboard oder in der CCU, dass der Status allen Beteiligten immer die richtige Schalterstellung einnehmen.
Für node-red Profis ein Klax, für Anfänger eine riesen Hürde.

Aber bevor ich viel herumlabere, hier meine Lösung:
redNode_Zwischenstecker.png

Code: Alles auswählen

[{"id":"df9898ef.6546e8","type":"zigbee-converter","z":"2bb820b8.62a62","shepherd":"e5041365.41a77","name":"Steckdose","topic":"zigbee/${name}","settopic":"zigbee/${name}/set","gettopic":"zigbee/${name}/get","device":"0xbc33acfffe16f7a9","attribute":"","payload":"plain","x":890,"y":240,"wires":[["1902c255.777d0e","649e1197.8612a"]]},{"id":"3615ced4.e9e172","type":"change","z":"2bb820b8.62a62","name":"Steckdose an","rules":[{"t":"set","p":"topic","pt":"msg","to":"zigbee/Steckdose/set","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"ON\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":200,"wires":[["df9898ef.6546e8"]]},{"id":"cf37e37c.dd14c","type":"debug","z":"2bb820b8.62a62","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1310,"y":280,"wires":[]},{"id":"31f5d374.3a98ac","type":"ccu-value","z":"2bb820b8.62a62","name":"","iface":"CUxD","channel":"CUX4000003:1 VIR-LG-ONOFF CUX4000003: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":230,"y":240,"wires":[["a1dcccbe.9b2ae"]]},{"id":"a1dcccbe.9b2ae","type":"switch","z":"2bb820b8.62a62","name":"switch","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":450,"y":240,"wires":[["3615ced4.e9e172"],["dced7699.ab5558"]]},{"id":"dced7699.ab5558","type":"change","z":"2bb820b8.62a62","name":"Steckdose aus","rules":[{"t":"set","p":"topic","pt":"msg","to":"zigbee/Steckdose/set","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"OFF\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":280,"wires":[["df9898ef.6546e8"]]},{"id":"645e7960.9353a8","type":"ui_switch","z":"2bb820b8.62a62","name":"Schalter","label":"Steckdosenschalter","tooltip":"","group":"d948a298.a1815","order":3,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"zigbee/Steckdose/set","style":"","onvalue":"{\"state\":\"ON\"}","onvalueType":"json","onicon":"","oncolor":"","offvalue":"{\"state\": \"OFF\"}","offvalueType":"json","officon":"","offcolor":"","x":880,"y":140,"wires":[["df9898ef.6546e8"]]},{"id":"1902c255.777d0e","type":"change","z":"2bb820b8.62a62","name":"JSON_ON_OFF","rules":[{"t":"change","p":"payload","pt":"msg","from":"ON","fromt":"str","to":"{ \"state\" : \"ON\" }","tot":"json"},{"t":"change","p":"payload","pt":"msg","from":"OFF","fromt":"str","to":"{ \"state\" : \"OFF\" }","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":280,"wires":[["cf37e37c.dd14c","645e7960.9353a8"]]},{"id":"bdb82f11.da856","type":"ccu-value","z":"2bb820b8.62a62","name":"VIR-LG-ONOFF SET_STATE","iface":"CUxD","channel":"CUX4000003:1 VIR-LG-ONOFF CUX4000003:1","datapoint":"SET_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":1360,"y":140,"wires":[[]]},{"id":"12533129.09d1ff","type":"function","z":"2bb820b8.62a62","name":"Schalter_Status","func":"return [\n {\n  \"interface\": \"CUxD\",\n  \"channel\": \"CUX4000003:1\",\n  \"datapoint\": \"SET_STATE\",\n  \"payload\": msg.payload\n}\n];\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1320,"y":220,"wires":[["bdb82f11.da856"]]},{"id":"649e1197.8612a","type":"change","z":"2bb820b8.62a62","name":"SET_STATE CUxD","rules":[{"t":"change","p":"payload","pt":"msg","from":"ON","fromt":"str","to":"1","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"OFF","fromt":"str","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1110,"y":180,"wires":[["12533129.09d1ff"]]},{"id":"e5041365.41a77","type":"zigbee-shepherd","name":"zigbee controller","path":"/dev/ttyACM0","baudRate":"115200","rtscts":true,"channelList":[11],"led":"disabled","adapter":"zstack"},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""},{"id":"d948a298.a1815","type":"ui_group","name":"Steckdose","tab":"99e9df83.0c218","order":1,"disp":true,"width":"6","collapse":false},{"id":"99e9df83.0c218","type":"ui_tab","name":"Zigbee","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
Ich hoffe, es ist selbsterklärend.
Wenn nicht, werde ich gerne versuchen Fragen zu beantworten:

Gruß
Clear

Lederhaut
Beiträge: 2
Registriert: 18.03.2021, 16:39
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: node-red State Feedback

Beitrag von Lederhaut » 20.03.2021, 14:12

Ja genau, sieht bei mir ähnlich aus:
Bild

Code: Alles auswählen

[{"id":"4b572a0f.6bff7c","type":"function","z":"a1e97ce5.f44628","name":"TOGGLE","func":"msg.payload={\n\t\"state\" : \"TOGGLE\"\n};\nmsg.topic = \"zigbee/LidlSteckdose/set\";\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":420,"y":1120,"wires":[["685e3ef8.5357e8"]]},{"id":"685e3ef8.5357e8","type":"zigbee-converter","z":"a1e97ce5.f44628","shepherd":"d34c6f97.c7886","name":"LidlSteckdose","topic":"zigbee/${ieeeAddr}","settopic":"zigbee/${ieeeAddr}/set","gettopic":"","device":"0xabc33abcfe0ec071","attribute":"","payload":"json","x":660,"y":1100,"wires":[["5a97006d.7e344","8cf7b304.2fa498","5e32712.b27509","4959d31f.bd4bfc"]],"info":"# Silvercrest smart plug (Lidl HG06337)\n\n[lidl.de SILVERCREST Steckdose Zwischenstecker Zigbee](https://www.lidl.de/de/silvercrest-steckdose-zwischenstecker-zigbee-smart-home/p355168)\n\n[zigbee2mqtt.io Lidl HG06337](https://www.zigbee2mqtt.io/devices/HG06337.html)"},{"id":"24e7445f.e7bca4","type":"function","z":"a1e97ce5.f44628","name":"ON","func":"msg.payload={\n\t\"state\" : \"ON\"\n};\nmsg.topic = \"zigbee/LidlSteckdose/set\";\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":410,"y":1160,"wires":[["685e3ef8.5357e8"]]},{"id":"29eb67a1.00796","type":"function","z":"a1e97ce5.f44628","name":"OFF","func":"msg.payload={\n\t\"state\" : \"OFF\"\n};\nmsg.topic = \"zigbee/LidlSteckdose/set\";\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":410,"y":1200,"wires":[["685e3ef8.5357e8"]]},{"id":"5541a5e9.6a582c","type":"ui_button","z":"a1e97ce5.f44628","name":"","group":"bd04d200.f59ba","order":4,"width":0,"height":0,"passthru":false,"label":"Steckdose Aus","tooltip":"","color":"","bgcolor":"red","icon":"","payload":"0","payloadType":"str","topic":"","x":160,"y":1200,"wires":[["29eb67a1.00796"]]},{"id":"9bdd9131.7e06b","type":"ui_button","z":"a1e97ce5.f44628","name":"","group":"bd04d200.f59ba","order":3,"width":0,"height":0,"passthru":false,"label":"Steckdose Ein","tooltip":"","color":"","bgcolor":"green","icon":"","payload":"1","payloadType":"str","topic":"","x":160,"y":1160,"wires":[["24e7445f.e7bca4"]]},{"id":"12fc7e2d.5e7d7a","type":"ui_switch","z":"a1e97ce5.f44628","name":"","label":"Steckdose Switch","tooltip":"","group":"bd04d200.f59ba","order":3,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":170,"y":1120,"wires":[["4b572a0f.6bff7c"]]},{"id":"25dd75d1.765be2","type":"ui_gauge","z":"a1e97ce5.f44628","name":"Linkquality","group":"bd04d200.f59ba","order":3,"width":0,"height":0,"gtype":"gage","title":"gauge","label":"lqi","format":"{{value}}","min":0,"max":"255","colors":["#ff2600","#e6e600","#00f900"],"seg1":"64","seg2":"128","x":950,"y":1180,"wires":[]},{"id":"5e32712.b27509","type":"ui_text","z":"a1e97ce5.f44628","group":"bd04d200.f59ba","order":4,"width":0,"height":0,"name":"","label":"state","format":"{{msg.payload}}","layout":"row-spread","x":850,"y":1080,"wires":[]},{"id":"5a97006d.7e344","type":"debug","z":"a1e97ce5.f44628","name":"LidlSteckdose state","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":860,"y":1020,"wires":[]},{"id":"8cf7b304.2fa498","type":"change","z":"a1e97ce5.f44628","name":"linkquality","rules":[{"t":"move","p":"payload.linkquality","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":1180,"wires":[["25dd75d1.765be2"]],"info":"{\"state_undefined\":\"OFF\",\"linkquality\":0}"},{"id":"4959d31f.bd4bfc","type":"function","z":"a1e97ce5.f44628","name":"Zigbee On/Off State","func":"if (msg.payload.state_undefined == null) {\n    node.log(\"no msg.payload.state_undefined\")\n    msg = null;\n} else if (msg.payload.state_undefined == \"ON\" || msg.payload.state_undefined == true) {\n    msg.payload=true;\n} else if (msg.payload.state_undefined == \"OFF\" || msg.payload.state_undefined == false) {\n    msg.payload=false\n} else {\n    node.warn(\"Warning: payload.state_undefined is neither ON nor OFF: \" + msg.payload.state_undefined)\n    msg.payload=false\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":460,"y":1020,"wires":[["12fc7e2d.5e7d7a"]],"inputLabels":["Zigbee State (json, all attributes in 1 msg)"],"outputLabels":["ON/OFF as boolean"]},{"id":"d34c6f97.c7886","type":"zigbee-shepherd","name":"zigbee herdsman","path":"/dev/ttyACM0","baudRate":"115200","rtscts":true,"channelList":[11],"led":"enabled","adapter":"zstack"},{"id":"bd04d200.f59ba","type":"ui_group","name":"SILVERCREST® Steckdose Zwischenstecker","tab":"bf6ed892.4a8958","order":1,"disp":true,"width":"6","collapse":false},{"id":"bf6ed892.4a8958","type":"ui_tab","name":"Zigbee","icon":"dashboard","disabled":false,"hidden":false}]
Das ist jetzt nur das Dashboard, das ich zum Testen benutze.

Eigentlich nehme ich anstatt der CUxD Virtuellen Geräte eine HmIP System Variable zum Schalten aus den Programmen. Und das in Verbindung mit einem HomeKit Schalter, und bei Allen möchte ich den aktuellen Status angezeigt haben. Das Ganze sieht dass so aus:
Bild
Hier habe ich einige Logik in zwei Subflows verlagert, die ich auch für meine Zigbee Lampen benutze.

Code: Alles auswählen

[{"id":"a48dd5d6.bbb008","type":"subflow","name":"zigbee_state2homekit_characteristics","info":"","category":"","in":[{"x":40,"y":40,"wires":[{"id":"669813f.918376c"}]}],"out":[{"x":1380,"y":60,"wires":[{"id":"49775148.4c5bd8","port":0},{"id":"c644fc1f.11a928","port":0},{"id":"5ec42192.2ab968","port":0},{"id":"58de4aa4.6e33c4","port":0},{"id":"9c11d397.227db8","port":0}]},{"x":900,"y":320,"wires":[{"id":"f8ad2c9d.73c208","port":0},{"id":"669813f.918376c","port":0}]},{"x":900,"y":360,"wires":[{"id":"ebd05202.99a7c","port":0},{"id":"669813f.918376c","port":1}]},{"x":900,"y":400,"wires":[{"id":"30701db2.34e96a","port":0},{"id":"669813f.918376c","port":2}]},{"x":900,"y":440,"wires":[]}],"env":[],"color":"#DDAA99","inputLabels":["zigbee device state"],"outputLabels":["homekit characteristics values for universal lightbulb","On/Off state (boolean)","Brightness (in %)","Color Temperature (150-500)","Color (not implemented yet)"]},{"id":"669813f.918376c","type":"function","z":"a48dd5d6.bbb008","name":"Zigbee State On/Off Brightness ColorTemperature","func":"var state, brightness, color_temp;\nif (msg.payload.state) {\n    state = msg;\n    if (state.payload.state == \"ON\" || state.payload.state == true) {\n        state.payload=true;\n    } else if (state.payload.state == \"OFF\" || state.payload.state == false) {\n        state.payload=false;\n    } else {\n        node.warn(\"Warning: payload.state is neither ON nor OFF: \" + JSON.stringify(msg.payload.state));\n        state.payload=false;\n    }\n} else if (msg.payload.brightness) {\n    brightness=msg;\n    var prozent = brightness.payload.brightness * 100 / 255;\n    brightness.payload = prozent.toFixed(0);\n} else if (msg.payload.color_temp) {\n    color_temp=msg;\n    color_temp.payload = msg.payload.color_temp;\n} else {\n    node.warn(\"Warning: unknown payload: \" + JSON.stringify(msg.payload));\n}\n\nreturn [state, brightness, color_temp];","outputs":3,"noerr":0,"initialize":"","finalize":"","x":310,"y":100,"wires":[["c644fc1f.11a928"],["5ec42192.2ab968"],["9c11d397.227db8"]],"inputLabels":["Zigbee State (json, all attributes in 1 msg)"],"outputLabels":["ON/OFF as boolean","Brightness in %",""]},{"id":"c644fc1f.11a928","type":"change","z":"a48dd5d6.bbb008","name":"0/On","rules":[{"t":"set","p":"topic","pt":"msg","to":"0/On","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":810,"y":80,"wires":[[]]},{"id":"5ec42192.2ab968","type":"change","z":"a48dd5d6.bbb008","name":"0/Brightness","rules":[{"t":"set","p":"topic","pt":"msg","to":"0/Brightness","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":830,"y":120,"wires":[[]]},{"id":"58de4aa4.6e33c4","type":"change","z":"a48dd5d6.bbb008","d":true,"name":"0/Brightness (raw payload will be converted)","rules":[{"t":"set","p":"topic","pt":"msg","to":"0/Brightness","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"$round(payload/2.55, 0)\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":930,"y":160,"wires":[[]]},{"id":"9c11d397.227db8","type":"change","z":"a48dd5d6.bbb008","name":"0/ColorTemperature","rules":[{"t":"set","p":"topic","pt":"msg","to":"0/ColorTemperature","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":860,"y":200,"wires":[[]]},{"id":"76fcc3d5.26f68c","type":"comment","z":"a48dd5d6.bbb008","name":"Value only output for each characteristic","info":"to use e.g. for Homematic Sysvar","x":860,"y":280,"wires":[]},{"id":"49775148.4c5bd8","type":"function","z":"a48dd5d6.bbb008","d":true,"name":"msg.topic, msg.payload","func":"\nreturn {topic: msg.topic, payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1230,"y":300,"wires":[[]]},{"id":"ebd05202.99a7c","type":"function","z":"a48dd5d6.bbb008","d":true,"name":"msg.payload","func":"\nreturn {payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":560,"wires":[[]]},{"id":"30701db2.34e96a","type":"function","z":"a48dd5d6.bbb008","d":true,"name":"msg.payload","func":"\nreturn {payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":600,"wires":[[]]},{"id":"f8ad2c9d.73c208","type":"function","z":"a48dd5d6.bbb008","d":true,"name":"msg.payload","func":"\nreturn {payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":520,"wires":[[]]},{"id":"c9a3908b.35a4b8","type":"comment","z":"a48dd5d6.bbb008","name":"cleans the msg object to only topic & payload","info":"","x":670,"y":480,"wires":[]},{"id":"98a9bbf8.03f0d8","type":"subflow","name":"homekit2zigbee light","info":"This is a subflow for a Zigbee light used by a Homekit Universal Lightbulb node.","category":"","in":[{"x":40,"y":40,"wires":[{"id":"b874db8e.a5ab1"}]}],"out":[{"x":1660,"y":140,"wires":[{"id":"d8646f3e.25aba8","port":0}]},{"x":460,"y":320,"wires":[{"id":"35ced725.1e5c3","port":0}]},{"x":460,"y":360,"wires":[{"id":"39b8c9db.e25396","port":0}]},{"x":460,"y":400,"wires":[{"id":"616a5f9a.1e8e","port":0}]},{"x":460,"y":440,"wires":[{"id":"2b0f6e7a.d74122","port":0}]}],"env":[{"name":"zigbee_friendly_name","type":"str","value":"FRIENDLY_NAME"}],"color":"#DDAA99","inputLabels":["0/Characteristics"],"outputLabels":["zigbee command","On/Off state (boolean)","Brightness (in %)","Color Temperature (150-500)","Color (not implemented yet)"]},{"id":"3a7b41d3.f6d156","type":"switch","z":"98a9bbf8.03f0d8","name":"On/Off Switcher","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":480,"y":20,"wires":[["7bc473c4.fe000c","10cdcd29.b9781b"],["ccf0653b.47f77","d0b64724.7ad048"]],"inputLabels":["\"On\" Signal boolean"],"outputLabels":["is true -> On","is dalse -> Off"]},{"id":"53180061.e517f","type":"function","z":"98a9bbf8.03f0d8","d":true,"name":"percentage2brightness","func":"var percentage= msg.payload;\nvar brightness = 254 * percentage / 100;\nmsg.payload={\n\t\"brightness\":\"\" + brightness.toFixed(0) + \"\" \n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":750,"y":200,"wires":[["d8646f3e.25aba8"]]},{"id":"6a2c0e01.cdb75","type":"function","z":"98a9bbf8.03f0d8","d":true,"name":"color_temp","func":"var coltemp= msg.payload;\nmsg.payload={\n\t\"color_temp\":\"\" + coltemp + \"\" \n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":710,"y":280,"wires":[["d8646f3e.25aba8"]]},{"id":"b874db8e.a5ab1","type":"switch","z":"98a9bbf8.03f0d8","name":"Lightbulp Dimmable Switch","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"0/On","vt":"str"},{"t":"eq","v":"0/Brightness","vt":"str"},{"t":"eq","v":"0/ColorTemperature","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":220,"y":40,"wires":[["3a7b41d3.f6d156","35ced725.1e5c3"],["53180061.e517f","c7a7dcec.24be8","39b8c9db.e25396"],["6a2c0e01.cdb75","f1e281fe.fd83f","616a5f9a.1e8e"]],"outputLabels":["0/On (Boolean)","0/Brightness","0/ColorTemperature"]},{"id":"7bc473c4.fe000c","type":"change","z":"98a9bbf8.03f0d8","name":"ON","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"ON\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":40,"wires":[["d8646f3e.25aba8"]]},{"id":"ccf0653b.47f77","type":"change","z":"98a9bbf8.03f0d8","name":"OFF","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"OFF\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":120,"wires":[["d8646f3e.25aba8"]]},{"id":"d0b64724.7ad048","type":"function","z":"98a9bbf8.03f0d8","d":true,"name":"OFF","func":"msg.payload={\n\t\"state\" : \"OFF\"\n};\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":690,"y":160,"wires":[["d8646f3e.25aba8"]]},{"id":"10cdcd29.b9781b","type":"function","z":"98a9bbf8.03f0d8","d":true,"name":"ON","func":"msg.payload={\n\t\"state\" : \"ON\"\n};\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":690,"y":80,"wires":[["d8646f3e.25aba8"]]},{"id":"c7a7dcec.24be8","type":"change","z":"98a9bbf8.03f0d8","name":"brightness","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"brightness\" : $round(payload * 2.55, 0)}","tot":"jsonata"},{"t":"set","p":"brightness","pt":"flow","to":"$round(payload * 2.55, 0)","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":240,"wires":[["d8646f3e.25aba8"]]},{"id":"f1e281fe.fd83f","type":"change","z":"98a9bbf8.03f0d8","name":"color_temp","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"color_temp\" : payload}","tot":"jsonata"},{"t":"set","p":"color_temp","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":320,"wires":[["d8646f3e.25aba8"]]},{"id":"d8646f3e.25aba8","type":"function","z":"98a9bbf8.03f0d8","name":"topic: \"zigbee/\" + $zigbee_friendly_name + \"/set\", payload: msg.payload","func":"\nreturn {topic: \"zigbee/\" + env.get(\"zigbee_friendly_name\") + \"/set\", payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1360,"y":140,"wires":[[]]},{"id":"e1cad42a.47e18","type":"comment","z":"98a9bbf8.03f0d8","name":"cleans the msg object to only topic & payload","info":"","x":1170,"y":80,"wires":[]},{"id":"39b8c9db.e25396","type":"function","z":"98a9bbf8.03f0d8","name":"msg.payload","func":"\nreturn {payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":350,"y":360,"wires":[[]]},{"id":"616a5f9a.1e8e","type":"function","z":"98a9bbf8.03f0d8","name":"msg.payload","func":"\nreturn {payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":350,"y":400,"wires":[[]]},{"id":"35ced725.1e5c3","type":"function","z":"98a9bbf8.03f0d8","name":"msg.payload","func":"\nreturn {payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":350,"y":320,"wires":[[]]},{"id":"21deb561.1959d2","type":"comment","z":"98a9bbf8.03f0d8","name":"cleans the msg object to only topic & payload","info":"","x":310,"y":280,"wires":[]},{"id":"2b0f6e7a.d74122","type":"function","z":"98a9bbf8.03f0d8","name":"msg.payload","func":"\nreturn {payload: msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":350,"y":440,"wires":[[]]},{"id":"93743931.3197d8","type":"redmatic-homekit-universal","z":"238b8bed.99e11c","bridgeConfig":"1555fd76.6c9433","name":"Steckdose","services":[{"subtype":"0","service":"Outlet","name":""}],"x":610,"y":420,"wires":[["cc09d133.b95118"]]},{"id":"cc09d133.b95118","type":"subflow:98a9bbf8.03f0d8","z":"238b8bed.99e11c","name":"LidlSteckdose HK2ZB","env":[{"name":"zigbee_friendly_name","value":"LidlSteckdose","type":"str"}],"x":840,"y":460,"wires":[["f02a62b8.77497"],[],[],[],[]]},{"id":"f02a62b8.77497","type":"zigbee-converter","z":"238b8bed.99e11c","shepherd":"d34c6f97.c7886","name":"Zigbee LidlSteckdose","topic":"zigbee/${ieeeAddr}","settopic":"zigbee/${ieeeAddr}/set","gettopic":"","device":"0xabc33acffe0ef071","attribute":"","payload":"json","x":560,"y":220,"wires":[["9b1cb360.ff38b"]],"info":"##### Silvercrest smart plug (Lidl HG06337)\n\n[lidl.de SILVERCREST Steckdose Zwischenstecker Zigbee](https://www.lidl.de/de/silvercrest-steckdose-zwischenstecker-zigbee-smart-home/p355168)\n\n[zigbee2mqtt.io Lidl HG06337](https://www.zigbee2mqtt.io/devices/HG06337.html)\n"},{"id":"9b1cb360.ff38b","type":"subflow:a48dd5d6.bbb008","z":"238b8bed.99e11c","name":"LidlSteckdose ZB2HK","env":[],"x":300,"y":360,"wires":[["93743931.3197d8"],["a0d5d961.5e5ac8"],[],[],[]]},{"id":"a0d5d961.5e5ac8","type":"ccu-sysvar","z":"238b8bed.99e11c","name":"Gästebad:Steckdose","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":400,"y":480,"wires":[["4e8d8885.3036e8"]]},{"id":"4e8d8885.3036e8","type":"function","z":"238b8bed.99e11c","name":"0/On: msg.value","func":"\nreturn {topic: \"0/On\", payload: msg.value};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":620,"y":480,"wires":[["cc09d133.b95118"]]},{"id":"5f01d77c.20425","type":"comment","z":"238b8bed.99e11c","name":"Homekit Universal 1/Outlet","info":"","x":640,"y":380,"wires":[]},{"id":"1555fd76.6c9433","type":"redmatic-homekit-bridge","name":"RedMatic Bridge","username":"AA:22:33:44:FF:61","pincode":"123-45-678","port":"51826"},{"id":"d34c6f97.c7886","type":"zigbee-shepherd","name":"zigbee herdsman","path":"/dev/ttyACM0","baudRate":"115200","rtscts":true,"channelList":[11],"led":"enabled","adapter":"zstack"},{"id":"38263145.35ea0e","type":"ccu-connection","name":"homematic-ip-ccu3","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","tls":false,"inSecure":false,"authentication":false,"username":"","password":"","queueTimeout":"5000","queuePause":"250","contextStore":""}]
Dateianhänge
2021-03-20_14-09-23.png
2021-03-20_13-40-38.png

Benutzeravatar
Clear
Beiträge: 112
Registriert: 14.01.2018, 18:16
Wohnort: Ebergassing
Hat sich bedankt: 6 Mal
Danksagung erhalten: 7 Mal

Re: node-red State Feedback

Beitrag von Clear » 24.03.2021, 09:22

Hallo Lederhaut,

vielen Dank für deine Beispiele.
Entschuldige, dass ich mich erst jetzt melde aber ich habe mich rednode-mäßig damit beschäftigt ein kleines Homematic-Programm umzusetzen und habe mir dabei wieder einmal die Zähne ausgebissen. Es geht im speziellem um die Umsetzung von Bedingungen wie sie in Homematic-Programmen üblich sind. Für rednode-Anfänger (zumindest für mich) riesen Hürden. Möchte dazu noch einen eigenen Thread posten.
Deine Lösungen zur ZigBee (Lidl) Umsetzung sind sehr interessant und lehrreich.
Mit dem Thema Subflows habe ich mich allerdings noch nicht auseinander gesetzt (kommt noch).

LG
Clear

JulesVerne842
Beiträge: 5
Registriert: 03.02.2024, 17:46
System: CCU

Re: node-red State Feedback

Beitrag von JulesVerne842 » 03.02.2024, 17:49

Moin,

ich versuche mich aktuell daran, das nachzubauen - aber scheitere schon daran, den Schalterstatus in Node Red abzufragen. Erhalte keinerlei Response im Debug...
Kann jmd hier helfen? Wäre stark!

VG

Benutzeravatar
Henke
Beiträge: 1467
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 131 Mal
Danksagung erhalten: 300 Mal

Re: node-red State Feedback

Beitrag von Henke » 03.02.2024, 19:58

Mit den Angaben ist es für niemanden möglich dir zu helfen.
Welche node verwendest du? Wie sind dort die Einstellungen? Kommen Daten von welchem Gerät überhaupt irgendwo an?

JulesVerne842
Beiträge: 5
Registriert: 03.02.2024, 17:46
System: CCU

Re: node-red State Feedback

Beitrag von JulesVerne842 » 04.02.2024, 10:49

Danke für deine Antwort!
Also: die Zwischenstecker sind erfolgreich eingebunden, ich kann sie über die CCU3 ein- und ausschalten. Das Setup folgt exakt der Anleitung von verdrahtet.info. Nun möchte ich in regelmäßigen Abständen den Schalterstatus in der CCU3 aktualisieren, falls in der Zwischenzeit die Zwischenstecker manuell geschaltet würden. Habe also einfach mal eine Event-Node konfiguriert und Debug drangehängt, um zu schauen, ob irgendwas ankommt, wenn ich den Zwischenstecker manuell an- oder ausschalte. Aber: Nada. Ist das ein Denkfehler? Reicht das so an Infos?
VG

Bild
Dateianhänge
Screenshot_20240204-105855.png

rr745
Beiträge: 303
Registriert: 19.01.2021, 14:53
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 34 Mal

Re: node-red State Feedback

Beitrag von rr745 » 04.02.2024, 12:17

JulesVerne842 hat geschrieben:
04.02.2024, 10:49

Bild
einfach zigbee2mqtt "get node" nutzen und schon kann man den status abfrage.
Dateianhänge
1.jpg
Wenn etwas schiefgehen kann, dann geht es schief (Murphy)

Antworten

Zurück zu „RedMatic“