Sonoff TRVZB + Better Thermostat (Beta): Valve reports 100% open, but radiator is cold

Hi everyone,

I’m seeking some help with a specific Sonoff TRVZB (firmware 1.4.4) integrated via Zigbee2MQTT and managed by Better Thermostat (1.8.0 Beta 14).

The Setup

  • Calibration Type: Direct Valve Based
  • Calibration Mode: MPC Predictive
  • Hardware: 4x Sonoff TRVZB on Heimeier valves (no adapters).

The Problem

The kitchen radiator (Thermostat - Küche) stays completely cold, even though Zigbee2MQTT report that the valve is fully open.
All the other ones are heating up as expected.

Here are the logs from zigbee2mqtt:

[16/04/2026, 14:53:09] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Thermostat - Essbereich', payload '{"battery":16,"child_lock":"UNLOCK","closing_steps":441,"external_temperature_input":22.1,"frost_protection_temperature":7,"idle_steps":20,"last_seen":"2026-04-16T14:53:09+02:00","linkquality":178,"local_temperature":36.7,"local_temperature_calibration":12.7,"occupied_heating_setpoint":22.5,"open_window":"OFF","running_state":"idle","smart_temperature_control":false,"system_mode":"heat","temperature_accuracy":-0.4,"temperature_sensor_select":"internal","temporary_mode_duration":0,"temporary_mode_select":"boost","timer_mode_target_temp":0,"update":{"installed_version":5124,"latest_release_notes":null,"latest_source":"https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Sonoff/trvzb_v1.4.4.ota","latest_version":5124,"state":"idle"},"valve_closing_degree":71,"valve_closing_limit_voltage":3013,"valve_motor_running_voltage":1189,"valve_opening_degree":29,"valve_opening_limit_voltage":1847,"weekly_schedule_friday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_monday":"00:00/16 07:00/19 10:00/16 17:00/19 23:00/16 906:00/16","weekly_schedule_saturday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_sunday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_thursday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_tuesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_wednesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16"}'

[16/04/2026, 14:53:10] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Thermostat - Eingang', payload '{"battery":100,"child_lock":"UNLOCK","closing_steps":272,"external_temperature_input":22.1,"frost_protection_temperature":7,"idle_steps":151,"last_seen":"2026-04-16T14:53:10+02:00","linkquality":198,"local_temperature":24.9,"local_temperature_calibration":0,"occupied_heating_setpoint":22.5,"open_window":"OFF","running_state":"idle","smart_temperature_control":false,"system_mode":"heat","temperature_accuracy":-1,"temperature_sensor_select":"internal","temporary_mode_duration":0,"temporary_mode_select":"boost","timer_mode_target_temp":0,"update":{"installed_version":5124,"latest_release_notes":null,"latest_source":"https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Sonoff/trvzb_v1.4.4.ota","latest_version":5124,"state":"idle"},"valve_closing_degree":0,"valve_closing_limit_voltage":3099,"valve_motor_running_voltage":1023,"valve_opening_degree":100,"valve_opening_limit_voltage":1547,"weekly_schedule_friday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_monday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_saturday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_sunday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_thursday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_tuesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_wednesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16"}'

[16/04/2026, 14:53:11] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Thermostat - Küche', payload '{"battery":100,"child_lock":"UNLOCK","closing_steps":273,"external_temperature_input":22.1,"frost_protection_temperature":7,"idle_steps":185,"last_seen":"2026-04-16T14:53:11+02:00","linkquality":200,"local_temperature":22.4,"local_temperature_calibration":-0.1,"occupied_heating_setpoint":22.5,"open_window":"OFF","running_state":"heat","smart_temperature_control":true,"system_mode":"heat","temperature_accuracy":-0.4,"temperature_sensor_select":"internal","temporary_mode_duration":0,"temporary_mode_select":"boost","timer_mode_target_temp":0,"update":{"installed_version":5124,"latest_release_notes":null,"latest_source":"https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Sonoff/trvzb_v1.4.4.ota","latest_version":5124,"state":"idle"},"valve_closing_degree":0,"valve_closing_limit_voltage":2549,"valve_motor_running_voltage":1208,"valve_opening_degree":100,"valve_opening_limit_voltage":1708,"weekly_schedule_friday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_monday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_saturday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_sunday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_thursday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_tuesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_wednesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16"}'

[16/04/2026, 14:53:11] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Thermostat - Wohnzimmer', payload '{"battery":100,"child_lock":"UNLOCK","closing_steps":283,"external_temperature_input":22.1,"frost_protection_temperature":7,"idle_steps":164,"last_seen":"2026-04-16T14:53:11+02:00","linkquality":194,"local_temperature":35.1,"local_temperature_calibration":11.7,"occupied_heating_setpoint":22.5,"open_window":"OFF","running_state":"idle","smart_temperature_control":false,"system_mode":"heat","temperature_accuracy":-0.4,"temperature_sensor_select":"internal","temporary_mode_duration":0,"temporary_mode_select":"boost","timer_mode_target_temp":0,"update":{"installed_version":5124,"latest_release_notes":null,"latest_source":"https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Sonoff/trvzb_v1.4.4.ota","latest_version":5124,"state":"idle"},"valve_closing_degree":59,"valve_closing_limit_voltage":2505,"valve_motor_running_voltage":1197,"valve_opening_degree":41,"valve_opening_limit_voltage":1622,"weekly_schedule_friday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_monday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_saturday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_sunday":"00:00/16 07:00/19 10:00/19 10:00/19 10:00/19 23:00/16","weekly_schedule_thursday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_tuesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16","weekly_schedule_wednesday":"00:00/16 07:00/19 10:00/16 10:00/16 17:00/19 23:00/16"}'

Do you have an idea why this is happening and how to solve it?