Let Node-RED handle sleep switch climate stuff
This commit is contained in:
69
flows.json
69
flows.json
@ -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": "",
|
||||
|
Reference in New Issue
Block a user