0

I'm developing a Smart Home action for Actions on Google. I have two Smart Home actions with draft status. Each action returns an idencial SYNC response that includes a thermostat device, as shown below.

{
  "payload": {
    "agentUserId": "1234",
    "devices": [
      {
        "id": "my-test-device-id",
        "type": "action.devices.types.THERMOSTAT",
        "deviceInfo": {
          "model": "L",
          "manufacturer": "L",
          "hwVersion": "1.0.0",
          "swVersion": "2.0.0"
        },
        "traits": [
          "action.devices.traits.TemperatureSetting"
        ],
        "willReportState": false,
        "name": {
          "name": "My AC"
        },
        "attributes": {
          "thermostatTemperatureUnit": "C",
          "availableThermostatModes": [
            "off",
            "heat",
            "cool",
            "on"
          ]
        }
      }
    ]
  },
  "requestId": "1695631778966374749"
}

When I link these actions in Google Home app on Google Pixel 3 (Android 11), thermostat's touch control is available for one action, but not the other. When touch control is unavailable, the thermostat receives a gear icon. When I press that icon, "Device settings" screen appears and I cannot change the temperature. What could be the cause of this difference?

Tested on Google Pixel 3 (Android 11)

Thermostat with Touch Controls

Thermostat without Touch Controls (with gear icon)

  • Are you linking both actions at the same time? To verify, these are both running under the same account? – ToniCorinne Jul 16 '21 at 19:22
  • Yes, each action is linked with the same Google account, the only difference is the OAuth2 account linking settings. When I link both actions at the same time, one receives the gear icon (no touch controls) but the other does not (with touch controls). – Nao Iizuka Jul 18 '21 at 02:47
  • What are the differences between OAuth settings? Are the [console settings](https://developers.google.com/assistant/smarthome/develop/create) identical, or do you have differences between those? – ToniCorinne Jul 20 '21 at 20:42
  • When we use our own OAuth2 server touch control is unavailable. The other smart home action uses the OAuth2 server included in https://github.com/actions-on-google/smart-home-nodejs and touch control is available. Does OAuth2 configuration affect touch controls? By the way, the action that does not have touch control was created in March 2018, and the other smart home action was created in April 2021. – Nao Iizuka Jul 22 '21 at 07:48
  • When I used the exact same OAuth2 settings for both actions, the availability of touch controls did not change. – Nao Iizuka Aug 06 '21 at 05:25
  • Is the issue still existing ? If yes, can you provide information about these following questions: Do both actions have their own account linking and smart home fulfillment servers? Have you implemented the QUERY and EXECUTE in smart home fulfillment correctly? Can you share the response payload ? – Siddhant Priyadarshi Mar 24 '22 at 20:11
  • @SiddhantPriyadarshi Please see my own answer. The culprit is the Google project ID. It has nothing to do with the implementation of the action. – Nao Iizuka Apr 05 '22 at 07:11

1 Answers1

0

I have come to the conclusion that my Google project ID is receiving special treatment from Google to disable thermostat touch control in my smart home action.

Specifically, if the project ID is prefixed with nature-remo-smart-home then thermostat touch control is not available. However, If I create a new project with a different prefix, touch control is available.