Shelly TRV: CoIoT or MQTT?

I have a central heating setup with 3 ‘zones’: two with two Shelly TRV radiator knobs, one with one.

I have HA automation set up

  • for the zones with two knobs, changes in ‘desired temperature’ on the ‘main’ knob get ‘propagated’ to the ‘secondary’ knob.
  • when one of the knobs detects a temperature lower than the desired temperature, turn on the central heater.

This mostly works pretty well! However, occasionally the desired temperature is not correctly set and I see in the logging:

ERROR (MainThread) [homeassistant.components.automation.voorkamer_sync] Error while executing automation automation.voorkamer_sync: Setting state for entity shellytrv-B4E3F9D62959 failed, state: {'target_t_enabled': 1, 'target_t': '19.0'}, error: DeviceConnectionError()

I suspect the device was just temporary online - I’ve noticed its web interface is not always too reliable, I suspect it periodically goes into some kind of sleep mode to save battery.

However, this means the knob remains closed/open when it shouldn’t be.

What would be the way forward to fix this problem? Making the connection reliable seems like a fools’ errand. I guess I could contribute to the shelly integration, and add a retry mechanism so it tries again a few times when it encounters a DeviceConnectionError - or would it be better to just switch to MQTT (with ‘retained’ bit) entirely, so the TRV can pick up the new value at its own pace?