NodeRED flow to set RGB color based on who is home

By gill, 3 May, 2023

NodeRED flow to set RGB color based on who is home

[{"id":"f1757236a99c4407","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"ca2ba311.83e5","type":"function","z":"f1757236a99c4407","name":"","func":"if (msg.payload.length === 0) {\n    msg.payload.service = \"turn_off\";\n    return msg;\n}\n\nlet color = \"blue\" // default to person2\nif (msg.payload.length == 2) {\n    color = \"purple\";\n} else if (msg.payload[0].entity_id == \"device_tracker.sm_a536u1\") {\n    color = \"red\";\n}\n\nmsg.payload = {\n    data: {\n        \"color_name\": color\n    }\n};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":860,"y":200,"wires":[["c73875e7.3076d8"]]},{"id":"f4ee87a5.83de18","type":"ha-get-entities","z":"f1757236a99c4407","name":"","server":"cda2c7b7.584b98","version":0,"rules":[{"property":"entity_id","logic":"includes","value":"device_tracker.pixel_6,device_tracker.sm_a536u1","valueType":"str"},{"property":"state","logic":"is","value":"home","valueType":"str"}],"output_type":"array","output_empty_results":true,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":704,"y":200,"wires":[["ca2ba311.83e5"]]},{"id":"c73875e7.3076d8","type":"api-call-service","z":"f1757236a99c4407","name":"Light","server":"cda2c7b7.584b98","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.sengled_e21_n1ea_mintransitionlight"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","output_location":"payload","output_location_type":"msg","x":1004,"y":200,"wires":[[]]},{"id":"5c072cb7.c8c374","type":"server-state-changed","z":"f1757236a99c4407","name":"","server":"cda2c7b7.584b98","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":["device_tracker.pixel_6","device_tracker.sm_a536u1"],"entityidfiltertype":"list","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":386,"y":200,"wires":[["f4ee87a5.83de18"]]},{"id":"3ace1d47.60aa72","type":"function","z":"f1757236a99c4407","name":"","func":"//If person1 is home -> LED = Red\n//If person2 is home -> LED = Blue\n//If both are home -> LED = Purple\n//If no one is home -> LED = off\nif (msg.payload.length === 0) return [null, msg];\n\nlet color = \"blue\" // default to person2\nif (msg.payload.length == 2) {\n    color = \"purple\";\n} else if (msg.payload[0].entity_id == \"device_tracker.pixel6\") {\n    color = \"red\";\n}\nmsg.color = color;\nreturn [msg, null];","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":360,"wires":[["fddf289d.e6e4a8"],["b9c08f14.0c6aa"]]},{"id":"aed9fda.d304a","type":"ha-get-entities","z":"f1757236a99c4407","name":"","server":"cda2c7b7.584b98","version":0,"rules":[{"property":"entity_id","logic":"includes","value":"device_tracker.pixel6,device_tracker.sm_a536u1","valueType":"str"},{"property":"state","logic":"is","value":"home","valueType":"str"}],"output_type":"array","output_empty_results":true,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":724,"y":360,"wires":[["3ace1d47.60aa72"]]},{"id":"b9c08f14.0c6aa","type":"api-call-service","z":"f1757236a99c4407","name":"Turn off Light","server":"cda2c7b7.584b98","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.sengled_e21_n1ea_mintransitionlight_2"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","output_location":"payload","output_location_type":"msg","x":1044,"y":408,"wires":[[]]},{"id":"fddf289d.e6e4a8","type":"api-call-service","z":"f1757236a99c4407","name":"Set color","server":"cda2c7b7.584b98","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.sengled_e21_n1ea_mintransitionlight_2"],"data":"{\"color_name\":\"{{color}}\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","output_location":"payload","output_location_type":"msg","x":1034,"y":360,"wires":[[]]},{"id":"f81b3b78.116248","type":"server-state-changed","z":"f1757236a99c4407","name":"","server":"cda2c7b7.584b98","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":["device_tracker.pixel_6","device_tracker.sm_a536u1"],"entityidfiltertype":"list","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":390,"y":360,"wires":[["aed9fda.d304a"]]},{"id":"cda2c7b7.584b98","type":"server","name":"Home Assistant","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","statusSeparator":"","enableGlobalContextStore":false}]

Private
Yes