(part 3)
[{"id":"03454e69d1fb38da","type":"subflow","name":"Color / Brightness","info":"Color / Brightness Control commands for q-gate node","category":"","in":[{"x":340,"y":140,"wires":[{"id":"e9076938078efe18"}]}],"out":[{"x":640,"y":60,"wires":[{"id":"e9076938078efe18","port":0}]},{"x":640,"y":120,"wires":[{"id":"e9076938078efe18","port":1}]},{"x":640,"y":180,"wires":[{"id":"e9076938078efe18","port":2}]}],"env":[],"meta":{},"color":"#DDAA99","status":{"x":640,"y":240,"wires":[]}},{"id":"e9076938078efe18","type":"function","z":"03454e69d1fb38da","name":"","func":"var entity_id = msg.data.entity_id\nvar current_brightness = msg.data.new_state.attributes.brightness;\nvar current_color_temp = msg.data.new_state.attributes.color_temp;\nvar circadian_mireds = global.get(\"nr_circadian_mireds\");\nvar circadian_brightness = global.get(\"nr_circadian_brightness\");\n/*\nvar calculated_brightness_state = Math.round(circadian_brightness * 0.996078431);\nif (calculated_brightness_state == 254) {calculated_brightness_state = 255}\n*/\ncircadian_brightness = Math.round(circadian_brightness * 0.996078431) + Math.floor(circadian_brightness/255);\n\nvar debug = \n {\n \"Entity\": entity_id,\n \"Old color\": msg.data.old_state.attributes.color_temp,\n \"New color\": msg.data.new_state.attributes.color_temp,\n \"Current color_temp\": current_color_temp,\n \"Circadian mireds\": circadian_mireds,\n \"Old brightness\": msg.data.old_state.attributes.brightness,\n \"New brightness\": msg.data.new_state.attributes.brightness,\n \"Current brightness\": current_brightness,\n \"Circadian brightness\": circadian_brightness\n }\n\nif (msg.data.old_state.state == \"on\" && msg.data.new_state.state == \"on\"){\n\n if (current_color_temp == circadian_mireds &&\n current_brightness == circadian_brightness){\n return [{topic: \"control\", payload: \"open\"}, {topic: \"control\", payload: \"open\"}, debug]\n }\n if (current_color_temp != circadian_mireds &&\n current_brightness == circadian_brightness){\n return [{topic: \"control\", payload: \"queue\"}, {topic: \"control\", payload: \"open\"}, debug]\n }\n if (current_color_temp == circadian_mireds &&\n current_brightness != circadian_brightness){\n return [{topic: \"control\", payload: \"open\"}, {topic: \"control\", payload: \"queue\"}, debug]\n }\n if (current_color_temp != circadian_mireds && \n current_brightness != circadian_brightness){\n return [{topic: \"control\", payload: \"queue\"}, {topic: \"control\", payload: \"queue\"}, debug]\n }\n }\n \nif (msg.data.old_state.state == \"off\" && msg.data.new_state.state == \"on\"){\n return [ { topic: \"control\", payload: \"open\", data: {color_temp: circadian_mireds}},\n { topic: \"control\", payload: \"open\", data: {brightness: circadian_brightness}},\n debug ]}\n\n/* payload.brightness */\n\nif (msg.data.old_state.state == \"on\" && msg.data.new_state.state == \"off\"){\n return [{ topic: \"control\", payload: \"queue\" }, { topic: \"control\", payload: \"queue\"}, debug ]\n }\n\nreturn [null, null, debug]\n\n","outputs":3,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":140,"wires":[[],[],[]]},{"id":"ae8af5aa195ee960","type":"debug","z":"03454e69d1fb38da","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"$globalContext('nr_circadian_mireds')\t","targetType":"jsonata","statusVal":"","statusType":"auto","x":420,"y":260,"wires":[]},{"id":"15d3ba0a712a2f77","type":"debug","z":"03454e69d1fb38da","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"$globalContext('nr_circadian_brightness')\t","targetType":"jsonata","statusVal":"","statusType":"auto","x":420,"y":220,"wires":[]},{"id":"1f25b966d1c6291c","type":"api-call-service","z":"7ea0620.a243ca","name":"Lamp 1","server":"c879ac61.99cd1","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.bedroom_lamp_1"],"data":"{\t \"brightness\": payload.brightness,\t \"color_temp\": payload.color_temp\t}","dataType":"jsonata","mergeContext":"lightOptions","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1260,"y":1280,"wires":[[]]},{"id":"c03d3dd29a831494","type":"api-call-service","z":"7ea0620.a243ca","name":"Lamp 2","server":"c879ac61.99cd1","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.bedroom_lamp_2"],"data":"{\t \"brightness\": payload.brightness,\t \"color_temp\": payload.color_temp\t}","dataType":"jsonata","mergeContext":"lightOptions","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1260,"y":1540,"wires":[[]]},{"id":"e707970223078820","type":"q-gate","z":"7ea0620.a243ca","name":"color_temp","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"toggle","queueCmd":"queue","defaultCmd":"default","triggerCmd":"trigger","flushCmd":"flush","resetCmd":"reset","peekCmd":"","dropCmd":"","statusCmd":"","maxQueueLength":"1","keepNewest":true,"qToggle":true,"persist":true,"storeName":"file","x":810,"y":1300,"wires":[["c3a4bf2a08ab0d24"]]},{"id":"0e8b24ed04b4935a","type":"q-gate","z":"7ea0620.a243ca","name":"brightness","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"toggle","queueCmd":"queue","defaultCmd":"default","triggerCmd":"trigger","flushCmd":"flush","resetCmd":"reset","peekCmd":"","dropCmd":"","statusCmd":"","maxQueueLength":"1","keepNewest":true,"qToggle":true,"persist":true,"storeName":"file","x":810,"y":1360,"wires":[["c3a4bf2a08ab0d24"]]},{"id":"aa436d4aef53ba79","type":"q-gate","z":"7ea0620.a243ca","name":"color_temp","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"toggle","queueCmd":"queue","defaultCmd":"default","triggerCmd":"trigger","flushCmd":"flush","resetCmd":"reset","peekCmd":"","dropCmd":"","statusCmd":"","maxQueueLength":"1","keepNewest":true,"qToggle":true,"persist":true,"storeName":"file","x":810,"y":1560,"wires":[["8ebc916034ac07d2"]]},{"id":"500b7e47055ea28c","type":"q-gate","z":"7ea0620.a243ca","name":"brightness","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"toggle","queueCmd":"queue","defaultCmd":"default","triggerCmd":"trigger","flushCmd":"flush","resetCmd":"reset","peekCmd":"","dropCmd":"","statusCmd":"","maxQueueLength":"1","keepNewest":true,"qToggle":true,"persist":true,"storeName":"file","x":810,"y":1620,"wires":[["8ebc916034ac07d2"]]},{"id":"9368eeec1b7c880b","type":"server-state-changed","z":"7ea0620.a243ca","name":"Bedroom Color","server":"c879ac61.99cd1","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.circadian_lighting_color_bedroom","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":true,"ignorePrevStateUnknown":true,"ignorePrevStateUnavailable":true,"ignoreCurrentStateUnknown":true,"ignoreCurrentStateUnavailable":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"$entity().state = \"on\" ? \"open\" : \"queue\"","valueType":"jsonata"},{"property":"topic","propertyType":"msg","value":"control","valueType":"str"}],"x":126,"y":1420,"wires":[["b8c9f63fc805cae0"]]},{"id":"7d8a0deef287ad2c","type":"server-state-changed","z":"7ea0620.a243ca","name":"Bedroom Brightness","server":"c879ac61.99cd1","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.circadian_lighting_brightness_bedroom","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":true,"ignorePrevStateUnknown":true,"ignorePrevStateUnavailable":true,"ignoreCurrentStateUnknown":true,"ignoreCurrentStateUnavailable":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"$entity().state = \"on\" ? \"open\" : \"queue\"","valueType":"jsonata"},{"property":"topic","propertyType":"msg","value":"control","valueType":"str"}],"x":116,"y":1500,"wires":[["1b32eb0358a988cf"]]},{"id":"4ec21b16da174db6","type":"server-state-changed","z":"7ea0620.a243ca","name":"Circadian Bedroom","server":"c879ac61.99cd1","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.circadian_lighting_bedroom","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":true,"ignorePrevStateUnknown":true,"ignorePrevStateUnavailable":true,"ignoreCurrentStateUnknown":true,"ignoreCurrentStateUnavailable":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":115,"y":1260,"wires":[["bdf91016c6a90f48"]]},{"id":"4593a42aa239dadd","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 Color ","links":["b8c9f63fc805cae0","de1be3f3be4af558","8cac123ecbd59c2a","5ba9a3e3ab65f8bd"],"x":685,"y":1240,"wires":[["6c8916dc559fa2b8"]]},{"id":"bfc5edc53296a8c4","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 2 Brightness","links":["1b32eb0358a988cf","de1be3f3be4af558","4464da13ff770cfb","205b0b229ef257b4"],"x":685,"y":1680,"wires":[["ae8874f2aac7a030"]]},{"id":"b8c9f63fc805cae0","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Color","mode":"link","links":["0402eb088ab780b7","f561c90a0e4e6e3c","dcfa43aa5b436092","4593a42aa239dadd","eb0c9865a1d29657"],"x":255,"y":1420,"wires":[]},{"id":"1b32eb0358a988cf","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Brightness","mode":"link","links":["52d70d0a5994999a","1339a4cf83b12cb5","dcfa43aa5b436092","f469dccbd0fea627","bfc5edc53296a8c4"],"x":255,"y":1500,"wires":[]},{"id":"aff2029202c99c40","type":"server-state-changed","z":"7ea0620.a243ca","name":"Lamp 1","server":"c879ac61.99cd1","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"light.bedroom_lamp_1","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":"","forType":"num","forUnits":"seconds","ignorePrevStateNull":true,"ignorePrevStateUnknown":true,"ignorePrevStateUnavailable":true,"ignoreCurrentStateUnknown":true,"ignoreCurrentStateUnavailable":true,"outputProperties":[{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"}],"x":70,"y":1340,"wires":[["02becfa85f14f491"],["89f66c95982a2bd8"]]},{"id":"c7ea0a655937976f","type":"server-state-changed","z":"7ea0620.a243ca","name":"Lamp 2","server":"c879ac61.99cd1","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"light.bedroom_lamp_2","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":"","forType":"num","forUnits":"seconds","ignorePrevStateNull":true,"ignorePrevStateUnknown":true,"ignorePrevStateUnavailable":true,"ignoreCurrentStateUnknown":true,"ignoreCurrentStateUnavailable":true,"outputProperties":[{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"}],"x":70,"y":1600,"wires":[["087a6decae0adfdc"],["721e357b68403c91"]]},{"id":"eb0c9865a1d29657","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 2 Color ","links":["b8c9f63fc805cae0","de1be3f3be4af558","3b438055c6a0a6f3","205b0b229ef257b4"],"x":685,"y":1500,"wires":[["791d4cdc42260526"]]},{"id":"f469dccbd0fea627","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 Brightness ","links":["1b32eb0358a988cf","de1be3f3be4af558","42ab613fb5c6826a","5ba9a3e3ab65f8bd"],"x":685,"y":1420,"wires":[["77a72f3ff0be5c23"]]},{"id":"efa13c52c2947471","type":"comment","z":"7ea0620.a243ca","name":"Bedroom","info":"","x":80,"y":1200,"wires":[]},{"id":"c3a4bf2a08ab0d24","type":"join","z":"7ea0620.a243ca","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"1","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":970,"y":1320,"wires":[["eb62467f936cc312"]]},{"id":"8ebc916034ac07d2","type":"join","z":"7ea0620.a243ca","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"1","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":970,"y":1580,"wires":[["7dbf53ed6511854f"]]},{"id":"721e357b68403c91","type":"subflow:03454e69d1fb38da","z":"7ea0620.a243ca","name":"Bedroom Lamp 2 Control","x":390,"y":1600,"wires":[["3b438055c6a0a6f3"],["4464da13ff770cfb"],[]]},{"id":"89f66c95982a2bd8","type":"subflow:03454e69d1fb38da","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 Control","x":390,"y":1340,"wires":[["8cac123ecbd59c2a"],["42ab613fb5c6826a"],[]]},{"id":"a52970d03d1f30a5","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 Color Temp q-gate","links":["8a79cf60dd08216b","934e0600896a7adb"],"x":685,"y":1300,"wires":[["e707970223078820"]]},{"id":"d72d56acc2f72b41","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 Brightness q-gate","links":["b1ee887a5f59e581","64e6c7be4a0b5b31"],"x":685,"y":1360,"wires":[["0e8b24ed04b4935a"]]},{"id":"a897dbf21ffb2b4c","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 2 Color Temp q-gate","links":["934e0600896a7adb","af11162d699c55e1"],"x":685,"y":1560,"wires":[["aa436d4aef53ba79"]]},{"id":"b1137e5488a33dda","type":"link in","z":"7ea0620.a243ca","name":"Bedroom Lamp 2 Brightness q-gate","links":["3add71feb086602c","b1ee887a5f59e581"],"x":685,"y":1620,"wires":[["500b7e47055ea28c"]]},{"id":"eb62467f936cc312","type":"api-current-state","z":"7ea0620.a243ca","name":"On?","server":"c879ac61.99cd1","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"light.bedroom_lamp_1","state_type":"str","blockInputOverrides":false,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1090,"y":1320,"wires":[["1f25b966d1c6291c"],["a3ac27cec52e9b67"]]},{"id":"7dbf53ed6511854f","type":"api-current-state","z":"7ea0620.a243ca","name":"On?","server":"c879ac61.99cd1","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"light.bedroom_lamp_2","state_type":"str","blockInputOverrides":false,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1090,"y":1580,"wires":[["c03d3dd29a831494"],["3a6f5d2fa04a41cb"]]},{"id":"a3ac27cec52e9b67","type":"change","z":"7ea0620.a243ca","name":"Queue","rules":[{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"queue","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":1360,"wires":[["5ba9a3e3ab65f8bd"]]},{"id":"5ba9a3e3ab65f8bd","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 is off","mode":"link","links":["4593a42aa239dadd","f469dccbd0fea627"],"x":1335,"y":1360,"wires":[]},{"id":"3a6f5d2fa04a41cb","type":"change","z":"7ea0620.a243ca","name":"Queue","rules":[{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"queue","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":1620,"wires":[["205b0b229ef257b4"]]},{"id":"205b0b229ef257b4","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Lamp 2 is off","mode":"link","links":["bfc5edc53296a8c4","eb0c9865a1d29657"],"x":1335,"y":1620,"wires":[]},{"id":"8cac123ecbd59c2a","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 Color Control","mode":"link","links":["4593a42aa239dadd"],"x":575,"y":1300,"wires":[]},{"id":"42ab613fb5c6826a","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Lamp 1 Brightness Control","mode":"link","links":["f469dccbd0fea627"],"x":575,"y":1360,"wires":[]},{"id":"3b438055c6a0a6f3","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Lamp 2 Color Control","mode":"link","links":["eb0c9865a1d29657"],"x":571,"y":1560,"wires":[]},{"id":"4464da13ff770cfb","type":"link out","z":"7ea0620.a243ca","name":"Bedroom Lampt 2 Brightness Control","mode":"link","links":["bfc5edc53296a8c4"],"x":571,"y":1620,"wires":[]},{"id":"77a72f3ff0be5c23","type":"rbe","z":"7ea0620.a243ca","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":790,"y":1420,"wires":[["0e8b24ed04b4935a","d704b4c9a13f4d48"]]},{"id":"6c8916dc559fa2b8","type":"rbe","z":"7ea0620.a243ca","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":790,"y":1240,"wires":[["e707970223078820","90a55a2ab28c924e"]]},{"id":"ff3087b8dcdd2855","type":"debug","z":"7ea0620.a243ca","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":450,"y":1680,"wires":[]},{"id":"791d4cdc42260526","type":"rbe","z":"7ea0620.a243ca","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":790,"y":1500,"wires":[["aa436d4aef53ba79","30b9d29469672a08"]]},{"id":"ae8874f2aac7a030","type":"rbe","z":"7ea0620.a243ca","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":790,"y":1680,"wires":[["500b7e47055ea28c","5e650e87ceb4e8d3"]]},{"id":"f3b8dfee687a283f","type":"server-state-changed","z":"7ea0620.a243ca","name":"Hue switch action","server":"c879ac61.99cd1","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.phillips_hue_switch_action","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"off_press_release","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"queue","valueType":"str"},{"property":"topic","propertyType":"msg","value":"control","valueType":"str"}],"x":260,"y":1680,"wires":[["ff3087b8dcdd2855"],[]]},{"id":"bdf91016c6a90f48","type":"api-call-service","z":"7ea0620.a243ca","name":"Color & Brightness","server":"c879ac61.99cd1","version":5,"debugenabled":false,"domain":"input_boolean","service":"turn_{{payload}}","areaId":[],"deviceId":[],"entityId":["input_boolean.circadian_lighting_brightness_bedroom","input_boolean.circadian_lighting_color_bedroom"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":335,"y":1260,"wires":[[]]},{"id":"90a55a2ab28c924e","type":"ha-binary-sensor","z":"7ea0620.a243ca","name":"Lamp 1 Color Control","entityConfig":"bf8ec97a8490e71d","version":0,"state":"payload = \"open\" ? \"on\" : \"off\"\t","stateType":"jsonata","attributes":[{"property":"command","value":"payload","valueType":"msg"}],"inputOverride":"allow","outputProperties":[],"x":1020,"y":1240,"wires":[[]]},{"id":"d704b4c9a13f4d48","type":"ha-binary-sensor","z":"7ea0620.a243ca","name":"Lamp 1 Brightness Control","entityConfig":"a5f0bea5cc1f92db","version":0,"state":"payload = \"open\" ? \"on\" : \"off\"\t","stateType":"jsonata","attributes":[{"property":"command","value":"payload","valueType":"msg"}],"inputOverride":"allow","outputProperties":[],"x":1040,"y":1420,"wires":[[]]},{"id":"5e650e87ceb4e8d3","type":"ha-binary-sensor","z":"7ea0620.a243ca","name":"Lamp 2 Brightness Control","entityConfig":"6ca0133380208735","version":0,"state":"payload = \"open\" ? \"on\" : \"off\"\t","stateType":"jsonata","attributes":[{"property":"command","value":"payload","valueType":"msg"}],"inputOverride":"allow","outputProperties":[],"x":1040,"y":1680,"wires":[[]]},{"id":"30b9d29469672a08","type":"ha-binary-sensor","z":"7ea0620.a243ca","name":"Lamp 2 Color Control","entityConfig":"d10a89118eac9c65","version":0,"state":"payload = \"open\" ? \"on\" : \"off\"\t","stateType":"jsonata","attributes":[{"property":"command","value":"payload","valueType":"msg"}],"inputOverride":"allow","outputProperties":[],"x":1020,"y":1500,"wires":[[]]},{"id":"087a6decae0adfdc","type":"trigger","z":"7ea0620.a243ca","name":"","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"1","extend":true,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":200,"y":1580,"wires":[["721e357b68403c91"]]},{"id":"02becfa85f14f491","type":"trigger","z":"7ea0620.a243ca","name":"","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"1","extend":true,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":200,"y":1320,"wires":[["89f66c95982a2bd8"]]},{"id":"c879ac61.99cd1","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"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","enableGlobalContextStore":true},{"id":"bf8ec97a8490e71d","type":"ha-entity-config","server":"c879ac61.99cd1","deviceConfig":"","name":"binary sensor config for Lamp 1 Color Control","version":6,"entityType":"binary_sensor","haConfig":[{"property":"name","value":"Bedroom Lamp 1 Color Control"},{"property":"device_class","value":"opening"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"resend":true},{"id":"a5f0bea5cc1f92db","type":"ha-entity-config","server":"c879ac61.99cd1","deviceConfig":"","name":"binary sensor config for Lamp 1 Brightness Control","version":6,"entityType":"binary_sensor","haConfig":[{"property":"name","value":"Bedroom Lamp 1 Brightness Control"},{"property":"device_class","value":"opening"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"resend":true},{"id":"6ca0133380208735","type":"ha-entity-config","server":"c879ac61.99cd1","deviceConfig":"","name":"binary sensor config for Lamp 2 Brightness Control","version":6,"entityType":"binary_sensor","haConfig":[{"property":"name","value":"Bedroom Lamp 2 Brightness Control"},{"property":"device_class","value":"opening"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"resend":true},{"id":"d10a89118eac9c65","type":"ha-entity-config","server":"c879ac61.99cd1","deviceConfig":"","name":"binary sensor config for Lamp 2 Color Control","version":6,"entityType":"binary_sensor","haConfig":[{"property":"name","value":"Bedroom Lamp 2 Color Control"},{"property":"device_class","value":"opening"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"resend":true}]
Circadian Calculator subflow
[{"id":"5de89261.4fb97c","type":"switch","z":"e812678d.651e28","name":"curve switch","property":"payload.times_of_day.active.name","propertyType":"msg","rules":[{"t":"eq","v":"night","vt":"str"},{"t":"eq","v":"morning","vt":"str"},{"t":"eq","v":"day","vt":"str"},{"t":"eq","v":"evening","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":250,"y":220,"wires":[["ba17c1e6.e6f58","840431b7.eeefc"],["e5bb5a04.a33948","d4d99259.d0d7e"],["7c0f0774.90adf8","6ac1af7.dddb15"],["23b260f9.19f78","a907f5f4.0bf488"]]},{"id":"ba17c1e6.e6f58","type":"spline-curve","z":"e812678d.651e28","name":"night curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0.3},{"x":0.333,"y":0.037},{"x":0.477,"y":0},{"x":0.783,"y":0},{"x":1,"y":0}],"x":490,"y":80,"wires":[["40de744.1e2ca8c","15b473ec45fa7fc4"]]},{"id":"e5bb5a04.a33948","type":"spline-curve","z":"e812678d.651e28","name":"morning curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0.01},{"x":0.132,"y":0.01},{"x":0.269,"y":0.027},{"x":0.449,"y":0.124},{"x":0.676,"y":0.334},{"x":1,"y":0.75}],"x":500,"y":120,"wires":[["40de744.1e2ca8c","15b473ec45fa7fc4"]]},{"id":"23b260f9.19f78","type":"spline-curve","z":"e812678d.651e28","name":"evening curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0.85},{"x":0.036,"y":0.78},{"x":0.176,"y":0.63},{"x":1,"y":0.3}],"x":500,"y":200,"wires":[["40de744.1e2ca8c","15b473ec45fa7fc4"]]},{"id":"7c0f0774.90adf8","type":"spline-curve","z":"e812678d.651e28","name":"daylight curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0.744},{"x":0.03,"y":0.838},{"x":0.097,"y":0.941},{"x":0.183,"y":1},{"x":0.86,"y":0.995},{"x":0.943,"y":0.931},{"x":1,"y":0.85}],"x":500,"y":160,"wires":[["40de744.1e2ca8c","15b473ec45fa7fc4"]]},{"id":"840431b7.eeefc","type":"spline-curve","z":"e812678d.651e28","name":"night curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0.5},{"x":0.067,"y":0.368},{"x":0.133,"y":0.265},{"x":0.27,"y":0.171},{"x":0.333,"y":0.16},{"x":0.506,"y":0.124},{"x":0.606,"y":0}],"x":490,"y":240,"wires":[["c26bdcca.eb483","6f365d7d05905955"]]},{"id":"d4d99259.d0d7e","type":"spline-curve","z":"e812678d.651e28","name":"morning curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0},{"x":0.42,"y":0.018},{"x":0.54,"y":0.051},{"x":0.587,"y":0.101},{"x":0.817,"y":0.675},{"x":1,"y":0.85}],"x":500,"y":280,"wires":[["c26bdcca.eb483","6f365d7d05905955"]]},{"id":"a907f5f4.0bf488","type":"spline-curve","z":"e812678d.651e28","name":"evening curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0.85},{"x":0.787,"y":0.598},{"x":1,"y":0.5}],"x":500,"y":360,"wires":[["c26bdcca.eb483","6f365d7d05905955"]]},{"id":"6ac1af7.dddb15","type":"spline-curve","z":"e812678d.651e28","name":"daylight curve","output_key":"","input_key":"payload.times_of_day.active.perc","points":[{"x":0,"y":0.85},{"x":0.123,"y":0.927},{"x":0.5,"y":1},{"x":0.92,"y":0.904},{"x":1,"y":0.85}],"x":500,"y":320,"wires":[["c26bdcca.eb483","6f365d7d05905955"]]},{"id":"40de744.1e2ca8c","type":"range","z":"e812678d.651e28","minin":"0","maxin":"1","minout":"1","maxout":"254","action":"clamp","round":true,"property":"payload","name":"","x":710,"y":100,"wires":[[]]},{"id":"c26bdcca.eb483","type":"range","z":"e812678d.651e28","minin":"0","maxin":"1","minout":"2000","maxout":"3500","action":"clamp","round":true,"property":"payload","name":"","x":730,"y":320,"wires":[[]]},{"id":"aa4b86d8.b17118","type":"sun-position","z":"e812678d.651e28","name":"","positionConfig":"31826811.22a458","rules":[],"onlyOnChange":"true","topic":"","outputs":1,"start":"","startType":"none","startOffset":0,"startOffsetType":"num","startOffsetMultiplier":60000,"end":"","endType":"none","endOffset":0,"endOffsetType":"num","endOffsetMultiplier":60000,"x":210,"y":80,"wires":[["717191f7a71b0df4"]]},{"id":"15b473ec45fa7fc4","type":"range","z":"e812678d.651e28","minin":"0","maxin":"1","minout":"1","maxout":"100","action":"clamp","round":true,"property":"payload","name":"","x":710,"y":160,"wires":[[]]},{"id":"6f365d7d05905955","type":"range","z":"e812678d.651e28","minin":"0","maxin":"1","minout":"370","maxout":"154","action":"clamp","round":true,"property":"payload","name":"","x":720,"y":260,"wires":[[]]},{"id":"717191f7a71b0df4","type":"function","z":"e812678d.651e28","name":"Times of Day","func":"var newmsg = JSON.parse(JSON.stringify(msg));\nnewmsg.payload.times_of_day = {};\n\nconst processTimeOfDay = function(nme, obj, name_start, name_end) {\n var ret = {};\n ret.name = nme;\n ret.start = obj.times[name_start].ts;\n ret.end = obj.times[name_end].ts;\n ret.perc = (obj.ts - ret.start) / (ret.end - ret.start);\n \n \n // to cover range starting before midnight and ending after it.\n if (ret.start > ret.end)\n {\n var a;\n\n // before midnight\n if (ret.start < obj.ts) \n {\n a = new Date(ret.end);\n a.setUTCDate(a.getUTCDate() + 1);\n ret.end = a.getTime();\n \n \n }\n else if (ret.end > obj.ts) \n {\n a = new Date(ret.start);\n a.setUTCDate(a.getUTCDate() - 1);\n ret.start = a.getTime();\n\n }\n\n }\n \n ret.perc = (obj.ts - ret.start) / (ret.end - ret.start);\n \n obj.times_of_day[nme] = ret;\n if (ret.start <= obj.ts && obj.ts < ret.end ) obj.times_of_day.active = ret;\n}\n\n\nprocessTimeOfDay('night', newmsg.payload, \"astronomicalDusk\", \"astronomicalDawn\");\nprocessTimeOfDay('morning', newmsg.payload, \"astronomicalDawn\", \"goldenHourDawnEnd\");\nprocessTimeOfDay('day', newmsg.payload, \"goldenHourDawnEnd\", \"sunsetStart\");\nprocessTimeOfDay('evening', newmsg.payload, \"sunsetStart\", \"astronomicalDusk\");\n\n\nreturn newmsg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":230,"y":140,"wires":[["5de89261.4fb97c"]]},{"id":"31826811.22a458","type":"position-config","name":"Home Location","isValide":"true","longitude":"0","latitude":"0","angleType":"deg","timeZoneOffset":"99","timeZoneDST":"0","stateTimeFormat":"3","stateDateFormat":"12"}]