From dbac0888f7c1cf495f385156929f99c49264f00e Mon Sep 17 00:00:00 2001 From: Tony Stork Date: Fri, 13 Oct 2023 19:30:51 -0400 Subject: [PATCH] Add personal sleep/awake controls for master bedroom --- climate/master-bedroom/processing.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/climate/master-bedroom/processing.js b/climate/master-bedroom/processing.js index 8e4bb88..c7276e4 100644 --- a/climate/master-bedroom/processing.js +++ b/climate/master-bedroom/processing.js @@ -34,6 +34,7 @@ let setHvac = [] let setFan = [] let setCool = [] let setSleep = [] +let setPeople = [] let setDisplay = [] let time = [] let echoDotService = [] @@ -48,6 +49,7 @@ node.log("Master Bedroom Climate: Variables Defined") if (type === 'sleep' && payload === 'off') { setDisplay = 'turn_on' echoDotService = 'turn_off' + setPeople = 'turn_on' if (coolingActive === 'on') { time = 'night' } else { @@ -151,6 +153,7 @@ if (time === 'day') { } // Bed Time } else if (time === 'bedtime') { + setPeople = 'turn_off' if (ac === 'on') { setTemp = bedTemp setEco = 'none' @@ -205,6 +208,17 @@ let sendSleep = { } } +let sendPeople = { + "payload": { + "domain": "input_boolean", + "service": setPeople, + "target": { + "entity_id": ["input_boolean.tony_awake","input_boolean.tina_awake"] + }, + "data": {} + } +} + let sendDisplay = { "payload": { "domain": "switch", @@ -305,6 +319,7 @@ node.log("setHvac: " + setHvac) node.log("setFan: " + setFan) node.log("setCool: " + setCool) node.log("setSleep: " + setSleep) +node.log("setPeople: " + setPeople) node.log("setDisplay: " + setDisplay) node.log("setBriefing: " + setBriefing) node.log("setBriefingDelay: " + setBriefingDelay) @@ -332,6 +347,7 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o node.send([[sendHvac, sendTemp, sendEco, sendAcFan], null, null, null]) node.log("Master Bedroom Climate: Auto/Cooling") } else if (topic === 'mrbedroom-bedtime') { + node.send([null, null, sendPeople, null, null]) node.status({ fill: "green", shape: "dot", text: "Bedtime" }) node.log("Master Bedroom Climate: Auto/Bedtime") if (ac === 'on') { @@ -394,7 +410,11 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o } } context.set("isWakeup", false) +// Sleep Switch Responses } else if (type === 'sleep') { + if (payload === 'off') { + node.send([null, null, sendPeople, null, null]) + } node.log("Master Bedroom Climate: Sleep") if (time === 'night') { node.status({ fill: "blue", shape: "dot", text: "Wakeup (Hot Day)" })