Emma climate flow rate-limiting

home_automation/Home-Assistant-Configs#237
This commit is contained in:
2025-04-23 22:05:02 -04:00
parent ba56bd08f4
commit 408b85bf6a
2 changed files with 29 additions and 31 deletions

View File

@@ -80,15 +80,15 @@ if (time === 'day') {
if (ac === 'on') {
if (danger === 'Extreme') {
setTemp = nightTemp
setEco = "eco"
setEco = "turn_on"
setHvac = "cool"
} else if (hotDay === 'on' || heatWarning === 'on') {
setTemp = dayTemp
setEco = "eco"
setEco = "turn_on"
setHvac = "cool"
} else {
setTemp = nightTemp
setEco = "eco"
setEco = "turn_on"
setHvac = "off"
}
}
@@ -107,9 +107,9 @@ if (time === 'day') {
setHvac = 'off'
}
if (hotDay === 'on') {
setEco = 'none'
setEco = 'turn_off'
} else {
setEco = 'eco'
setEco = 'turn_on'
}
}
}
@@ -129,9 +129,9 @@ if (time === 'day') {
}
// Decide eco mode
if (sleeping === 'on') {
setEco = 'none'
setEco = 'turn_off'
} else {
setEco = 'eco'
setEco = 'turn_on'
}
// Decide HVAC mode
if (schedMode === 'AC') {
@@ -146,7 +146,7 @@ if (time === 'day') {
setPeople = 'turn_off'
if (ac === 'on') {
setTemp = bedTemp
setEco = 'none'
setEco = 'turn_off'
if (schedMode === 'AC') {
setHvac = 'cool'
} else if (schedMode === 'Fan') {
@@ -247,13 +247,11 @@ let sendTemp = {
let sendEco = {
"payload": {
"action": "climate.set_preset_mode",
"action": `switch.${setEco}`,
"target": {
"entity_id": emmaBedroomAircon
"entity_id": ["switch.emma_bedroom_aircon_eco_mode"]
},
"data": {
"preset_mode": setEco
}
"data": {}
}
}
@@ -321,14 +319,14 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o
} else {
if (topic === 'emmabedroom-cooling' && ac === 'on') {
node.status({ fill: "green", shape: "dot", text: "Cooling Schedule" })
node.send([[sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log("Emma Bedroom Climate: Auto/Cooling")
} else if (topic === 'emmabedroom-bedtime') {
node.send([null, sendPeople, null])
node.status({ fill: "green", shape: "dot", text: "Bedtime" })
node.log("Emma Bedroom Climate: Auto/Bedtime")
if (validSchedModesAC.includes(schedMode) && ac === 'on') {
node.send([[sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log("Emma Bedroom Climate: Auto/Bedtime/AC")
} else if (schedMode === 'White Noise') {
node.send([null, sendWhiteNoise, null])
@@ -342,7 +340,7 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o
node.send([null, sendWhiteNoise, null])
node.log("Emma Bedroom Climate: Auto/Wakeup/Sleep Off")
if (ac === 'on') {
node.send([[sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log("Emma Bedroom Climate: Auto/Wakeup/AC On")
}
} else if (sleeping === 'on') {
@@ -359,7 +357,7 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o
node.status({ fill: "blue", shape: "dot", text: "Manual Night" })
node.log("Emma Bedroom Climate: Manual/Night")
if (ac === 'on') {
node.send([[sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log("Emma Bedroom Climate: Manual/Night/AC")
}
} else if (time === 'day') {
@@ -367,14 +365,14 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o
node.send([null, sendWhiteNoise, null])
node.log("Emma Bedroom Climate: Manual/Day")
if (ac === 'on') {
node.send([[sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log("Emma Bedroom Climate: Manual/Day/AC")
}
} else if (time === 'bedtime') {
node.status({ fill: "blue", shape: "dot", text: "Manual Bedtime" })
node.log("Emma Bedroom Climate: Manual/Bedtime")
if (validSchedModesAC.includes(schedMode) && ac === 'on') {
node.send([[sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log("Emma Bedroom Climate: Manual/Bedtime/AC")
} else if (schedMode === 'White Noise') {
node.send([null, sendWhiteNoise, null])
@@ -393,7 +391,7 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o
node.send([null, [sendPeople, sendWhiteNoise], null])
node.log("Emma Bedroom Climate: Sleep/Bedtime")
if (ac === 'on') {
node.send([[sendDisplay, sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendDisplay, sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log("Emma Bedroom Climate: Sleep/Bedtime/AC")
}
} else {
@@ -401,7 +399,7 @@ if (type === 'auto' && allowed === 'on' && meltdown === 'off' && vacation === 'o
node.send([null, sendWhiteNoise, null])
node.log("Emma Bedroom Climate: Sleep/Day")
if (ac === 'on') {
node.send([[sendDisplay, sendHvac, sendTemp, sendEco, sendAcFan], null, null])
node.send([[sendDisplay, sendHvac, sendTemp, sendAcFan, sendEco], null, null])
node.log(`Emma Bedroom Climate: Sleep/${convertToTitleCase(time)}/AC`)
}
}