Hello Community,
I’m relatively new to Home Assistant (using it for a few months), and I’ve been stuck with a persistent issue around OTA firmware updates for my Bosch thermostats (model RBSH-TRV0-ZB-EU) using Zigbee2MQTT.
Before posting, I looked for similar topics, but nothing matched my exact combination of devices and symptoms.
Setup
- Home Assistant: Docker (Supervisor)
- Zigbee2MQTT Version: 2.2.1-1
- Zigbee Coordinator: ZBT-1 (CC2652-based, via USB extension cable)
- Zigbee Channel: Default (not set → likely channel 11)
- Hue Bridge: Zigbee Channel 15
- Wi-Fi 2.4GHz: Channel 11 (manually changed from 7)
- Wi-Fi 5GHz: Channels 36, 40, 44, 48
- Router: Speedport Smart 2
- Devices: 17 Zigbee devices (all via MQTT), including multiple Bosch TRVs
Problem Description
- OTA updates are extremely slow or fail completely.
- The update starts (e.g. for
bad_heizung
), progresses to ~30–70%, then stops. - Zigbee2MQTT logs show UART-related errors:
Error: {“sequence”:1} after 4000ms
Can’t send DATA frame …
Home Assistant logs show errors from better_thermostat
, even though I’ve removed its configuration:
ValueError: could not convert string to float: ‘unavailable’
- The MQTT connection resets, and entities like
climate.bad_heizung_thermostat
disappear temporarily.
What I’ve Tried
- OTA updates one device at a time
- Thermostats placed directly next to the Zigbee coordinator
- Full restarts: Zigbee2MQTT, MQTT broker, Home Assistant
- Removed
better_thermostat
fromconfiguration.yaml
(no entries left) - WLAN 2.4GHz channel changed from 7 → 11 (to reduce interference with Zigbee)
- Ports 80 & 443 open (OTA file download confirmed working)
Observations
- Moving Wi-Fi to channel 11 significantly improved stability (less Zigbee overlap)
- Despite no active config,
better_thermostat
still causes crashes during OTA - Hue Bridge (on Zigbee channel 15) is unaffected
- One OTA update completed fully, then the same issue reappeared on the next attempt
Questions
- Are Bosch TRVs (RBSH-TRV0-ZB-EU) known to have OTA issues with Zigbee2MQTT?
- How can I fully remove or disable
better_thermostat
if no config entries exist? - Is there a way to prevent MQTT from breaking during OTA (“unavailable” payloads)?
- Are there OTA tuning options (chunk size, retries) that could help?
- Would it be safer to switch to Zigbee channel 20 (to avoid Wi-Fi), even though the Hue Bridge uses channel 15?
Thanks a lot for any insights or suggestions – much appreciated!
MixDax