Git Product home page Git Product logo

hue-clip-api.node-red-flows's People

Contributors

andesse avatar fredblo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

hue-clip-api.node-red-flows's Issues

Feature request! Share your Ideas…

Hive-Mind Idea collection!!

  • are features missing that you like to have?
  • did you struggle with anything, that should be better explained?
  • do you think that something could be improved?

Just drop a comment and share your thoughts!

Greetings
Andreas

Sample for new 4.3 converter with SSE_Event_Stream

I did not use the events node but the SSE_Event_Stream. How to merge the new converter subflow to this flow? Maybe you could add an additional image or a short description? Or would this be working already?

Helper Functions for finding RID/ID of things

I created some function nodes that parse the data from your great Bridge Data buttons to make things easier to find/see.

[{"id":"6627227d85dea325","type":"link in","z":"c4bb6fdc.f0e168","name":"BRIDGE DATA RESPONSE IN","links":["2f2792d2b2ed933d"],"x":255,"y":2020,"wires":[["af87beed83c30758","dddc299c0d0b23c4","222afbe1e8bbe005"]]},{"id":"af87beed83c30758","type":"switch","z":"c4bb6fdc.f0e168","name":"","property":"endpoint","propertyType":"msg","rules":[{"t":"eq","v":"room","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":450,"y":1960,"wires":[["ed4195b8e13d9630"]]},{"id":"3e8417f1f5858642","type":"inject","z":"c4bb6fdc.f0e168","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":1820,"wires":[["28c011b622d3ac46"]]},{"id":"28c011b622d3ac46","type":"change","z":"c4bb6fdc.f0e168","name":"flow.rooms output","rules":[{"t":"set","p":"payload","pt":"msg","to":"rooms","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":1820,"wires":[["2715446648a9be0f"]]},{"id":"8d173b18434063f7","type":"change","z":"c4bb6fdc.f0e168","name":"","rules":[{"t":"set","p":"rooms","pt":"flow","to":"keys","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":860,"y":1880,"wires":[[]]},{"id":"ed4195b8e13d9630","type":"function","z":"c4bb6fdc.f0e168","name":"Room Name and ID","func":"var response = [];\nvar roomkeys = {};\nmsg.payload.data.forEach(function(item){\n    var pair = {\n        \"name\": item.metadata.name,\n        \"id\": item.id,\n        \"rid\": item.services[0].rid,\n        \"rtype\": item.services[0].rtype\n    };\n    roomkeys[item.id] = item.metadata.name;\n    response.push(pair);\n});\n\nreturn {\n    \"payload\": response,\n    \"topic\": \"rooms name/rid\",\n    \"keys\": roomkeys\n};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":1960,"wires":[["2715446648a9be0f","8d173b18434063f7"]]},{"id":"2715446648a9be0f","type":"debug","z":"c4bb6fdc.f0e168","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1270,"y":2120,"wires":[]},{"id":"01b71903374f128b","type":"function","z":"c4bb6fdc.f0e168","name":"Scene Name, ID, Room Name","func":"var response = [];\nvar rooms = flow.get(\"rooms\") || {};\nvar size = Object.keys(rooms).length;\nif(size <= 0) {\n    node.error(\"Please Update Rooms First\");\n}\nmsg.payload.data.forEach(function(item){\n    var pair = {\n        \"name\": item.metadata.name,\n        \"id\": item.id,\n        // \"rid\": item.group.rid,\n        // \"rtype\": item.group.rtype,\n        \"room-name\": rooms[item.group.rid]\n    };\n    response.push(pair);\n});\nreturn {\n    \"payload\": response,\n    \"topic\": \"Scene name/rids\"\n};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":750,"y":2080,"wires":[["2715446648a9be0f"]]},{"id":"dddc299c0d0b23c4","type":"switch","z":"c4bb6fdc.f0e168","name":"","property":"endpoint","propertyType":"msg","rules":[{"t":"eq","v":"scene","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":450,"y":2080,"wires":[["01b71903374f128b"]]},{"id":"222afbe1e8bbe005","type":"switch","z":"c4bb6fdc.f0e168","name":"","property":"endpoint","propertyType":"msg","rules":[{"t":"eq","v":"light","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":430,"y":2220,"wires":[["7e547dc63b872490"]]},{"id":"7e547dc63b872490","type":"function","z":"c4bb6fdc.f0e168","name":"Light Name, ID, Abilities","func":"var response = [];\nvar rooms = flow.get(\"rooms\") || {};\nvar size = Object.keys(rooms).length;\nif(size <= 0) {\n    node.error(\"Please Update Rooms First\");\n}\nmsg.payload.data.forEach(function(item){\n    var pair = {\n        \"name\": item.metadata.name,\n        \"type\": item.metadata.archetype,\n        \"id\": item.id,\n        \"color\": item.hasOwnProperty(\"color\") ? true : false,\n        \"temp\": item.hasOwnProperty(\"color_temperature\") ? true : false\n    };\n    response.push(pair);\n});\nreturn {\n    \"payload\": response,\n    \"topic\": \"Scene name/rids\"\n};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":730,"y":2220,"wires":[["2715446648a9be0f"]]}]

You are welcome to integrate this into yours.

Can't enable motion from flow

Describe the bug
I have a flow that disables the motion sensor for 10 minutes, then enables it again. I'm migrating from Hue Magic. When I run the flow, the motion disables but after the timeout, it doesn't come back on.

To Reproduce
Steps to reproduce the behavior:

[{"id":"c13967da.3c8eb","type":"api-call-service","z":"95e7528c.dd36c","name":"Hallway Lights On","server":"7741cb1d.3b20c4","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.hallway_lamp_1_2","light.hallway_lamp_2_2"],"data":"{\"brightness_pct\":\"100\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"","output_location_type":"none","x":610,"y":2160,"wires":[[]]},{"id":"56c13fe5.bdb578","type":"server-events","z":"95e7528c.dd36c","name":"","server":"7741cb1d.3b20c4","version":1,"event_type":"call_service","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"$outputData(\"eventData\").event_type","valueType":"jsonata"},{"property":"event_type","propertyType":"msg","value":"$outputData(\"eventData\").event_type","valueType":"jsonata"}],"x":110,"y":2260,"wires":[["c161c505.f81688","1ea28cc1.795d83","cf5cb79e.773fe"]]},{"id":"c161c505.f81688","type":"switch","z":"95e7528c.dd36c","name":"Cat Litter Time","property":"payload.event.service_data.entity_id","propertyType":"msg","rules":[{"t":"eq","v":"script.cat_litter_time","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":320,"y":2240,"wires":[["c13967da.3c8eb"]]},{"id":"1ea28cc1.795d83","type":"debug","z":"95e7528c.dd36c","name":"cat","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":330,"y":2400,"wires":[]},{"id":"cf5cb79e.773fe","type":"switch","z":"95e7528c.dd36c","name":"Cat Litter Time","property":"payload.event.service","propertyType":"msg","rules":[{"t":"eq","v":"cat_litter_time","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":320,"y":2280,"wires":[["c13967da.3c8eb","8a25c2702f5bc1bf","fbe2cfcb2f23f0ce"]]},{"id":"31f859355b193fa6","type":"inject","z":"95e7528c.dd36c","name":"","props":[{"p":"payload.event.service","v":"cat_litter_time","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":90,"y":2340,"wires":[["cf5cb79e.773fe"]]},{"id":"8a25c2702f5bc1bf","type":"trigger","z":"95e7528c.dd36c","name":"","op1":"","op2":"","op1type":"nul","op2type":"date","duration":"10","extend":true,"overrideDelay":false,"units":"s","reset":"STOP","bytopic":"all","topic":"topic","outputs":1,"x":590,"y":2220,"wires":[["6e02db78.1ba654","b4fc6368397392df","662c1aa1b617feae"]]},{"id":"662c1aa1b617feae","type":"debug","z":"95e7528c.dd36c","name":"cat","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":950,"y":2280,"wires":[]},{"id":"6e02db78.1ba654","type":"api-call-service","z":"95e7528c.dd36c","name":"Hallways Lights Off","server":"7741cb1d.3b20c4","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.hallway_lamp_1_2","light.hallway_lamp_2_2"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"","output_location_type":"none","x":910,"y":2160,"wires":[[]]},{"id":"b144094da62d3035","type":"inject","z":"95e7528c.dd36c","name":"","props":[{"p":"payload.event.service","v":"cat_litter_time","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":710,"y":2360,"wires":[["6e02db78.1ba654"]]},{"id":"fbe2cfcb2f23f0ce","type":"link out","z":"95e7528c.dd36c","name":"link out 1","mode":"link","links":["c3e862fe.aaf66"],"x":645,"y":2280,"wires":[]},{"id":"b4fc6368397392df","type":"link out","z":"95e7528c.dd36c","name":"link out 2","mode":"link","links":["b1aa549b.424a38"],"x":835,"y":2220,"wires":[]},{"id":"7741cb1d.3b20c4","type":"server","name":"Home Assistant","version":4,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m"}]

Expected behavior
I expect the motion sensor to be enabled

ALERT! DO NOT UPDATE YOUR BRIDGE!!

Hue changed the data object on Firmware 1.53.1953188010

This is beta firmware in the moment I’m writing this, but you could also get a problem with the next FW!
Turn Auto Update off!

With this flow I am actually not able anymore to get status from light / grouped_light etc.

I try to figure out what happens, even the Id looks strange.

Old, functional firmware
IMG_2606

not functional data object, new firmware, big data array
IMG_2607

So please don’t Update!

Tester needed for Battery Level Subflow

Hi,

i need testers for this subflow. It should output battery level and clear device name (like given in the app)
If you tested, please reply if it worked for you or not. Tag me in please, Thanks!

[{"id":"96970f5963ff2da7","type":"subflow","name":"Battery_Levels","info":"","category":"","in":[{"x":140,"y":260,"wires":[{"id":"0f15762b3078c21c"},{"id":"f481a261c4321a39"},{"id":"10e848d2fb7a5deb"}]}],"out":[{"x":1320,"y":760,"wires":[{"id":"b7ab41aa67eec789","port":0},{"id":"5a65d328a2ee213c","port":0},{"id":"807882b3003ba754","port":0},{"id":"c94227ec66636aa2","port":0},{"id":"c27860d7b55163a4","port":0},{"id":"0c590f30582e2e0d","port":0},{"id":"8f06f48a01d0abf3","port":0},{"id":"ace6c6dbd6762da8","port":0},{"id":"be9175d1fcfc0290","port":0},{"id":"7473dfbd102357a2","port":0},{"id":"81ec8c877ccc458b","port":0},{"id":"e1184fa9fc1b2e75","port":0},{"id":"0e11a39dd27e23b3","port":0},{"id":"7f277676409b85ce","port":0},{"id":"04eaeab9bb46cf34","port":0},{"id":"3bd0cf0250b7a9d6","port":0}]}],"env":[{"name":"API-Key","type":"str","value":"123456abcdef"},{"name":"IP-Adress","type":"str","value":"192.168.xxx.xxx"}],"meta":{},"color":"#12d1aD","icon":"node-red/db.svg"},{"id":"8dac534a5ce3b10d","type":"http request","z":"96970f5963ff2da7","name":"https request","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"4bc31af9bd03bbdc","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":550,"y":320,"wires":[["7e9df7b4ae3c0b53","07a988dfef5c46b0"]]},{"id":"1735ae4db805ff41","type":"change","z":"96970f5963ff2da7","name":"power_state","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"delete","p":"topic","pt":"msg"},{"t":"set","p":"endpoint","pt":"msg","to":"device_power","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":220,"wires":[["2d18cae18e6360ba"]]},{"id":"09f8869bf26266f4","type":"change","z":"96970f5963ff2da7","name":"payload.data","rules":[{"t":"move","p":"payload.data","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":400,"wires":[["d8ae5c6eb43a9514"]]},{"id":"ed8bbf569aa2f8da","type":"function","z":"96970f5963ff2da7","name":"Devices Button and Motion","func":"// NOTE: Devices have multipe rtypes in the services\n// This script grabs the first one, so a motion sensor may show\n// up as \"temperature\" as it also does temp. don't worry\n// this script is more to get the name of the devices to help\n// with the button/motion scripts.\nvar response = [];\nvar devices = {};\nmsg.payload.data.forEach(function(item){\n try {\n if(item.metadata.archetype == \"unknown_archetype\") {\n var pair = {\n \"name\": item.metadata.name,\n \"id\": item.id,\n \"rid\": item.services[0].rid,\n \"rtype\": item.services[0].rtype,\n \"power\": item.services[1].rid\n };\n devices[item.id] = item.metadata.name;\n response.push(pair);\n }\n } catch(err) {\n node.warn(err);\n }\n});\n\nreturn {\n \"payload\": response,\n \"topic\": \"devices name/rid\",\n \"keys\": devices\n};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":280,"wires":[["b90ab8a670739d83"]]},{"id":"f481a261c4321a39","type":"change","z":"96970f5963ff2da7","name":"device","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"delete","p":"topic","pt":"msg"},{"t":"set","p":"endpoint","pt":"msg","to":"device","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":340,"wires":[["1c20b4f9de1af513"]]},{"id":"c94227ec66636aa2","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.3.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.3.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":580,"wires":[[]]},{"id":"3bd0cf0250b7a9d6","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.4.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.4.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":620,"wires":[[]]},{"id":"04eaeab9bb46cf34","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.5.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.5.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":660,"wires":[[]]},{"id":"7f277676409b85ce","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.6.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.6.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":700,"wires":[[]]},{"id":"0e11a39dd27e23b3","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.7.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.7.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":740,"wires":[[]]},{"id":"e1184fa9fc1b2e75","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.8.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.8.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":780,"wires":[[]]},{"id":"81ec8c877ccc458b","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.9.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.9.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":820,"wires":[[]]},{"id":"7473dfbd102357a2","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.10.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.10.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":860,"wires":[[]]},{"id":"be9175d1fcfc0290","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.11.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.11.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":900,"wires":[[]]},{"id":"ace6c6dbd6762da8","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.12.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.12.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":940,"wires":[[]]},{"id":"8f06f48a01d0abf3","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.13.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.13.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":980,"wires":[[]]},{"id":"0c590f30582e2e0d","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.14.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.14.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":1020,"wires":[[]]},{"id":"c27860d7b55163a4","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.15.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.15.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":1060,"wires":[[]]},{"id":"0f15762b3078c21c","type":"delay","z":"96970f5963ff2da7","name":"1s","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":310,"y":180,"wires":[["1735ae4db805ff41","64d20491a92fa8c7"]]},{"id":"d707f3e94e148543","type":"change","z":"96970f5963ff2da7","name":"block","rules":[{"t":"set","p":"block","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":240,"wires":[[]]},{"id":"10e848d2fb7a5deb","type":"change","z":"96970f5963ff2da7","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":380,"wires":[["d707f3e94e148543"]]},{"id":"64d20491a92fa8c7","type":"change","z":"96970f5963ff2da7","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":140,"wires":[["d707f3e94e148543"]]},{"id":"07a988dfef5c46b0","type":"function","z":"96970f5963ff2da7","name":"block","func":"// variable\nlet device = {\n block: flow.get(\"block\"),\n}\n// false\nif (\n device.block === false\n )\n// \n{\n return msg; \n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":320,"wires":[["ed8bbf569aa2f8da"]]},{"id":"7e9df7b4ae3c0b53","type":"function","z":"96970f5963ff2da7","name":"block","func":"// variable\nlet device = {\n block: flow.get(\"block\"),\n}\n// false\nif (\n device.block === true\n )\n// \n{\n return msg; \n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":530,"y":360,"wires":[["09f8869bf26266f4"]]},{"id":"2d18cae18e6360ba","type":"delay","z":"96970f5963ff2da7","name":"500ms","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":310,"y":260,"wires":[["9deefe75a941f706"]]},{"id":"825aef51dbb3b35d","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.1.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":500,"wires":[["5a65d328a2ee213c"]]},{"id":"76e57982a4fa5ad1","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.2.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":540,"wires":[["807882b3003ba754"]]},{"id":"1c20b4f9de1af513","type":"delay","z":"96970f5963ff2da7","name":"500ms","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":310,"y":300,"wires":[["9deefe75a941f706"]]},{"id":"d8ae5c6eb43a9514","type":"change","z":"96970f5963ff2da7","name":"Delete Data","rules":[{"t":"delete","p":"endpoint","pt":"msg"},{"t":"delete","p":"url","pt":"msg"},{"t":"delete","p":"headers","pt":"msg"},{"t":"delete","p":"method","pt":"msg"},{"t":"delete","p":"statusCode","pt":"msg"},{"t":"delete","p":"responseUrl","pt":"msg"},{"t":"delete","p":"retry","pt":"msg"},{"t":"delete","p":"redirectList","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":440,"wires":[["07ef5070605adb2a"]]},{"id":"6a962aee9854cc9a","type":"comment","z":"96970f5963ff2da7","name":"Sets the Device Data in Flow-Variables","info":"","x":950,"y":200,"wires":[]},{"id":"b90ab8a670739d83","type":"change","z":"96970f5963ff2da7","name":"flow.device","rules":[{"t":"set","p":"device","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":240,"wires":[[]]},{"id":"07ef5070605adb2a","type":"split","z":"96970f5963ff2da7","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":570,"y":760,"wires":[["23a3789b05ec994e","825aef51dbb3b35d","b48b748fa1308840","e776afa0e9806b23","f0796112e7b7b535","76e57982a4fa5ad1","4a2034902b60e4ee","a04b91018a3eabbe","6ddaf99e5edb0e70","58f7b9188864e470","197ded1bc968ce36","c4ef09023a0ad9a3","889186c9b807ea54","b7b73adea75d15e5","8e47bec12b0d34fa","2add6c6bd6a1f43d"]]},{"id":"b48b748fa1308840","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.3.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":580,"wires":[["c94227ec66636aa2"]]},{"id":"e776afa0e9806b23","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.4.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":620,"wires":[["3bd0cf0250b7a9d6"]]},{"id":"f0796112e7b7b535","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.5.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":660,"wires":[["04eaeab9bb46cf34"]]},{"id":"23a3789b05ec994e","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.0.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":460,"wires":[["b7ab41aa67eec789"]]},{"id":"b7ab41aa67eec789","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.0.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.0.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":460,"wires":[[]]},{"id":"5a65d328a2ee213c","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.1.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.1.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":500,"wires":[[]]},{"id":"807882b3003ba754","type":"change","z":"96970f5963ff2da7","name":"Name / Battery ","rules":[{"t":"set","p":"topic","pt":"msg","to":"device.2.name","tot":"flow"},{"t":"set","p":"payload.name","pt":"msg","to":"device.2.name","tot":"flow"},{"t":"move","p":"payload.power_state.battery_level","pt":"msg","to":"payload.battery_level","tot":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.owner","pt":"msg"},{"t":"delete","p":"payload.id_v1","pt":"msg"},{"t":"delete","p":"payload.power_state","pt":"msg"},{"t":"delete","p":"payload.id","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":540,"wires":[[]]},{"id":"4a2034902b60e4ee","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.6.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":700,"wires":[["7f277676409b85ce"]]},{"id":"a04b91018a3eabbe","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.7.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":740,"wires":[["0e11a39dd27e23b3"]]},{"id":"6ddaf99e5edb0e70","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.8.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":780,"wires":[["e1184fa9fc1b2e75"]]},{"id":"58f7b9188864e470","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.9.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":820,"wires":[["81ec8c877ccc458b"]]},{"id":"197ded1bc968ce36","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.10.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":860,"wires":[["7473dfbd102357a2"]]},{"id":"2add6c6bd6a1f43d","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.15.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":1060,"wires":[["c27860d7b55163a4"]]},{"id":"8e47bec12b0d34fa","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.14.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":1020,"wires":[["0c590f30582e2e0d"]]},{"id":"b7b73adea75d15e5","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.13.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":980,"wires":[["8f06f48a01d0abf3"]]},{"id":"889186c9b807ea54","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.12.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":940,"wires":[["ace6c6dbd6762da8"]]},{"id":"c4ef09023a0ad9a3","type":"switch","z":"96970f5963ff2da7","name":"","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"device.11.power","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":900,"wires":[["be9175d1fcfc0290"]]},{"id":"9f608464a5f061f5","type":"comment","z":"96970f5963ff2da7","name":"valid proof","info":"","x":860,"y":420,"wires":[]},{"id":"f5b09e53a504bf40","type":"comment","z":"96970f5963ff2da7","name":"Combining Name / Battery","info":"","x":1070,"y":420,"wires":[]},{"id":"8e383874eb3e0e74","type":"comment","z":"96970f5963ff2da7","name":"http request for battery and device endpoint","info":"","x":280,"y":440,"wires":[]},{"id":"9deefe75a941f706","type":"function","z":"96970f5963ff2da7","name":"HUE API V2","func":"let api_key = env.get(\"API-Key\");\nlet ip_adress = env.get(\"IP-Adress\")\n// you can copy the user from the hue config node\nvar user = api_key;\n\n\nif(msg.endpoint === undefined)\n msg.url = \"https://\" + ip_adress + \"/clip/v2/resource\";\nelse if(msg.topic === undefined)\n msg.url = \"https://\" + ip_adress + \"/clip/v2/resource/\" + msg.endpoint;\nelse\n msg.url = \"https://\" + ip_adress + \"/clip/v2/resource/\" + msg.endpoint + \"/\" + msg.topic;\n\n\nmsg.headers = {};\n\nmsg.headers['hue-application-key'] = user;\nmsg.headers['Content-Type'] = 'application/json';\nmsg.headers['Accept'] = 'application/json';\n\nif(msg.payload != undefined)\n msg.headers['ContentLength'] = JSON.stringify(msg.payload).length;\n\nif(msg.verb === undefined)\n msg.method = \"get\";\nelse\n msg.method = msg.verb;\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":280,"wires":[["8dac534a5ce3b10d"]]},{"id":"4bc31af9bd03bbdc","type":"tls-config","name":"","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","servername":"","verifyservercert":false},{"id":"fad2db7dbef54979","type":"tab","label":"Battery Levels","disabled":false,"info":"","env":[]},{"id":"d5cc9da521feee78","type":"debug","z":"fad2db7dbef54979","name":"Battery Levels","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":820,"y":240,"wires":[]},{"id":"721af38911a98de8","type":"comment","z":"fad2db7dbef54979","name":"step1 -- Add API-Key & IP-Adress here","info":"","x":510,"y":200,"wires":[]},{"id":"f53560a09db667fe","type":"inject","z":"fad2db7dbef54979","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":250,"y":240,"wires":[["06b6599ef1eb25a1"]]},{"id":"69d4bbd3d38cd42e","type":"comment","z":"fad2db7dbef54979","name":"Payloads also have the Device Name as a topic","info":"","x":820,"y":280,"wires":[]},{"id":"3537e62fde7f6ffd","type":"comment","z":"fad2db7dbef54979","name":"step2 -- Inject","info":"","x":250,"y":200,"wires":[]},{"id":"cb783882587dbea0","type":"comment","z":"fad2db7dbef54979","name":"step3 -- wait a bit for the payloads","info":"","x":830,"y":200,"wires":[]},{"id":"06b6599ef1eb25a1","type":"subflow:96970f5963ff2da7","z":"fad2db7dbef54979","name":"","x":520,"y":240,"wires":[["d5cc9da521feee78"]]}]

using environment variables for the api config

it would be easier to setup the api v2 nodes if you use env vars instead of editing data in each node:

var user = env.get('hue-application-key');

if(msg.endpoint === undefined)
msg.url = "https://"+env.get('hue-bridge-ip')+"/clip/v2/resource";
else if(msg.topic === undefined)
msg.url = "https:/"+env.get('hue-bridge-ip')+"/clip/v2/resource/" + msg.endpoint;
else
msg.url = "https://"+env.get('hue-bridge-ip')+"/clip/v2/resource/" + msg.endpoint + "/" + msg.topic;

TypeError on Step 7 of the flow

Describe the bug
I did all steps of the install instructions. Then I added a single light id to one of the nodes in step 7 and deployed.
When I now inject the timestamp to that node, the light properly changes but I get an error in the log:
TypeError: Cannot read properties of undefined (reading 'name') .
It originates from function node Light Name, ID, Abilities.

I did some further debugging. Input to the function node is (msg.payload):

{"data":[{"rid":"8be84fb5-cb86-4ae6-a057-9362bf9e2284","rtype":"light"}],"errors":[]}

According to Clip API v2 documentation, this is a valid response for PUT /resource/light/{id}.

The function node itself does expect a metadata property on the data objects. This property is not available.
My Bridge is Up-To-Date. It seems your flow expects a different response. What could be wrong?

To Reproduce
Steps to reproduce the behavior:

  1. Install the flow as described in the README of this repository
  2. Set Up a light in Step 7
  3. Trigger the light
  4. See error in debug window

Expected behavior
No TypeError, instead info log that the light changed.

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Firefox
  • Version: 104.0.2

Comments / Suggestions

Thanks for this! Very well laid out and commented.

A suggestion for your "HUE API V2" function, changing to this can make setup for a new user faster:


// you can copy the user key from the hue config node out of Huemagic
var user = "YOUR CODE";
var ip = "YOUR IP"

if(msg.endpoint === undefined)
 msg.url = "https://" + ip + "/clip/v2/resource";
else if(msg.topic === undefined)
 msg.url = "https://" + ip + "/clip/v2/resource/" + msg.endpoint;
else
 msg.url = "https://" + ip + "/clip/v2/resource/" + msg.endpoint + "/" + msg.topic;

It would also be great to have an example flow to get the current state of a group/light like:

[{"id":"b74f58013a96f441","type":"change","z":"ad06319bce270ec2","name":"Get State","rules":[{"t":"set","p":"endpoint","pt":"msg","to":"grouped_light","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"GROUP RID","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"verb","pt":"msg","to":"get","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":400,"wires":[[]]}]

image

Would also need to add how to grab that data filtering by the RID on the response side. but hopefully most can figure that out if they got this far :)

cannot read rid for zones

Describe the bug
Created a new zone and scene in hue app and wanted to add some automation, but it doesn't load any zones at all and therefore no scenes for zones...
Manually triggering the "get Zones" shows my zones. But manually triggering "Scenes (zones)" shows an empty array because the zones are not stored in the data.

To Reproduce
Steps to reproduce the behavior:
Trigger "Request all Data"

Expected behavior
Zones should show

Screenshots
image

I know it worked in the past, because I do have an automation for another scene in another zone. But that was many weeks ago.
Not sure what could have changed...
Tried it with the flow that was the current one a few months ago, and now with the latest flow. Exact same issue :(
I imported the latest flow, connected my bridge again successfully etc. But this part still fails.
I didn't change anything in the function nodes.

Fluid Dimming when holding keypress

First of all, thank you for your work!
Have been puzzling an evening in Node red but most of my hue flows are now made with your flows. It's easy enough to implement, but I like to figure out what everything does so it takes a bit longer.

Only thing missing for me was a fluid dimming template. I haven't found that in any hue node on the web. I previously implemented it via the Hue V1 api but now I got it working with the V2 API.

I use this for some of my dimmer Switches that I use via Z2M. These switches send a signal on push and release. When I hold this button I want the lights in the room to dim and I want it to stop dimming when I release the button.

[ { "id": "52f9328e99b43f95", "type": "change", "z": "56a9ddfc.0001f4", "name": "Dim Up", "rules": [ { "t": "set", "p": "endpoint", "pt": "msg", "to": "light", "tot": "str" }, { "t": "set", "p": "topic", "pt": "msg", "to": "Replace with your discovered ID", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "{\"dynamics\":{\"duration\":8000},\"dimming_delta\":{\"action\":\"up\",\"brightness_delta\":100}}", "tot": "json" }, { "t": "set", "p": "verb", "pt": "msg", "to": "put", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 720, "y": 1960, "wires": [ [ "64bf48b5.64eda8" ] ] }, { "id": "470b5a6c17a90283", "type": "change", "z": "56a9ddfc.0001f4", "name": "Dim down", "rules": [ { "t": "set", "p": "endpoint", "pt": "msg", "to": "light", "tot": "str" }, { "t": "set", "p": "topic", "pt": "msg", "to": "Replace with your discovered ID", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "{\"dynamics\":{\"duration\":8000},\"dimming_delta\":{\"action\":\"down\",\"brightness_delta\":100}}", "tot": "json" }, { "t": "set", "p": "verb", "pt": "msg", "to": "put", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 720, "y": 2000, "wires": [ [ "64bf48b5.64eda8" ] ] }, { "id": "aa8c21beb02a0c2a", "type": "change", "z": "56a9ddfc.0001f4", "name": "Dim stop", "rules": [ { "t": "set", "p": "endpoint", "pt": "msg", "to": "light", "tot": "str" }, { "t": "set", "p": "topic", "pt": "msg", "to": "Replace with your discovered ID", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "{\"dimming_delta\":{\"action\":\"stop\"}}", "tot": "json" }, { "t": "set", "p": "verb", "pt": "msg", "to": "put", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 720, "y": 2040, "wires": [ [ "64bf48b5.64eda8" ] ] }, { "id": "f23a9de7c12d131c", "type": "inject", "z": "56a9ddfc.0001f4", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 280, "y": 1960, "wires": [ [ "52f9328e99b43f95" ] ] }, { "id": "10a2347a79ee542b", "type": "inject", "z": "56a9ddfc.0001f4", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 280, "y": 2000, "wires": [ [ "470b5a6c17a90283" ] ] }, { "id": "8734450f449c2482", "type": "inject", "z": "56a9ddfc.0001f4", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 280, "y": 2040, "wires": [ [ "aa8c21beb02a0c2a" ] ] } ]

these are the nodes I made to make this possible. Send a dim up or down on the hold and send a stop on the release.

Only thing I'm not sure about is if I implemented the transitiontime correct. I'm hoping this transition time means the light would do a delta 100 in 8 seconds, so if I dim up from 80 to 100 it should take less then 2 seconds. It seems to work that way but I might be wrong.

Mabey these nodes can be useful for someone besides me.

Capusjon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.