Dining room overnight motion lighting

This commit is contained in:
2024-02-10 13:37:19 -05:00
parent fa6a2420bd
commit 4fbec886a4

View File

@ -1187,7 +1187,9 @@
"37bdac2c9a4e2837" "37bdac2c9a4e2837"
], ],
"x": 54, "x": 54,
"y": 39 "y": 39,
"w": 1652,
"h": 382
}, },
{ {
"id": "8aee4d340a136bac", "id": "8aee4d340a136bac",
@ -1207,7 +1209,7 @@
"b281061a4b08d2eb" "b281061a4b08d2eb"
], ],
"x": 14, "x": 14,
"y": 919, "y": 1139,
"w": 792, "w": 792,
"h": 202 "h": 202
}, },
@ -1439,7 +1441,9 @@
"99c141f21de4feda" "99c141f21de4feda"
], ],
"x": 74, "x": 74,
"y": 39 "y": 39,
"w": 1132,
"h": 262
}, },
{ {
"id": "a6de35af12739885", "id": "a6de35af12739885",
@ -1461,7 +1465,9 @@
"724f186878227dad" "724f186878227dad"
], ],
"x": 74, "x": 74,
"y": 339 "y": 339,
"w": 1132,
"h": 202
}, },
{ {
"id": "0804d9edeca1c9fa", "id": "0804d9edeca1c9fa",
@ -1482,7 +1488,9 @@
"4523045453de0a33" "4523045453de0a33"
], ],
"x": 74, "x": 74,
"y": 579 "y": 579,
"w": 1092,
"h": 202
}, },
{ {
"id": "385f03591bc34bcc", "id": "385f03591bc34bcc",
@ -1994,7 +2002,7 @@
"fa7c83f1dece9741" "fa7c83f1dece9741"
], ],
"x": 14, "x": 14,
"y": 1139, "y": 1359,
"w": 972, "w": 972,
"h": 262 "h": 262
}, },
@ -2044,6 +2052,30 @@
"w": 792, "w": 792,
"h": 202 "h": 202
}, },
{
"id": "2cf9519404abb320",
"type": "group",
"z": "eff21041cc941fef",
"name": "Dining Room",
"style": {
"label": true
},
"nodes": [
"8b7c95049784f3f2",
"5dd5378daf7167e1",
"8f63644e54a327c1",
"18776d7d2b56cfd3",
"68cbecfd745cb24f",
"50bbe5b7296d27f2",
"a11843dd105f012e",
"ee64a23e4a4ae724",
"4441b7f8ede452fd"
],
"x": 14,
"y": 919,
"w": 1052,
"h": 202
},
{ {
"id": "fba69dfc80829db7", "id": "fba69dfc80829db7",
"type": "junction", "type": "junction",
@ -10226,7 +10258,7 @@
"output_location": "", "output_location": "",
"output_location_type": "none", "output_location_type": "none",
"x": 530, "x": 530,
"y": 1080, "y": 1300,
"wires": [ "wires": [
[] []
] ]
@ -10480,7 +10512,7 @@
"finalize": "", "finalize": "",
"libs": [], "libs": [],
"x": 270, "x": 270,
"y": 1020, "y": 1240,
"wires": [ "wires": [
[ [
"b281061a4b08d2eb" "b281061a4b08d2eb"
@ -10514,7 +10546,7 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 530, "x": 530,
"y": 1020, "y": 1240,
"wires": [ "wires": [
[] []
] ]
@ -10542,7 +10574,7 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 710, "x": 710,
"y": 960, "y": 1180,
"wires": [ "wires": [
[] []
] ]
@ -10568,7 +10600,7 @@
} }
], ],
"x": 120, "x": 120,
"y": 1080, "y": 1300,
"wires": [ "wires": [
[ [
"5123a607588fa737" "5123a607588fa737"
@ -10616,7 +10648,7 @@
} }
], ],
"x": 110, "x": 110,
"y": 1020, "y": 1240,
"wires": [ "wires": [
[ [
"f84e6b5157e857cf" "f84e6b5157e857cf"
@ -10649,7 +10681,7 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 520, "x": 520,
"y": 960, "y": 1180,
"wires": [ "wires": [
[ [
"41a8d5ef20cf55d7" "41a8d5ef20cf55d7"
@ -11259,7 +11291,7 @@
"type": "api-call-service", "type": "api-call-service",
"z": "eff21041cc941fef", "z": "eff21041cc941fef",
"g": "0f7fdf39e4400032", "g": "0f7fdf39e4400032",
"name": "First Floor Lights", "name": "Living Room Lights",
"server": "9e87348d.9c1c48", "server": "9e87348d.9c1c48",
"version": 5, "version": 5,
"debugenabled": false, "debugenabled": false,
@ -11268,7 +11300,7 @@
"areaId": [], "areaId": [],
"deviceId": [], "deviceId": [],
"entityId": [ "entityId": [
"light.first_floor_lights" "light.living_room_lights"
], ],
"data": "{}", "data": "{}",
"dataType": "jsonata", "dataType": "jsonata",
@ -11319,7 +11351,7 @@
"type": "api-call-service", "type": "api-call-service",
"z": "eff21041cc941fef", "z": "eff21041cc941fef",
"g": "0f7fdf39e4400032", "g": "0f7fdf39e4400032",
"name": "Set Scenes", "name": "Set Scene",
"server": "9e87348d.9c1c48", "server": "9e87348d.9c1c48",
"version": 5, "version": 5,
"debugenabled": false, "debugenabled": false,
@ -11328,11 +11360,7 @@
"areaId": [], "areaId": [],
"deviceId": [], "deviceId": [],
"entityId": [ "entityId": [
"input_select.dining_room_lamp_scenes", "input_select.living_room_scenes"
"input_select.downstairs_bathroom_scenes",
"input_select.living_room_scenes",
"input_select.mud_room_scenes",
"input_select.tina_lamp_scenes"
], ],
"data": "{\t \"option\": \"Adaptive\"\t}", "data": "{\t \"option\": \"Adaptive\"\t}",
"dataType": "jsonata", "dataType": "jsonata",
@ -11388,11 +11416,7 @@
"areaId": [], "areaId": [],
"deviceId": [], "deviceId": [],
"entityId": [ "entityId": [
"light.dining_room_lamp", "light.living_room_lights"
"light.downstairs_bathroom_lights",
"light.living_room_lights",
"light.mud_room_overhead",
"light.tina_desk_lights"
], ],
"data": "{}", "data": "{}",
"dataType": "jsonata", "dataType": "jsonata",
@ -11447,7 +11471,7 @@
} }
], ],
"x": 110, "x": 110,
"y": 1240, "y": 1460,
"wires": [ "wires": [
[ [
"7c4cc52be117251f" "7c4cc52be117251f"
@ -11471,7 +11495,7 @@
"finalize": "", "finalize": "",
"libs": [], "libs": [],
"x": 270, "x": 270,
"y": 1240, "y": 1460,
"wires": [ "wires": [
[ [
"67d04dc394a23636" "67d04dc394a23636"
@ -11505,7 +11529,7 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 700, "x": 700,
"y": 1180, "y": 1400,
"wires": [ "wires": [
[ [
"ddae3391e8b78cb8" "ddae3391e8b78cb8"
@ -11535,7 +11559,7 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 890, "x": 890,
"y": 1180, "y": 1400,
"wires": [ "wires": [
[] []
] ]
@ -11563,7 +11587,7 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 530, "x": 530,
"y": 1240, "y": 1460,
"wires": [ "wires": [
[] []
] ]
@ -11591,7 +11615,7 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 520, "x": 520,
"y": 1180, "y": 1400,
"wires": [ "wires": [
[ [
"a7cd304d11f25e60" "a7cd304d11f25e60"
@ -11623,7 +11647,7 @@
"output_location": "", "output_location": "",
"output_location_type": "none", "output_location_type": "none",
"x": 530, "x": 530,
"y": 1360, "y": 1580,
"wires": [ "wires": [
[] []
] ]
@ -11649,7 +11673,7 @@
} }
], ],
"x": 120, "x": 120,
"y": 1300, "y": 1520,
"wires": [ "wires": [
[ [
"5d9a85d3534d83e6" "5d9a85d3534d83e6"
@ -11688,7 +11712,7 @@
"entity_location": "data", "entity_location": "data",
"override_data": "msg", "override_data": "msg",
"x": 330, "x": 330,
"y": 1300, "y": 1520,
"wires": [ "wires": [
[ [
"fa7c83f1dece9741" "fa7c83f1dece9741"
@ -11721,7 +11745,297 @@
"outputProperties": [], "outputProperties": [],
"queue": "none", "queue": "none",
"x": 540, "x": 540,
"y": 1300, "y": 1520,
"wires": [
[]
]
},
{
"id": "8b7c95049784f3f2",
"type": "server-state-changed",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Dining Room Motion",
"server": "9e87348d.9c1c48",
"version": 5,
"outputs": 1,
"exposeAsEntityConfig": "4a9187b8b68e4181",
"entityId": "binary_sensor.dining_room_motion",
"entityIdType": "exact",
"outputInitially": false,
"stateType": "str",
"ifState": "",
"ifStateType": "str",
"ifStateOperator": "is",
"outputOnlyOnStateChange": true,
"for": "0",
"forType": "num",
"forUnits": "minutes",
"ignorePrevStateNull": false,
"ignorePrevStateUnknown": true,
"ignorePrevStateUnavailable": true,
"ignoreCurrentStateUnknown": true,
"ignoreCurrentStateUnavailable": true,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "topic",
"propertyType": "msg",
"value": "motion",
"valueType": "str"
}
],
"x": 130,
"y": 960,
"wires": [
[
"8f63644e54a327c1"
]
]
},
{
"id": "5dd5378daf7167e1",
"type": "server-events",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Timer Finished",
"server": "9e87348d.9c1c48",
"version": 3,
"exposeAsEntityConfig": "",
"eventType": "timer.finished",
"eventData": "{\"entity_id\":\"timer.dining_room_motion_timer\"}",
"waitForRunning": true,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "finished",
"valueType": "str"
},
{
"property": "topic",
"propertyType": "msg",
"value": "timer",
"valueType": "str"
}
],
"x": 140,
"y": 1020,
"wires": [
[
"8f63644e54a327c1"
]
]
},
{
"id": "8f63644e54a327c1",
"type": "function",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Dining Room Processing",
"func": "const states = global.get('homeassistant.homeAssistant.states')\nconst peoplePresent = states['binary_sensor.people_present'].state\nconst vacationMode = states['input_boolean.vacation_mode'].state\nconst nightMode = states['input_boolean.night_mode'].state\nconst kallenSleeping = states['input_boolean.kallen_sleeping'].state\nconst kallenOvernight = states['input_boolean.kallen_overnight'].state\nconst duration = states['input_number.dining_room_lights_off_delay'].state\nconst newDuration = duration * 60\nconst topic = msg.topic\nconst payload = msg.payload\n\nlet block = {}\n\nif ((peoplePresent === 'on' && vacationMode === 'off' && nightMode === 'on') && (kallenSleeping === 'on' || kallenOvernight === 'on')) {\n block = false\n} else {\n block = true\n}\n\nif (topic === 'motion' && block === false) {\n if (payload === 'on') {\n node.status({fill:'green',shape:'dot',text:'Motion On'})\n node.send([msg,null,null])\n } else if (payload === 'off') {\n msg.duration = newDuration\n node.status({fill:'red',shape:'ring',text:parseInt(duration) + ' minutes'})\n node.send([null,msg,null])\n }\n} else if (topic === 'timer') {\n if (payload === 'finished') {\n node.status({fill:'green',shape:'dot',text:'Timer Finished'})\n node.send([null,null,msg])\n }\n} else if (block === true) {\n node.status({fill:'red',shape:'ring',text:'Blocked'})\n}",
"outputs": 3,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 390,
"y": 1020,
"wires": [
[
"68cbecfd745cb24f"
],
[
"a11843dd105f012e"
],
[
"ee64a23e4a4ae724"
]
],
"outputLabels": [
"Motion On",
"Motion Off",
"Timer Finished"
],
"icon": "node-red-contrib-huemagic/hue-motion.svg"
},
{
"id": "18776d7d2b56cfd3",
"type": "api-call-service",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Lights On",
"server": "9e87348d.9c1c48",
"version": 5,
"debugenabled": false,
"domain": "light",
"service": "turn_on",
"areaId": [],
"deviceId": [],
"entityId": [
"light.dining_room_lamp",
"light.tina_desk_lights"
],
"data": "{}",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"x": 780,
"y": 960,
"wires": [
[
"50bbe5b7296d27f2",
"4441b7f8ede452fd"
]
]
},
{
"id": "68cbecfd745cb24f",
"type": "api-call-service",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Cancel Timer",
"server": "9e87348d.9c1c48",
"version": 5,
"debugenabled": false,
"domain": "timer",
"service": "cancel",
"areaId": [],
"deviceId": [],
"entityId": [
"timer.dining_room_motion_timer"
],
"data": "{}",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"x": 610,
"y": 960,
"wires": [
[
"18776d7d2b56cfd3"
]
]
},
{
"id": "50bbe5b7296d27f2",
"type": "api-call-service",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Lamp Scene",
"server": "9e87348d.9c1c48",
"version": 5,
"debugenabled": false,
"domain": "input_select",
"service": "select_option",
"areaId": [],
"deviceId": [],
"entityId": [
"input_select.dining_room_lamp_scenes"
],
"data": "{\t \"option\": \"Adaptive\"\t}",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"x": 970,
"y": 960,
"wires": [
[]
]
},
{
"id": "a11843dd105f012e",
"type": "api-call-service",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Start Timer",
"server": "9e87348d.9c1c48",
"version": 5,
"debugenabled": false,
"domain": "timer",
"service": "start",
"areaId": [],
"deviceId": [],
"entityId": [
"timer.dining_room_motion_timer"
],
"data": "{\t \"duration\": duration\t}",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"x": 610,
"y": 1020,
"wires": [
[]
]
},
{
"id": "ee64a23e4a4ae724",
"type": "api-call-service",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Lights Off",
"server": "9e87348d.9c1c48",
"version": 5,
"debugenabled": false,
"domain": "light",
"service": "turn_off",
"areaId": [],
"deviceId": [],
"entityId": [
"light.dining_room_lamp",
"light.tina_desk_lights"
],
"data": "{}",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"x": 600,
"y": 1080,
"wires": [
[]
]
},
{
"id": "4441b7f8ede452fd",
"type": "api-call-service",
"z": "eff21041cc941fef",
"g": "2cf9519404abb320",
"name": "Desk Scene",
"server": "9e87348d.9c1c48",
"version": 5,
"debugenabled": false,
"domain": "input_select",
"service": "select_option",
"areaId": [],
"deviceId": [],
"entityId": [
"input_select.tina_desk_scenes"
],
"data": "{\t \"option\": \"Evening Mode\"\t}",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"x": 970,
"y": 1020,
"wires": [ "wires": [
[] []
] ]