Add personal sleep/awake controls for master bedroom

This commit is contained in:
2023-10-13 19:30:51 -04:00
parent d332225b41
commit dbac0888f7

View File

@ -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)" })