I am working on implementing Google smart home support for our thermostat using Thermostat device and TemperatureSetting Trait. This thermostat should support 'off', 'heat' and 'auto' modes.
The SYNC looks like this:
{
"id": "testplc@BEDROOM.HEATTHERMOSTAT",
"type": "action.devices.types.THERMOSTAT",
"traits": [
"action.devices.traits.TemperatureSetting"
],
"name": {
"defaultNames": [
"BEDROOM.HEATTHERMOSTAT"
],
"name": "Bedroom"
},
"willReportState": true,
"notificationSupportedByAgent": false,
"deviceInfo": {
"manufacturer": "Teco a.s.",
"model": "Tecomat"
},
"attributes": {
"availableThermostatModes": [
"off",
"auto",
"heat"
],
"thermostatTemperatureRange": {
"minThresholdCelsius": 10.0,
"maxThresholdCelsius": 40.0
},
"thermostatTemperatureUnit": "C"
},
"customData": {
"plc_name": "testplc",
"tecomat_id": "BEDROOM.HEATTHERMOSTAT",
"tecomat_type": "THERMOSTAT"
}
}
The default state of the thermostat is set to 'auto' mode. In Google Home App it appears as some 'Other' mode which is active. On Smart Displays it appears correctly as active 'Auto' mode.
What I consider a problem is that if I try to set the thermostat to 'heat' mode, my fulfillment does not detect any EXECUTE request. It only receives several QUERY requests in quick succession. If I try to set the mode to 'off' with the app, the setting is successful, but then the 'auto' option disappears from the list of possible modes in the app and is never displayed again. The next attempt to change from 'off' to 'heat' still does not work - no EXECUTE request arrives on the server. If I exclude the 'auto' mode from availableThermostatModes, everything works as it should. So the problem is related to the 'auto' mode.
Is it obvious at first glance that I'm doing something wrong?
Under what circumstances should the 'on' mode be listed in the availableThermostatModes list?
I don't know if my problem is completely the same as the reported issue: https://issuetracker.google.com/issues/157717871
Thank you for any advice