Bosch Room Thermostat II 230V - deadband / hysteresis adjustment?

I got for a test Bosch Room Thermostat II 230V aka RBSH-RTH0-ZB-EU - the panel that also controls the boiler, not the radiator valve. Binded successfully to ZHA, I’m able to control it from HA and vice versa. The issue is with deadband / hysteresis.

From multiple reviews I read that it has a very small hysteresis envelope and that checks out. Bosch doesn’t mention any adjustment, nor one is available in ZHA. The only thing exposed is “Heater type” that can be selected between Underfloor heating, Boiler, Radiator or Central heating and this seems to mainly affect if relay is toggled on/off (disabled in case of supposed valve control).

This device hysteresis seems to be ~0.1 C out of the box which for condensing boiler is just a no go. My dumb thermostat has 0.4 C minimal hysteresis which leads to ~20 heating cycles daily - Bosch did that 20 cycles under 20 minutes.

Looking through the internet I found a single Amazon review that claims:

The downside of this thermostat, is that you get a heating “on” or “off” binary from the thermostat. The only problem is that the hysteresis of this device is too small. Under test I had it operating a light, and the on/off ratio is too big, every 3 to 4 minutes the boiler would have been called on and then off. This is not great for the longevity of my boiler.

but then the same reviewer adds:

In Home assistant I have managed to access the ZHA Cluster that alters the deadband, I have now been able to alter the deadband, and it works better.

If that’s not clear, this is a quote from Amazon comments, source: LINK

The obvious issue is that OP left no clue on which cluster was supposed to control the deadband - and since it is Amazon review there’s no way to contact them.
Maybe, by a chance, you are reading this and can elaborate? Or anyone else have any idea on this topic?

Please note that “just make HA automation and use thermostat as settings panel” is not an answer for me. I was looking for this thermostat specifically so in case HA/server dies - main heating control loop won’t break.

1 Like

I was half way though replying, when you found a similar solution.

Can I suggest you mark this post as SOLVED so others can find the fix?

I don’t understand - I never found the solution. I quoted someone from Amazon comments that claims their found the solution but never posted the actual cluster that was supposed to alter the deadband.

I edited my first post to make it more clear and incl. that review link.

Ah, that’s fixed my confusion - sorry! :face_with_open_eyes_and_hand_over_mouth:

As the device uses Zigbee, it advertises what it can do, and any configuration parameters in a standard format. Both ZHA and Z2M interpret this data, and allow changes to be made. Where the device profile broken, it can be modified with a “quirks file” which is typically applied automatically, but can be manually edited (a “custom quirk”).

The question is, can you see any parameters to change in ZHA?
Here’s an example:

The settings will very likely be confusing, and are specific to this device so I can’t tell you what to look for, just where to look!

As the Amazon post doesn’t mention a “quirk”, my hope is there is a parameter in there as standard, and you don’t need to start writing custom code to get to the setting.

Here’s some ZHA documentation links in case they help (the Climate entity doesn’t include deadband / hysteresis):

ZHA uses the zigpy open-source Python library:

There is some documentation on “quirks” here:

Yes, there are a few undocumented attributes in Bosch cluster - even zha device handler list them in code:

I already explored and confirmed that (sorry, forgot to mention it). Just hoped someone else already found that.

4023 and 4023 look obviously like time of a day setting (which is not surprising as this device can run schedules).
Other 4 writable are unknown, only 4025 stood out to me since it changes with heater type and has a pretty wide valid range.