Node Red Master Class #5 – Dimming Part 2

In this video I’ll show you how to use Home Assistant and Node Red to control dimming of a Zigbee controlled light from a Zigbee Multi remote from IKEA (Tradfri).

You’ll see how to toggle on and off, Dim up and Dim down in steps of 50 on a single click and how to dim up/down whilst holding until the button is released.

We use a function node, switch node, Change state node, current state nodes and a trigger.

Sequence from this video:

[{"id":"9950aae5.971b18","type":"server-state-changed","z":"ca13c281.83306","name":"Multi 1 Action","server":"22f5da40.d3e236","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.multi1_action","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":170,"y":520,"wires":[["1aff2674.326c6a"]]},{"id":"1aff2674.326c6a","type":"switch","z":"ca13c281.83306","name":"Multi 1 Action","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"toggle","vt":"str"},{"t":"eq","v":"toggle_hold","vt":"str"},{"t":"eq","v":"brightness_up_click","vt":"str"},{"t":"eq","v":"brightness_up_hold","vt":"str"},{"t":"eq","v":"brightness_up_release","vt":"str"},{"t":"eq","v":"brightness_down_click","vt":"str"},{"t":"eq","v":"brightness_down_hold","vt":"str"},{"t":"eq","v":"brightness_down_release","vt":"str"},{"t":"eq","v":"arrow_left_click","vt":"str"},{"t":"eq","v":"arrow_right_click","vt":"str"},{"t":"eq","v":"arrow_left_hold","vt":"str"},{"t":"eq","v":"arrow_left_release","vt":"str"},{"t":"eq","v":"arrow_right_hold","vt":"str"},{"t":"eq","v":"arrow_right_release","vt":"str"}],"checkall":"false","repair":false,"outputs":14,"x":330,"y":520,"wires":[["1f1ce544.44c9bb"],[],["46a9c4c0.7cbe6c"],["61a096a9.48e8d8"],["5084864f.8776d8"],["ca142060.d629a"],["9206f09c.30871"],["c198c10.a6fe84"],[],[],[],[],[],[]]},{"id":"1f1ce544.44c9bb","type":"api-current-state","z":"ca13c281.83306","name":"bedroom light state","server":"22f5da40.d3e236","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.bedroom1_light","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":610,"y":340,"wires":[["f763fbd1.6373b8"],["7bf1cb35.bbd874"]]},{"id":"f763fbd1.6373b8","type":"api-call-service","z":"ca13c281.83306","name":"Light Off","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.bedroom1_light","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":820,"y":300,"wires":[[]]},{"id":"7bf1cb35.bbd874","type":"api-call-service","z":"ca13c281.83306","name":"Light On","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bedroom1_light","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":820,"y":340,"wires":[[]]},{"id":"46a9c4c0.7cbe6c","type":"api-current-state","z":"ca13c281.83306","name":"bedroom light state","server":"22f5da40.d3e236","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.bedroom1_light","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":610,"y":400,"wires":[["e1ef3418.3aa2a8"],[]]},{"id":"e1ef3418.3aa2a8","type":"api-current-state","z":"ca13c281.83306","name":"bedroom brightness","server":"22f5da40.d3e236","version":1,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.bedroom_1_brightness","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":810,"y":400,"wires":[["b5213ba.d6940c8"]]},{"id":"b5213ba.d6940c8","type":"function","z":"ca13c281.83306","name":"Brightness +50","func":"\nvar brightness = msg.payload; //setup brightness and set to msg.payload\nbrightness = parseInt(brightness);\n\nif (brightness < 205) {\n    brightness = brightness + 50;\n} else {\n    brightness = 255;\n}\n\nmsg.payload = brightness;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1000,"y":400,"wires":[["e820e467.aba478"]]},{"id":"e820e467.aba478","type":"api-call-service","z":"ca13c281.83306","name":"Light On","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bedroom1_light","data":"{    \"entity_id\": \"light.bedroom_1_light\",    \"brightness\": {{payload}}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1160,"y":400,"wires":[[]]},{"id":"b086a86d.c51bd8","type":"api-call-service","z":"ca13c281.83306","name":"Light On","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bedroom1_light","data":"{    \"entity_id\": \"light.bedroom_1_light\",    \"brightness\": {{payload}}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1200,"y":540,"wires":[[]]},{"id":"ad70c325.e8235","type":"function","z":"ca13c281.83306","name":"Brightness -50","func":"\nvar brightness = msg.payload; //setup brightness and set to msg.payload\nbrightness = parseInt(brightness);\n\nif (brightness > 51) {\n    brightness = brightness - 50;\n} else {\n    brightness = 1;\n}\n\nmsg.payload = brightness;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1040,"y":540,"wires":[["b086a86d.c51bd8"]]},{"id":"57348096.2e959","type":"api-current-state","z":"ca13c281.83306","name":"bedroom brightness","server":"22f5da40.d3e236","version":1,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.bedroom_1_brightness","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":850,"y":540,"wires":[["ad70c325.e8235"]]},{"id":"ca142060.d629a","type":"api-current-state","z":"ca13c281.83306","name":"bedroom light state","server":"22f5da40.d3e236","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.bedroom1_light","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":650,"y":540,"wires":[["57348096.2e959"],[]]},{"id":"81f7ef5.6c8ee1","type":"api-current-state","z":"ca13c281.83306","name":"bedroom light state","server":"22f5da40.d3e236","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.bedroom1_light","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":890,"y":460,"wires":[["eaf17f64.69237"],[]]},{"id":"eaf17f64.69237","type":"api-current-state","z":"ca13c281.83306","name":"bedroom brightness","server":"22f5da40.d3e236","version":1,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.bedroom_1_brightness","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":1090,"y":460,"wires":[["76d5c13c.42e95"]]},{"id":"838f1e04.6d1b8","type":"api-call-service","z":"ca13c281.83306","name":"Light On","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bedroom1_light","data":"{    \"entity_id\": \"light.bedroom_1_light\",    \"brightness\": {{payload}}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1440,"y":460,"wires":[[]]},{"id":"76d5c13c.42e95","type":"function","z":"ca13c281.83306","name":"Brightness +10","func":"\nvar brightness = msg.payload; //setup brightness and set to msg.payload\nbrightness = parseInt(brightness);\n\nif (brightness < 245) {\n    brightness = brightness + 10;\n} else {\n    brightness = 255;\n}\n\nmsg.payload = brightness;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1280,"y":460,"wires":[["838f1e04.6d1b8"]]},{"id":"61a096a9.48e8d8","type":"trigger","z":"ca13c281.83306","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-250","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":690,"y":460,"wires":[["81f7ef5.6c8ee1"]]},{"id":"5084864f.8776d8","type":"change","z":"ca13c281.83306","name":"reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":500,"wires":[["61a096a9.48e8d8"]]},{"id":"be893666.edbaa8","type":"api-current-state","z":"ca13c281.83306","name":"bedroom light state","server":"22f5da40.d3e236","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.bedroom1_light","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":890,"y":600,"wires":[["734ad677.110c38"],[]]},{"id":"734ad677.110c38","type":"api-current-state","z":"ca13c281.83306","name":"bedroom brightness","server":"22f5da40.d3e236","version":1,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.bedroom_1_brightness","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":1090,"y":600,"wires":[["99c6f559.c06238"]]},{"id":"46212d18.7f36c4","type":"api-call-service","z":"ca13c281.83306","name":"Light On","server":"22f5da40.d3e236","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bedroom1_light","data":"{    \"entity_id\": \"light.bedroom_1_light\",    \"brightness\": {{payload}}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1440,"y":600,"wires":[[]]},{"id":"99c6f559.c06238","type":"function","z":"ca13c281.83306","name":"Brightness -10","func":"\nvar brightness = msg.payload; //setup brightness and set to msg.payload\nbrightness = parseInt(brightness);\n\nif (brightness > 11) {\n    brightness = brightness - 10;\n} else {\n    brightness = 1;\n}\n\nmsg.payload = brightness;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1280,"y":600,"wires":[["46212d18.7f36c4"]]},{"id":"9206f09c.30871","type":"trigger","z":"ca13c281.83306","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"-250","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":690,"y":600,"wires":[["be893666.edbaa8"]]},{"id":"c198c10.a6fe84","type":"change","z":"ca13c281.83306","name":"reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":640,"wires":[["9206f09c.30871"]]},{"id":"22f5da40.d3e236","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]