Skip to content

Instantly share code, notes, and snippets.

@MTrab
Created March 23, 2020 09:41
Show Gist options
  • Save MTrab/bdf644bc01859ae1a63d32bd09775d94 to your computer and use it in GitHub Desktop.
Save MTrab/bdf644bc01859ae1a63d32bd09775d94 to your computer and use it in GitHub Desktop.
Dimmer flow for deconz integrated into Node-Red
[{"id":"defa50dd.ba16d","type":"subflow","name":"Dimmer","info":"**On**\n\nKnap ID for at tænde (f.eks. 3 for knap 3002)\n\n**Off**\n\nKnap ID for at slukke (f.eks. 3 for knap 3002)\n\n**Up**\n\nKnap ID for at påbegynde skrue op for lysstyrken (f.eks. 3 for knap 3001)\n\n**Up_Stop**\n\nKnap ID for at stoppe skrue op for lysstyrken (f.eks. 3 for knap 3003)\n\n**Down**\n\nKnap ID for at påbegynde skrue ned for lysstyrken (f.eks. 3 for knap 3001)\n\n**Down_Stop**\n\nKnap ID for at stoppe skrue ned for lysstyrken (f.eks. 3 for knap 3003)\n\n**Step**\n\nAntal steps for hver gang der skrues op og ned\n\n**Entity_id**\n\nEntity ID\n","category":"","in":[{"x":50,"y":30,"wires":[{"id":"df1e841b.354bb8"}]}],"out":[],"env":[{"name":"On","type":"str","value":""},{"name":"Off","type":"str","value":""},{"name":"Up","type":"str","value":""},{"name":"Up_Stop","type":"str","value":""},{"name":"Down","type":"str","value":""},{"name":"Down_Stop","type":"str","value":""},{"name":"Step","type":"num","value":"10"},{"name":"Entity_id","type":"str","value":""}],"color":"#DDAA99"},{"id":"2ce51818.749998","type":"api-call-service","z":"defa50dd.ba16d","name":"Light on","server":"76ca0172.30ea9","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":520,"y":60,"wires":[[]]},{"id":"df1e841b.354bb8","type":"function","z":"defa50dd.ba16d","name":"","func":"var btn = msg.payload.toString();\nvar btnIdx = btn.slice(1);\nvar btnAct = btn.slice(-1)\n\nif (btn == env.get(\"On\") ) {\n return [msg,null,null,null];\n}\n\nif (btn == env.get(\"Off\") ) {\n return [null,msg,null,null];\n}\n\nif (btn == env.get(\"Up\") ) {\n flow.set(\"direction\", 1);\n return [null,null,msg,null];\n}\n\nif (btn == env.get(\"Down\") ) {\n flow.set(\"direction\", 0);\n return [null,null,null,msg];\n}\n\nif (btn == env.get(\"Up_Stop\")) {\n msg.payload = \"stop\";\n return [null,null,msg,null];\n}\n\nif (btn == env.get(\"Down_Stop\")) {\n msg.payload = \"stop\";\n return [null,null,null,msg];\n}","outputs":4,"noerr":0,"x":210,"y":120,"wires":[["2c34edc3.964fb2"],["1074e3c2.b820bc"],["3045b30e.6d118c"],["6a8ada63.9505b4"]]},{"id":"2c34edc3.964fb2","type":"function","z":"defa50dd.ba16d","name":"","func":"if (msg.payload.toString().slice(-1) == 2 ) {\n msg= {\n \"payload\": {\n \"data\": {\n \"entity_id\": env.get(\"Entity_id\")\n }\n }\n }\n \n return msg;\n} else {\n return null;\n}","outputs":1,"noerr":0,"x":370,"y":60,"wires":[["2ce51818.749998"]]},{"id":"7c297e7b.8a6af","type":"api-call-service","z":"defa50dd.ba16d","name":"Light off","server":"76ca0172.30ea9","version":1,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":520,"y":100,"wires":[[]]},{"id":"1074e3c2.b820bc","type":"function","z":"defa50dd.ba16d","name":"","func":"if (msg.payload.toString().slice(-1) == 2 ) {\n msg= {\n \"payload\": {\n \"data\": {\n \"entity_id\": env.get(\"Entity_id\")\n }\n }\n }\n \n return msg;\n} else {\n return null;\n}","outputs":1,"noerr":0,"x":370,"y":100,"wires":[["7c297e7b.8a6af"]]},{"id":"3045b30e.6d118c","type":"looptimer","z":"defa50dd.ba16d","duration":"0.4","units":"Second","maxloops":"100","maxtimeout":"1","maxtimeoutunits":"Hour","name":"","x":410,"y":140,"wires":[["c372888a.0a0178"],[]]},{"id":"80abd7a8.de2248","type":"api-current-state","z":"defa50dd.ba16d","name":"Current Brightness","server":"76ca0172.30ea9","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":730,"y":140,"wires":[["7810b3ce.f7a5bc"]]},{"id":"c372888a.0a0178","type":"function","z":"defa50dd.ba16d","name":"","func":"msg= {\n \"payload\": {\n \"entity_id\": env.get(\"Entity_id\")\n }\n}\n \nreturn msg;\n","outputs":1,"noerr":0,"x":570,"y":140,"wires":[["80abd7a8.de2248"]]},{"id":"7810b3ce.f7a5bc","type":"function","z":"defa50dd.ba16d","name":"+ STEP","func":"var brightness = msg.data.attributes.brightness;\nvar step = env.get(\"Step\");\n\nvar stopAction = null;\nvar stopMsg = {};\nstopMsg.payload = \"stop\";\n\nif (brightness == null) { brightness = 0; }\n\nvar newBrightness = brightness + step;\nif (newBrightness > 255) {\n newBrightness = 255;\n stopAction = stopMsg;\n}\n\nnewmsg = {};\n\nnewmsg.payload = {\n data: { \n \"brightness\": newBrightness,\n \"entity_id\": env.get(\"Entity_id\")\n } \n}\n\nreturn [newmsg,stopAction];\n","outputs":2,"noerr":0,"x":900,"y":140,"wires":[["210886e2.b6a92a"],["3045b30e.6d118c"]]},{"id":"6a8ada63.9505b4","type":"looptimer","z":"defa50dd.ba16d","duration":"0.4","units":"Second","maxloops":"100","maxtimeout":"1","maxtimeoutunits":"Hour","name":"","x":410,"y":200,"wires":[["6f395d24.afdb04"],[]]},{"id":"97bc73ce.69d4c","type":"api-current-state","z":"defa50dd.ba16d","name":"Current Brightness","server":"76ca0172.30ea9","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":730,"y":200,"wires":[["4b4a1768.534188"]]},{"id":"6f395d24.afdb04","type":"function","z":"defa50dd.ba16d","name":"","func":"msg= {\n \"payload\": {\n \"entity_id\": env.get(\"Entity_id\")\n }\n}\n \nreturn msg;\n","outputs":1,"noerr":0,"x":570,"y":200,"wires":[["97bc73ce.69d4c"]]},{"id":"4b4a1768.534188","type":"function","z":"defa50dd.ba16d","name":"- STEP","func":"var brightness = msg.data.attributes.brightness;\nvar step = env.get(\"Step\");\n\nvar stopAction = null;\nvar stopMsg = {};\nstopMsg.payload = \"stop\";\n\nif (brightness == null) { brightness = 0; }\n\nvar newBrightness = brightness - step;\nif (newBrightness > 255) {\n newBrightness = 255;\n stopAction = stopMsg;\n}\n\nnewmsg = {};\n\nnewmsg.payload = {\n data: { \n \"brightness\": newBrightness,\n \"entity_id\": env.get(\"Entity_id\")\n } \n}\n\nreturn [newmsg,stopAction];\n","outputs":2,"noerr":0,"x":900,"y":200,"wires":[["210886e2.b6a92a"],["6a8ada63.9505b4"]]},{"id":"210886e2.b6a92a","type":"api-call-service","z":"defa50dd.ba16d","name":"Light","server":"76ca0172.30ea9","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1050,"y":160,"wires":[[]]},{"id":"76ca0172.30ea9","type":"server","z":"","name":"Home Assistant","legacy":false,"rejectUnauthorizedCerts":true},{"id":"e97795a8.b993e8","type":"deconz-input","z":"cf813d83.034c","name":"Spisestue LK 4ch","server":"6d3bc98b.62b398","device":"14:b4:57:ff:fe:6c:62:dc-01-1000","device_name":"IKEA-LK-4ch-01 : ZHASwitch","state":"buttonevent","output":"onupdate","outputAtStartup":false,"x":140,"y":280,"wires":[["4be8d313.704bbc","5561f875.fe5848"],[]]},{"id":"4be8d313.704bbc","type":"subflow:defa50dd.ba16d","z":"cf813d83.034c","name":"","env":[{"name":"On","value":"4002","type":"str"},{"name":"Off","value":"5002","type":"str"},{"name":"Up","value":"4001","type":"str"},{"name":"Up_Stop","value":"4003","type":"str"},{"name":"Down","value":"5001","type":"str"},{"name":"Down_Stop","value":"5003","type":"str"},{"name":"Entity_id","value":"light.spisebord","type":"str"}],"x":320,"y":280,"wires":[]},{"id":"6d3bc98b.62b398","type":"deconz-server","z":"","name":"deConz-Homeassistant","ip":"10.254.254.109","port":"40850","apikey":"5F7EE6C4AB","ws_port":"8081","secure":false,"polling":"15"}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment