BoschSmartHome / bosch-shc-api-docs

Bosch Smart Home Controller Local REST API
Other
208 stars 44 forks source link

RoomClimateControl API bug and inconsistent behavior of assigned TRV #51

Closed tschamm closed 2 years ago

tschamm commented 3 years ago

We observed a bug in the behavior of the Room Climate Control, when an assigned TRV is in low mode. The TRV enters and reports low mode, if a shutter contact sensor of the same room is opened.

When the RoomClimateControl is being in mode 'low': true, 'operationMode': 'AUTOMATIC', the RoomClimateControl accepts a PUT call with {'@type': 'climateControlState', 'operationMode': 'AUTOMATIC'}. After that, the RoomClimateControl reports via long polling a state {'path': '/devices/roomClimateControl_hz_3/services/RoomClimateControl', ..., '@type': 'DeviceServiceData', 'state': {'schedule': ..., 'operationMode': 'AUTOMATIC', 'summerMode': False, 'low': False, '@type': 'climateControlState', ...}, 'deviceId': 'roomClimateControl_hz_3'}. Via the API, it is then not possible anymore to distinguish that an assigned TRV device is still in low mode and does not accept a new setting. If one tries to call a PUT on {"@type": "climateControlState", "setpointTemperature": 20.5}, the result we observe is {"@type":"JsonRestExceptionResponseEntity","errorCode":"WRONG_THERMOSTAT_GROUP_MODE","statusCode":400}.

We observed another inconsistency related to this bug: When the RoomClimateControl is in low mode, the TRV doesn't accept input via the API. Calling a PUT on {"@type": "climateControlState", "setpointTemperature": 20.5}, the result we observe is {"@type":"JsonRestExceptionResponseEntity","errorCode":"WRONG_THERMOSTAT_GROUP_MODE","statusCode":400}. This is somewhat inconsitent to using the buttons on the TRV, where the setpoint temperature can be set, even if the window is open (which is shown correctly in the display of the TRV device).

cap-rb commented 2 years ago

Hi @tschamm! Sorry for the very late reply. It is possible to change the 'operationMode' within low (ventilation), but cannot set 'setpointTemperature'. Additionally, "boost" is allowed in ventilation mode too. Hope this helps you a bit.