Extend duration for night temp when not a hot day

This commit is contained in:
2023-07-25 20:13:40 -04:00
parent a4283bbcb5
commit bb1e1861f0

View File

@ -733,9 +733,7 @@
"37f1c11c59a6ce16"
],
"x": 94,
"y": 339,
"w": 1872,
"h": 622
"y": 339
},
{
"id": "39a7ac02f2727f1d",
@ -19264,7 +19262,7 @@
"z": "72f99805df043603",
"g": "e065b1ed4938b477",
"name": "Off",
"func": "var states = global.get('homeassistant.homeAssistant.states')\nvar ac = states['input_boolean.master_bedroom_aircon_installed'].state\nvar temp = states['sensor.pirateweather_temperature'].state\nvar threshold = states['input_number.master_bedroom_aircon_run_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 currentSetTemp = states['climate.master_bedroom_aircon'].attributes.temperature\nvar coolingTime = states['input_boolean.master_bedroom_cooling_on'].state\nvar sleeping = states['input_boolean.master_bedroom_sleeping'].state\nvar hotDay = states['input_boolean.hot_day'].state\nvar topic = msg.topic\n\nif (topic === 'toggle') {\n if (hotDay === 'on' || sleeping === 'on') {\n var setTemp = bedTemp\n var ecoMode = 'none'\n } else {\n var setTemp = nightTemp\n var ecoMode = 'eco'\n }\n} else if (topic === 'timer') {\n if (currentSetTemp == bedTemp) {\n var setTemp = nightTemp\n if (hotDay === 'on') {\n var ecoMode = 'none'\n } else {\n var ecoMode = 'eco'\n }\n } else {\n var setTemp = dayTemp\n var ecoMode = 'eco'\n }\n}\n\nif (setTemp == bedTemp) {\n var duration = 3600\n} else {\n var duration = 1800\n}\n\nif (setTemp == dayTemp) {\n var end = true\n if (hotDay === 'off') {\n var hvac = 'off'\n } else {\n var hvac = 'cool'\n }\n} else if (setTemp != bedTemp && coolingTime === 'on') {\n var end = true\n var hvac = 'cool'\n} else {\n var end = false\n var hvac = 'cool'\n}\n\nvar setMsg = {\n \"set\": setTemp,\n \"eco\": ecoMode,\n \"hvac\": hvac,\n \"end\": end\n}\n\nvar timerStart = {\n \"duration\": duration\n}\n\nif (ac === 'on' && temp >= threshold) {\n if (sleeping === 'on' || coolingTime === 'on' || end === true) {\n node.status({ fill: \"green\", shape: \"dot\", text: \"Finished\" });\n return [setMsg, null]\n } else {\n node.status({ fill: \"blue\", shape: \"dot\", text: \"Next Cycle\" });\n return [setMsg, timerStart]\n }\n} else if (ac === 'off') {\n node.status({ fill: \"red\", shape: \"ring\", text: \"A/C Not Installed\" });\n return null\n} else {\n node.status({ fill: \"red\", shape: \"ring\", text: \"Too Cold\" });\n return null\n}\n",
"func": "var states = global.get('homeassistant.homeAssistant.states')\nvar ac = states['input_boolean.master_bedroom_aircon_installed'].state\nvar temp = states['sensor.pirateweather_temperature'].state\nvar threshold = states['input_number.master_bedroom_aircon_run_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 currentSetTemp = states['climate.master_bedroom_aircon'].attributes.temperature\nvar coolingTime = states['input_boolean.master_bedroom_cooling_on'].state\nvar sleeping = states['input_boolean.master_bedroom_sleeping'].state\nvar hotDay = states['input_boolean.hot_day'].state\nvar topic = msg.topic\n\nif (topic === 'toggle') {\n if (hotDay === 'on' || sleeping === 'on') {\n var setTemp = bedTemp\n var ecoMode = 'none'\n } else {\n var setTemp = nightTemp\n var ecoMode = 'eco'\n }\n} else if (topic === 'timer') {\n if (currentSetTemp == bedTemp) {\n var setTemp = nightTemp\n if (hotDay === 'on') {\n var ecoMode = 'none'\n } else {\n var ecoMode = 'eco'\n }\n } else {\n var setTemp = dayTemp\n var ecoMode = 'eco'\n }\n}\n\nif (setTemp == bedTemp) {\n var duration = 3600\n} else if (setTemp == nightTemp && hotDay === 'off') {\n var duration = 3600\n} else {\n var duration = 1800\n}\n\nif (setTemp == dayTemp) {\n var end = true\n if (hotDay === 'off') {\n var hvac = 'off'\n } else {\n var hvac = 'cool'\n }\n} else if (setTemp != bedTemp && coolingTime === 'on') {\n var end = true\n var hvac = 'cool'\n} else {\n var end = false\n var hvac = 'cool'\n}\n\nvar setMsg = {\n \"set\": setTemp,\n \"eco\": ecoMode,\n \"hvac\": hvac,\n \"end\": end\n}\n\nvar timerStart = {\n \"duration\": duration\n}\n\nif (ac === 'on' && temp >= threshold) {\n if (sleeping === 'on' || coolingTime === 'on' || end === true) {\n node.status({ fill: \"green\", shape: \"dot\", text: \"Finished\" });\n return [setMsg, null]\n } else {\n node.status({ fill: \"blue\", shape: \"dot\", text: \"Next Cycle\" });\n return [setMsg, timerStart]\n }\n} else if (ac === 'off') {\n node.status({ fill: \"red\", shape: \"ring\", text: \"A/C Not Installed\" });\n return null\n} else {\n node.status({ fill: \"red\", shape: \"ring\", text: \"Too Cold\" });\n return null\n}\n",
"outputs": 2,
"noerr": 0,
"initialize": "",