Hi!
As the next step of home automation I want to add “smart thermostat” which should be controlled by HA.
I got Sonoff TRVZB which is connected via zigbee2mqtt to home assistant 2024.2.1. Also I am using an external zigbee temperatur sensor.
My goals for the first step are quite simple:
- If I set the target temperature in home assistant, thermostat needs to be on as long as this temperature is not reached
- If I change the temperature on the thermostat itself, it should be transfered to HA (in other words: I want to controll the temperature via home assistant and hardware at the same time)
Maybe I was/am a little bit unsophisticated, but what I did was:
- Install thermostat
- Pair it with zigbee2mqtt
- Configure “Better Thermostat” component
At first it looked like everything is OK, in reallity there are major problems I can’t wrap my head around:
- Status is not in sync: better thermostat is showing, that the thermostat is heating, but “running_state” is idle and the heater is off (still warm, yes, but not heating). Or the other way around: running_state is heat, but according to better thermpostat the heater is off.
- Temperature is not in sync: when I change the temperature of the thermostat itself, sometimes it get updated in better thermostat component, sometimes not. The normal entity for the thermostat seems to have been updated.
- Sometimes the target temperature magically jumps to 35 without any interactions. I enabled the debug logs, but I can’t see why it’s happening:
... no entries for several minutes ...
2024-02-24 17:42:51.876 DEBUG (MainThread) [custom_components.better_thermostat.climate] better_thermostat Wohnzimmer Thermostatsteuerung: HA set target temperature to 20.5 & None
2024-02-24 17:42:51.877 DEBUG (MainThread) [custom_components.better_thermostat.utils.controlling] better_thermostat Wohnzimmer Thermostatsteuerung: TO TRV set_temperature: climate.thermostat_wohnzimmer from: 29.0 to: 28.5
2024-02-24 17:42:51.884 DEBUG (MainThread) [custom_components.better_thermostat.utils.controlling] better_thermostat Wohnzimmer Thermostatsteuerung: climate.thermostat_wohnzimmer / check_target_temp / _last: 28.5 - _current: 29.0
2024-02-24 17:42:53.233 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: TRV climate.thermostat_wohnzimmer update received
2024-02-24 17:42:53.233 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: trigger_trv_change / _old_heating_setpoint: 29.0 - _new_heating_setpoint: 28.5 - _last_temperature: 31.0
2024-02-24 17:42:53.233 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: TRV climate.thermostat_wohnzimmer decoded TRV target temp changed from 23.0 to 28.5
2024-02-24 17:42:53.233 DEBUG (MainThread) [custom_components.better_thermostat.utils.controlling] better_thermostat Wohnzimmer Thermostatsteuerung: TO TRV set_temperature: climate.thermostat_wohnzimmer from: 31.0 to: 35.0
2024-02-24 17:42:53.237 DEBUG (MainThread) [custom_components.better_thermostat.utils.controlling] better_thermostat Wohnzimmer Thermostatsteuerung: climate.thermostat_wohnzimmer / check_target_temp / _last: 35.0 - _current: 28.5
2024-02-24 17:42:53.526 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: TRV climate.thermostat_wohnzimmer update received
2024-02-24 17:42:55.865 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: TRV climate.thermostat_wohnzimmer update received
2024-02-24 17:42:55.865 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: TRV climate.thermostat_wohnzimmer sends new internal temperature from 28.5 to 28.1
2024-02-24 17:42:55.865 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: trigger_trv_change / _old_heating_setpoint: 35.0 - _new_heating_setpoint: 35.0 - _last_temperature: 28.5
2024-02-24 17:42:55.866 DEBUG (MainThread) [custom_components.better_thermostat.utils.controlling] better_thermostat Wohnzimmer Thermostatsteuerung: TO TRV set_temperature: climate.thermostat_wohnzimmer from: 28.5 to: 28.5
2024-02-24 17:42:56.238 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: TRV climate.thermostat_wohnzimmer update received
2024-02-24 17:42:56.238 DEBUG (MainThread) [custom_components.better_thermostat.events.trv] better_thermostat Wohnzimmer Thermostatsteuerung: TRV climate.thermostat_wohnzimmer sends new internal temperature from 28.5 to 28.1
... no entries for several minutes ...
For Better Thermostat advanced config I have tried following combinations:
- Calibration type: Offset Based. Calibration mode: AI Time Based
- Calibration type: Target Temperature Based. Calibration mode: Normal
None of them solved any issues.
I can’t imagine, that I am the only one person who experience such problems, and I don’t do tricky stuff. But however, I was not able to find any infos on this topic, so I decided to create a new post for this.
What am I doing wrong? Smart thermostat is quite useless in this state as it is pure gamble if and when it works.
In case you need any further information (config, screenshots, whatever), please let me know.