Com esta automação podem usar o comando de volume symfonisk E1744 ou qualquer outro que tenha informação de ‘release’ para controlar o brilho e/ou a temperatura ou cor de uma lâmpada.
Como está temos o seguinte comportamento:
1 click -> toggle on/off
rotate right -> brilho +
rotate left -> brilho -
2 clicks -> altera o flow para controlar a temperatura da cor em vez do brilho. Ao fim de 10 segundos volta a controlar o brilho.
É possível controlar o valor a incrementar tanto no brilho como na temperatura bastando alterar o mesmo nos seguintes nodes:
O que vai acontecer é que quando enviam o comando rotate ele vai iniciar um loop que vai incrementado o valor definido de x em x tempo. Quando param de rodar o comando ele envia um ‘stop’ e o flow vai parar. No caso do comando de 5 botões do IKEA podem usar o longpress e o release.
O flow usa 2 gate nodes que alternam o estado OPEN->CLOSE e CLOSE->OPEN de modo alternar entre a parte do flow que controla o brilho e a que controla a temperatura.
É possível também usar o triplo click neste comando e usar a rotação para controlar a cor da lâmpada , bastando replicar o loop e adicionar as variáveis para a cor.
Neste caso em particular o output é para uma lâmpada ligada numa HUE Bridge. Terão de alterar o node de saída para reflectir a lâmpada que estão a usar.
Link para o flow completo:
E1744-NR-HUE
[{"id":"97e84ab3.dfb5f8","type":"subflow","name":"Temperature Settings","info":"","category":"","in":[{"x":100,"y":80,"wires":[{"id":"43b81a79.6baf14"}]}],"out":[{"x":300,"y":80,"wires":[{"id":"43b81a79.6baf14","port":0}]}],"env":[{"name":"StepTemp","type":"num","value":"100"}],"color":"#DDAA99"},{"id":"43b81a79.6baf14","type":"function","z":"97e84ab3.dfb5f8","name":"StepTemp","func":"var y = env.get(\"StepTemp\"); \nflow.set(\"$parent.StepTemp\", y);\n\nmsg.payload = \"Your Temperature increment has been set to: \" + y;\n\nreturn msg;","outputs":1,"noerr":0,"x":210,"y":80,"wires":[[]]},{"id":"d97afb6c.3a6eb8","type":"subflow","name":"Dimmer Settings","info":"","category":"","in":[{"x":400,"y":80,"wires":[{"id":"37e55d42.073992"}]}],"out":[{"x":620,"y":80,"wires":[{"id":"37e55d42.073992","port":0}]}],"env":[{"name":"Step","type":"num","value":"30"}],"color":"#3FADB5","icon":"node-red/cog.svg"},{"id":"37e55d42.073992","type":"function","z":"d97afb6c.3a6eb8","name":"Step","func":"var x = env.get(\"Step\"); \nflow.set(\"$parent.Step\", x);\n\nmsg.payload = \"Your brightness increment has been set to: \" + x;\n\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":80,"wires":[[]]},{"id":"c81f4ede.78053","type":"tab","label":"IKEA E1744 Brilho e Temperatura","disabled":false,"info":"Este flow permite usar o comando de volume das symfonisk e controlar o brilho e a temperatura de cor de uma lâmpada\n\nFoi feito para um comando ligado via CC2531/zigbee2mqtt e está a controlar uma lâmpada ligada numa Hue Bridge, mas pode facilmente ser adaptado para outras lâmpadas ou outros comandos.\n\n![enter image description here](https://cpha.pt/images/cpha_logo_v_color.png)\n\n\n\n---\n\n**Features**:\n\n- ON|OFF\n- Brilho Mais| Menos\n- incrementos parametrizáveis\n\n---\n# Configurações\n - **Step** incrementar brilho por X \n - **StepTemp** incrementar temperatura por Y\n\n\nFlow baseado no artigo do notenoughtech.com:\n- https://notenoughtech.com/featured/ikea-tradfri-wireless-dimmer-in-nodered/"},{"id":"abc683e3.65a04","type":"function","z":"c81f4ede.78053","name":"Brightness up","func":"var step = flow.get(\"Step\");\nvar brightness = flow.get(\"IKEA_bulb1_brightness\");\n\nif(brightness >= 0){\n brightness = brightness + step;\n flow.set(\"IKEA_bulb1_brightness\", brightness);\n\t}\n\t\nif(brightness >= 100){\n brightness = 99;\n flow.set('press', false);\n flow.set(\"IKEA_bulb1_brightness\", brightness);\n }\n\nmsg.payload = {\"brightness\":brightness};\nreturn msg;","outputs":1,"noerr":0,"x":720,"y":580,"wires":[["5e10094f.95c7f8","65a77a6e.5c4844","165ee3b.ecbd61c"]]},{"id":"f5b62182.ec57c","type":"function","z":"c81f4ede.78053","name":"Brightness down","func":"var step = flow.get(\"Step\");\nvar brightness = flow.get(\"IKEA_bulb1_brightness\");\n\nif(brightness <= 100){\n brightness = brightness - step; \n flow.set(\"IKEA_bulb1_brightness\", brightness);\n\t}\n\t\nif(brightness <= 0){\n brightness = 1;\n flow.set('press', false);\n flow.set(\"IKEA_bulb1_brightness\", brightness);\n }\n\nmsg.payload = {\"brightness\":brightness};\nreturn msg;","outputs":1,"noerr":0,"x":730,"y":620,"wires":[["9e59dd3d.5976f","65a77a6e.5c4844","165ee3b.ecbd61c"]]},{"id":"a75ba5f2.aef578","type":"switch","z":"c81f4ede.78053","name":"Control loop","property":"press","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":950,"y":740,"wires":[["f5b62182.ec57c"]]},{"id":"5e323c1a.60f024","type":"switch","z":"c81f4ede.78053","name":"Control loop","property":"press","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":950,"y":780,"wires":[["abc683e3.65a04"]]},{"id":"5e10094f.95c7f8","type":"delay","z":"c81f4ede.78053","name":"","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":710,"y":780,"wires":[["5e323c1a.60f024"]]},{"id":"9e59dd3d.5976f","type":"delay","z":"c81f4ede.78053","name":"","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":710,"y":740,"wires":[["a75ba5f2.aef578"]]},{"id":"378a97f0.4ebc98","type":"comment","z":"c81f4ede.78053","name":"loop every 500 ms","info":"","x":730,"y":700,"wires":[]},{"id":"d6d58afe.365408","type":"comment","z":"c81f4ede.78053","name":"increase/decrease brightness","info":"","x":720,"y":520,"wires":[]},{"id":"518d4962.52bc88","type":"change","z":"c81f4ede.78053","name":"start","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":400,"wires":[["e63848ab.ea5958"]]},{"id":"e25d10ca.28c4c","type":"change","z":"c81f4ede.78053","name":"stop","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":440,"wires":[["e63848ab.ea5958"]]},{"id":"e63848ab.ea5958","type":"change","z":"c81f4ede.78053","name":"Control the loop","rules":[{"t":"set","p":"press","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":830,"y":415,"wires":[[]]},{"id":"fa0211fc.d4951","type":"comment","z":"c81f4ede.78053","name":"start/stop loop","info":"","x":730,"y":340,"wires":[]},{"id":"8e0e1495.2fd5c8","type":"debug","z":"c81f4ede.78053","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":910,"y":200,"wires":[]},{"id":"63daa6e0.b9fb68","type":"inject","z":"c81f4ede.78053","name":"","topic":"","payload":"{\"state\":\"\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":140,"y":200,"wires":[["300cf7a1.a58358"]]},{"id":"241fa721.1581c8","type":"delay","z":"c81f4ede.78053","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":570,"y":200,"wires":[["3992297e.033956"]]},{"id":"3992297e.033956","type":"function","z":"c81f4ede.78053","name":"Update","func":"\nflow.set(\"IKEA_bulb1_brightness\", msg.payload.brightness);\nflow.set(\"IKEA_bulb1_colorTemp\", msg.payload.colorTemp);\n\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":200,"wires":[["8e0e1495.2fd5c8"]]},{"id":"954c9e02.3eef6","type":"inject","z":"c81f4ede.78053","name":"","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":60,"wires":[["edbc0482.d80f58"]]},{"id":"edbc0482.d80f58","type":"subflow:d97afb6c.3a6eb8","z":"c81f4ede.78053","name":"","env":[{"name":"Step","value":"10","type":"num"}],"x":300,"y":60,"wires":[["8dd46dea.bbc1e"]]},{"id":"8dd46dea.bbc1e","type":"debug","z":"c81f4ede.78053","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":510,"y":60,"wires":[]},{"id":"3a8f4b91.839784","type":"api-call-service","z":"c81f4ede.78053","name":"Sala Movel Toggle","server":"2998c139.aa476e","version":1,"service_domain":"light","service":"toggle","entityId":"light.color_temperature_light_1_2","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":470,"y":340,"wires":[[]]},{"id":"e9532843.0329f8","type":"mqtt in","z":"c81f4ede.78053","name":"Symfonisk","topic":"zigbee2mqtt/0x14b457fffe6c7812","qos":"0","datatype":"json","broker":"1400d847.d95a08","x":80,"y":420,"wires":[["8d198852.40a168"]]},{"id":"7ba61f2f.a84a1","type":"switch","z":"c81f4ede.78053","name":"action","property":"payload.action","propertyType":"msg","rules":[{"t":"eq","v":"play_pause","vt":"str"},{"t":"eq","v":"rotate_right","vt":"str"},{"t":"eq","v":"rotate_left","vt":"str"},{"t":"eq","v":"rotate_stop","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":430,"y":480,"wires":[["3a8f4b91.839784"],["518d4962.52bc88","abc683e3.65a04"],["f5b62182.ec57c","518d4962.52bc88"],["e25d10ca.28c4c"]]},{"id":"300cf7a1.a58358","type":"hue-light","z":"c81f4ede.78053","name":"","bridge":"980c5ff.8a108a","lightid":"8","colornamer":true,"x":380,"y":200,"wires":[["241fa721.1581c8"]]},{"id":"8d198852.40a168","type":"rbe","z":"c81f4ede.78053","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload.action","x":110,"y":480,"wires":[["630993.e780a66c","e0d8ef6a.8eee5","6ee579d0.96f7f8"]]},{"id":"65a77a6e.5c4844","type":"hue-light","z":"c81f4ede.78053","name":"","bridge":"980c5ff.8a108a","lightid":"8","colornamer":true,"x":1020,"y":380,"wires":[[]]},{"id":"630993.e780a66c","type":"switch","z":"c81f4ede.78053","name":"","property":"payload.action","propertyType":"msg","rules":[{"t":"eq","v":"play_pause","vt":"str"},{"t":"eq","v":"skip_forward","vt":"str"},{"t":"eq","v":"skip_backward","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":110,"y":560,"wires":[[],["600e6623.dc92b8"],[]]},{"id":"e0d8ef6a.8eee5","type":"gate","z":"c81f4ede.78053","name":"","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"toggle","defaultCmd":"default","persist":false,"x":290,"y":480,"wires":[["7ba61f2f.a84a1"]]},{"id":"600e6623.dc92b8","type":"ui_button","z":"c81f4ede.78053","name":"toggle","group":"4a941a90.56f554","order":3,"width":0,"height":0,"passthru":true,"label":"toggle","color":"","bgcolor":"","icon":"","payload":"toggle","payloadType":"str","topic":"control","x":250,"y":560,"wires":[["42b9115d.eabb","e0d8ef6a.8eee5","6ee579d0.96f7f8"]]},{"id":"42b9115d.eabb","type":"stoptimer","z":"c81f4ede.78053","duration":"10","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":310,"y":620,"wires":[["600e6623.dc92b8"],[]]},{"id":"47e053b7.45d3bc","type":"debug","z":"c81f4ede.78053","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":510,"y":120,"wires":[]},{"id":"75014677.1d7338","type":"inject","z":"c81f4ede.78053","name":"","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":120,"wires":[["703125f2.824cec"]]},{"id":"703125f2.824cec","type":"subflow:97e84ab3.dfb5f8","z":"c81f4ede.78053","name":"","env":[{"name":"StepTemp","value":"45","type":"num"}],"x":320,"y":120,"wires":[["47e053b7.45d3bc"]],"icon":"node-red/cog.svg"},{"id":"35dd8137.5cef6e","type":"function","z":"c81f4ede.78053","name":"temperature up","func":"var stepTemp = flow.get(\"StepTemp\");\nvar colorTemp = flow.get(\"IKEA_bulb1_colorTemp\");\n\nif(colorTemp >= 153){\n colorTemp = colorTemp + stepTemp;\n flow.set(\"IKEA_bulb1_colorTemp\", colorTemp);\n\t}\n\t\nif(colorTemp >= 500){\n colorTemp = 499;\n flow.set('press', false);\n flow.set(\"IKEA_bulb1_colorTemp\", colorTemp);\n }\n\nmsg.payload = {\"colorTemp\":colorTemp};\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":1100,"wires":[["24613972.024846","cb2b6f0d.17811","165ee3b.ecbd61c"]]},{"id":"b0fd4d81.c653b","type":"function","z":"c81f4ede.78053","name":"temperature down","func":"var stepTemp = flow.get(\"StepTemp\");\nvar colorTemp = flow.get(\"IKEA_bulb1_colorTemp\");\n\nif(colorTemp <= 500){\n colorTemp = colorTemp - stepTemp; \n flow.set(\"IKEA_bulb1_colorTemp\", colorTemp);\n\t}\n\t\nif(colorTemp <= 154){\n colorTemp = 153;\n flow.set('press', false);\n flow.set(\"IKEA_bulb1_colorTemp\", colorTemp);\n }\n\nmsg.payload = {\"colorTemp\":colorTemp};\nreturn msg;","outputs":1,"noerr":0,"x":750,"y":1140,"wires":[["b566f4b7.d9fe88","cb2b6f0d.17811","165ee3b.ecbd61c"]]},{"id":"56322ba6.cf1924","type":"switch","z":"c81f4ede.78053","name":"Control loop","property":"press","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":970,"y":1260,"wires":[["b0fd4d81.c653b"]]},{"id":"cac00858.537a08","type":"switch","z":"c81f4ede.78053","name":"Control loop","property":"press","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":970,"y":1300,"wires":[["35dd8137.5cef6e"]]},{"id":"24613972.024846","type":"delay","z":"c81f4ede.78053","name":"","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":730,"y":1300,"wires":[["cac00858.537a08"]]},{"id":"b566f4b7.d9fe88","type":"delay","z":"c81f4ede.78053","name":"","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":730,"y":1260,"wires":[["56322ba6.cf1924"]]},{"id":"69f567f2.7bcfc8","type":"comment","z":"c81f4ede.78053","name":"loop every 500 ms","info":"","x":750,"y":1220,"wires":[]},{"id":"bb3a84cf.97b928","type":"comment","z":"c81f4ede.78053","name":"increase/decrease temperature","info":"","x":750,"y":1040,"wires":[]},{"id":"f3c71c42.1d654","type":"change","z":"c81f4ede.78053","name":"start","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":920,"wires":[["e5c4e9ce.f5aa38"]]},{"id":"f16e4373.36913","type":"change","z":"c81f4ede.78053","name":"stop","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":960,"wires":[["e5c4e9ce.f5aa38"]]},{"id":"e5c4e9ce.f5aa38","type":"change","z":"c81f4ede.78053","name":"Control the loop","rules":[{"t":"set","p":"press","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":850,"y":935,"wires":[[]]},{"id":"ceb8c1b4.560a","type":"comment","z":"c81f4ede.78053","name":"start/stop loop","info":"","x":750,"y":860,"wires":[]},{"id":"165f1108.aeca1f","type":"switch","z":"c81f4ede.78053","name":"action","property":"payload.action","propertyType":"msg","rules":[{"t":"eq","v":"play_pause","vt":"str"},{"t":"eq","v":"rotate_right","vt":"str"},{"t":"eq","v":"rotate_left","vt":"str"},{"t":"eq","v":"rotate_stop","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":450,"y":1000,"wires":[["3a8f4b91.839784"],["f3c71c42.1d654","35dd8137.5cef6e"],["b0fd4d81.c653b","f3c71c42.1d654"],["f16e4373.36913"]]},{"id":"cb2b6f0d.17811","type":"hue-light","z":"c81f4ede.78053","name":"","bridge":"980c5ff.8a108a","lightid":"8","colornamer":true,"x":1040,"y":900,"wires":[[]]},{"id":"6ee579d0.96f7f8","type":"gate","z":"c81f4ede.78053","name":"","controlTopic":"control","defaultState":"closed","openCmd":"open","closeCmd":"close","toggleCmd":"toggle","defaultCmd":"default","persist":false,"x":230,"y":980,"wires":[["165f1108.aeca1f"]]},{"id":"165ee3b.ecbd61c","type":"debug","z":"c81f4ede.78053","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":960,"y":1100,"wires":[]},{"id":"2998c139.aa476e","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true},{"id":"1400d847.d95a08","type":"mqtt-broker","z":"","name":"MQTT","broker":"10.11.5.206","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"online","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"980c5ff.8a108a","type":"hue-bridge","z":"","name":"Philips hue","bridge":"10.11.5.199","key":"oJFvLm7n5x9-S8SDN7uq61lhSf0BEwRKHv6PZsEx","interval":"3000"},{"id":"4a941a90.56f554","type":"ui_group","z":"","name":"Gate #1","tab":"4fb4fa8.c4a8c04","order":1,"disp":true,"width":"6","collapse":false},{"id":"4fb4fa8.c4a8c04","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]