Hi All,
I’m having real trouble with an automation changing the temperature of my heating when it should not.
I have a Hive theremostat - but that doesnt really matter, its a thermostat with a temperature that i can set via HA.
I also have quite a few SONOFF TRVZB’s thermostats that work really well via Zigbee2MQTT.
I created an automation to monitor if one of my the thermostats goes from “Heating” to “Idle”, that is, its reached its desired temperature and if so, check the state of all the other thermostats, if they are also at “Idle” then set the Hive heating to 8 degrees. (This is because i dont have smart thermostats on ALL the radiators, just the important ones and i dont want the rest heating up when all is good where i want heat.)
So if entity - climate.my_office_thermostat - Attribute - Current Action is State - Idle
The problem is, on occasion, the automation seems to think that all thermostat states ARE idle when they are not.
If i look at the trace after running the automation manually, i can see it reporting that climate.my_office_thermostat is Idle, when on the dashboard and in Developer tools, States, it is “heating”
I can even rerun the script and it will show the same result e.g.
Developer tools for climate.my_office_thermostat :
hvac_modes:
- "off"
- auto
- heat
min_temp: 4
max_temp: 35
target_temp_step: 0.5
current_temperature: 19.9
temperature: 21
hvac_action: heating
friendly_name: My Office Thermostat
supported_features: 385
Trace of Automation
condition: and
conditions:
- condition: state
entity_id: climate.hallway_thermostat
attribute: hvac_action
state: idle
- condition: state
entity_id: climate.kitchen_radiator_thermostat
attribute: hvac_action
state: idle
- condition: state
entity_id: climate.my_office_thermostat
attribute: hvac_action
state: idle
- condition: state
entity_id: climate.livingroom_thermo
attribute: hvac_action
state: idle
- condition: state
entity_id: climate.wife_office_thermostat
attribute: hvac_action
state: idle
So what i dont understand is, why does it think its Idle when Developer tools states its Heating?
My Automation logic is as follows:
When 1 of 8 thermostats changes from Heating to Idle AND if ALL other thermostats are idle set heating to 8 degrees.
The snippet above is from the trace of the And IF section showing its looking at hvac_action and getting a different state from the developer console.