I'm trying to add an AC Unit to Google Home via Google Smart Actions. I have the action configured and successfully linked my app server to the Google Home App.
I have been using the following guide from Google to develop my app server:
In response to Google's action.devices.SYNC
request I am providing the following response:
{
"requestId": "request-id-providing-by-google",
"payload": {
"agentUserId": "unique-user-id",
"devices": [
{
"id": "device-id",
"type": "action.devices.types.AC_UNIT",
"traits": [
"action.devices.traits.FanSpeed",
"action.devices.traits.OnOff",
"action.devices.traits.TemperatureSetting"
],
"name": {
"name": "Air Conditioner"
},
"willReportState": false,
"roomHint": "Room 1",
"deviceInfo": {
"manufacturer": "man",
"model": "hs1234",
"hwVersion": "3.2",
"swVersion": "11.4"
},
"attributes": {
"availableFanSpeeds": {
"speeds": [
{
"speed_name": "speed_one",
"speed_values": [
{
"speed_synonym": [
"one"
],
"lang": "en"
}
]
},
{
"speed_name": "speed_two",
"speed_values": [
{
"speed_synonym": [
"two"
],
"lang": "en"
}
]
},
{
"speed_name": "speed_three",
"speed_values": [
{
"speed_synonym": [
"three"
],
"lang": "en"
}
]
},
{
"speed_name": "speed_four",
"speed_values": [
{
"speed_synonym": [
"four"
],
"lang": "en"
}
]
},
{
"speed_name": "speed_five",
"speed_values": [
{
"speed_synonym": [
"five"
],
"lang": "en"
}
]
}
],
"ordered": true
},
"supportsFanSpeedPercent": false,
"availableThermostatModes": [
"off",
"heat",
"cool",
"fan-only",
"dry",
"on"
],
"thermostatTemperatureRange": {
"minThresholdCelsius": 18,
"maxThresholdCelsius": 30
},
"thermostatTemperatureUnit": "C"
}
}
]
}
}
And in response to Google's action.devices.QUERY
request I am providing this response:
{
"requestId": "request-id-providing-by-google",
"payload": {
"devices": {
"device-id": {
"status": "SUCCESS",
"online": true,
"on": true,
"currentFanSpeedSetting": "speed-five",
"thermostatMode": "off",
"thermostatTemperatureAmbient": 25,
"thermostatTemperatureSetpoint": 20,
"thermostatHumidityAmbient": 100
}
}
}
}
As you can see, I have:
- Specified that my AC unit supports the On / Off, fan speeds and temperature setting traits
- Given the necessary attributes for the specified traits
- Provided the current values for the device and related traits
However, when I view this device in the Google Home App it only presents an On / Off button and no controls for fan speed and temperature.
I have looked through all related logs on Google Cloud Logging and there are no errors reports.
I have reviewed these seemingly related issues on the topic but the responses and comments have not resolved the issue:
- https://github.com/actions-on-google/smart-home-nodejs/issues/500
- https://github.com/actions-on-google/smart-home-nodejs/issues/330
Am I missing some parameters or config for these controls to appear?
Update 07/11 - Useful response from @ToniCorinne pointing out that on the Google Home Smartphone app FanSpeed controls are not currently supported, see this link:
Obviously this doesn't account for TemperatureSettings, so I've opened the following bug with Google which at time of writing has not been assigned: