Let Node-RED handle sleep switch climate stuff

This commit is contained in:
2023-05-08 17:16:30 -04:00
parent 41f60d83b3
commit daa39a8159

View File

@ -725,7 +725,9 @@
"37f1c11c59a6ce16"
],
"x": 94,
"y": 339
"y": 339,
"w": 1872,
"h": 622
},
{
"id": "39a7ac02f2727f1d",
@ -782,7 +784,6 @@
"8e399b2a287a0905",
"314752dbc6fd170d",
"d7261338e6b907f1",
"6fb7131d5534350c",
"fd0a309681a536de",
"40dc1e930b887eb7",
"bf1b0d6542ef6b38",
@ -1071,7 +1072,9 @@
"1e1891c23a6e7e64"
],
"x": 34,
"y": 239
"y": 239,
"w": 1132,
"h": 382
},
{
"id": "1ca205a84922c8c2",
@ -1156,7 +1159,9 @@
"f5fb96bf1a33b3cd"
],
"x": 54,
"y": 19
"y": 19,
"w": 1492,
"h": 282
},
{
"id": "0c81dfaed25d225c",
@ -1210,7 +1215,9 @@
"b281061a4b08d2eb"
],
"x": 14,
"y": 539
"y": 539,
"w": 612,
"h": 202
},
{
"id": "550e5b2d99316b12",
@ -1233,7 +1240,9 @@
"61cb79c998ee0b59"
],
"x": 34,
"y": 639
"y": 639,
"w": 1072,
"h": 202
},
{
"id": "f519aff597ece351",
@ -16411,46 +16420,6 @@
]
]
},
{
"id": "6fb7131d5534350c",
"type": "api-current-state",
"z": "72f99805df043603",
"g": "e065b1ed4938b477",
"name": "Scheduled Mode",
"server": "9e87348d.9c1c48",
"version": 3,
"outputs": 2,
"halt_if": "Fan",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "input_select.scheduled_climate_mode_master_bedroom_fan",
"state_type": "str",
"blockInputOverrides": false,
"outputProperties": [
{
"property": "sched_fan",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
}
],
"for": "0",
"forType": "num",
"forUnits": "minutes",
"override_topic": false,
"state_location": "payload",
"override_payload": "msg",
"entity_location": "data",
"override_data": "msg",
"x": 850,
"y": 320,
"wires": [
[
"bf1b0d6542ef6b38"
],
[]
]
},
{
"id": "fd0a309681a536de",
"type": "api-call-service",
@ -16563,7 +16532,7 @@
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"x": 1230,
"x": 830,
"y": 320,
"wires": [
[
@ -18243,7 +18212,7 @@
"z": "72f99805df043603",
"g": "e065b1ed4938b477",
"name": "Processing",
"func": "var states = global.get('homeassistant.homeAssistant.states')\nvar ac = global.get('mb_aircon_installed')\nvar topic = msg.topic\nvar vacation = states['input_boolean.vacation_mode'].state\nvar highTemp = states['sensor.todays_high_temp'].state\nvar dayThreshold = states['input_number.master_bedroom_daytime_threshold'].state\nvar dayTemp = states['input_number.master_bedroom_daytime_temp'].state\nvar nightTemp = states['input_number.master_bedroom_night_temp'].state\nvar bedTemp = states['input_number.master_bedroom_bedtime_temp'].state\nvar showerMode = states['input_boolean.shower_mode'].state\nvar nightVolume = states['input_number.master_bedroom_echo_dot_night_volume'].state\n\nmsg.acInstalled = ac\nmsg.daytemp = dayTemp\nmsg.nighttemp = nightTemp\nmsg.bedtemp = bedTemp\nmsg.daythreshold = dayThreshold\nmsg.showermode = showerMode\nmsg.nightvolume = nightVolume\n\nif (vacation === 'off') {\n if (topic === 'mrbedroom-cooling') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Cooling Schedule\"});\n return[msg,null,null]\n } else if (topic === 'manual-night') {\n node.status({fill:\"blue\",shape:\"dot\",text:\"Manual Night\"});\n return[msg,msg,null]\n } else if (topic === 'mrbedroom-fan') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Fan Schedule\"});\n return[null,msg,null]\n } else if (topic === 'mrbedroom-wakeup') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Wakeup Schedule\"});\n return[null,null,msg]\n } else if (topic === 'manual-day'){\n node.status({fill:\"blue\",shape:\"dot\",text:\"Manual Day\"});\n return[null,null,msg]\n }\n} else {\n return[null,null,null]\n}",
"func": "var states = global.get('homeassistant.homeAssistant.states')\nvar ac = global.get('mb_aircon_installed')\nvar topic = msg.topic\nvar vacation = states['input_boolean.vacation_mode'].state\nvar highTemp = states['sensor.todays_high_temp'].state\nvar dayThreshold = states['input_number.master_bedroom_daytime_threshold'].state\nvar dayTemp = states['input_number.master_bedroom_daytime_temp'].state\nvar nightTemp = states['input_number.master_bedroom_night_temp'].state\nvar bedTemp = states['input_number.master_bedroom_bedtime_temp'].state\nvar showerMode = states['input_boolean.shower_mode'].state\nvar nightVolume = states['input_number.master_bedroom_echo_dot_night_volume'].state\nvar schedModeFan = states['input_select.scheduled_climate_mode_master_bedroom_fan'].state\n\nmsg.acInstalled = ac\nmsg.daytemp = dayTemp\nmsg.nighttemp = nightTemp\nmsg.bedtemp = bedTemp\nmsg.daythreshold = dayThreshold\nmsg.showermode = showerMode\nmsg.nightvolume = nightVolume\n\nif (vacation === 'off') {\n if (topic === 'mrbedroom-cooling') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Cooling Schedule\"});\n return[msg,null,null]\n } else if (topic === 'manual-night') {\n if (schedModeFan === 'Fan') {\n node.status({fill:\"blue\",shape:\"dot\",text:\"Manual Night (Fan)\"});\n return[msg,msg,null]\n } else {\n node.status({fill:\"blue\",shape:\"dot\",text:\"Manual Night (No Fan)\"});\n return[msg,null,null]\n }\n } else if (topic === 'mrbedroom-fan' && schedModeFan == 'Fan') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Fan Schedule\"});\n return[null,msg,null]\n } else if (topic === 'mrbedroom-wakeup') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Wakeup Schedule\"});\n return[null,null,msg]\n } else if (topic === 'manual-day'){\n node.status({fill:\"blue\",shape:\"dot\",text:\"Manual Day\"});\n return[null,null,msg]\n }\n} else {\n return[null,null,null]\n}",
"outputs": 3,
"noerr": 0,
"initialize": "",
@ -18256,7 +18225,7 @@
"10d9b30654ef759c"
],
[
"6fb7131d5534350c"
"bf1b0d6542ef6b38"
],
[
"0a783dc1cb68b4bf"
@ -18275,7 +18244,7 @@
"z": "72f99805df043603",
"g": "e065b1ed4938b477",
"name": "Cooling Mode",
"func": "var states = global.get('homeassistant.homeAssistant.states')\nvar ac = global.get('mb_aircon_installed')\nvar showerMode = msg.showermode\nvar schedMode = states['input_select.scheduled_climate_mode_master_bedroom_aircon'].state\nvar hotDay = states['input_boolean.hot_day'].state\n\nmsg.schedmode = schedMode\n\nif (ac === 'on' && showerMode === 'off') {\n if (schedMode === 'AC') {\n if (hotDay === 'on') {\n msg.preset = 'none'\n } else {\n msg.preset = 'eco'\n }\n node.status({fill:\"green\",shape:\"dot\",text:\"AC\"});\n return[msg,null,null]\n } else if (schedMode === 'Fan') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Fan\"});\n return[null,msg,null]\n } else if (schedMode === 'N/A') {\n node.status({fill:\"blue\",shape:\"dot\",text:\"N/A\"});\n return[null,null,msg]\n }\n} else {\n if (ac === 'off') {\n node.status({fill:\"red\",shape:\"ring\",text:\"A/C Not Installed\"});\n } else if (showerMode === 'on') {\n node.status({fill:\"red\",shape:\"ring\",text:\"Shower Mode On\"});\n }\n return null\n}",
"func": "var states = global.get('homeassistant.homeAssistant.states')\nvar ac = global.get('mb_aircon_installed')\nvar showerMode = msg.showermode\nvar schedMode = states['input_select.scheduled_climate_mode_master_bedroom_aircon'].state\nvar hotDay = states['input_boolean.hot_day'].state\nvar sleeping = states['input_boolean.master_bedroom_sleeping'].state\n\nmsg.schedmode = schedMode\n\nif (ac === 'on' && showerMode === 'off') {\n if (schedMode === 'AC') {\n if (hotDay === 'on' || sleeping === 'on') {\n msg.preset = 'none'\n } else {\n msg.preset = 'eco'\n }\n node.status({fill:\"green\",shape:\"dot\",text:\"AC\"});\n return[msg,null,null]\n } else if (schedMode === 'Fan') {\n node.status({fill:\"green\",shape:\"dot\",text:\"Fan\"});\n return[null,msg,null]\n } else if (schedMode === 'N/A') {\n node.status({fill:\"blue\",shape:\"dot\",text:\"N/A\"});\n return[null,null,msg]\n }\n} else {\n if (ac === 'off') {\n node.status({fill:\"red\",shape:\"ring\",text:\"A/C Not Installed\"});\n } else if (showerMode === 'on') {\n node.status({fill:\"red\",shape:\"ring\",text:\"Shower Mode On\"});\n }\n return null\n}",
"outputs": 3,
"noerr": 0,
"initialize": "",