google-homegoogle-smart-home

Google Home - Can't create test plan with thermostat


Description

I'm trying to create a test plan in the test suite for my google home project that supports outlets, lights and thermostats.

When I include the thermostat to my test plan, I get a generic error message saying: "Can't create test plan. Please try again." (Trying again does not improve the situation)

When I exclude the thermostat, I get the expected device type mismatch error, but the testplan is created regardless.

Since there are no logs for the error, it's impossible for me to ascertain the cause of the problem.

Can anyone provide some help?

Performed steps

I tried creating the test plan with a light, outlet and thermostat. I expected it to create the test plan. This resulted in the generic error. No plan created.

I tried creating the test plan with a light and an outlet. I expected it to create the test plan. This resulted in the device type mismatch error. Plan created successfully.

I tried creating the test plan with only a thermostat. I expected it to create the test plan. This resulted in the generic error. No plan created.

Sync response

the response to the SYNC request looks like this

{
    "payload": {
        "agentUserId": "3998432f-5b3e-4cf5-a348-2c33f7bbfac2",
        "devices": [
            ... ,
            {
                "attributes": {
                    "availableThermostatModes": "heat",
                    "thermostatTemperatureUnit": "C"
                },
                "deviceInfo": {
                    "manufacturer": "OpenMotics",
                    "model": "Thermostat"
                },
                "id": "f3b93617-3292-46f0-b05a-e9f577c06675/thermostat/0",
                "name": {
                    "defaultNames": [
                        "Thermostat"
                    ],
                    "name": "Thermostat",
                    "nicknames": []
                },
                "roomHint": "Showroom",
                "traits": [
                    "action.devices.traits.TemperatureSetting"
                ],
                "type": "action.devices.types.THERMOSTAT",
                "willReportState": true
            }
        ]
    },
    "requestId": 1
}

Solution

  • The sync response returned availableThermostatModes as a string, which is deprecated according to this documentation. I also found this sync validator which helped me identify the problem.