-1

调用获取设备 API 时,设备信息特征 (sdm.devices.traits.Info) 中的 customName 字段始终以空字符串形式返回。所有权限都已被接受,我什至尝试在 Google Home 应用中更改名称,但自定义名称始终为空白。

任何帮助,将不胜感激。

接口调用:

curl --request GET \
  --url https://smartdevicemanagement.googleapis.com/v1/enterprises/{project id}/devices/{device id} \
  --header 'Authorization: Bearer {token}'

回复:

{
  "name": "enterprises/{project id}/devices/{device id}",
  "type": "sdm.devices.types.THERMOSTAT",
  "assignee": "enterprises/{project id}/structures/{structure id}/rooms/{room id}",
  "traits": {
    "sdm.devices.traits.Info": {
      "customName": ""
    },
    "sdm.devices.traits.Humidity": {
      "ambientHumidityPercent": 60
    },
    "sdm.devices.traits.Connectivity": {
      "status": "ONLINE"
    },
    "sdm.devices.traits.Fan": {
      "timerMode": "OFF"
    },
    "sdm.devices.traits.ThermostatMode": {
      "mode": "HEAT",
      "availableModes": [
        "HEAT",
        "COOL",
        "HEATCOOL",
        "OFF"
      ]
    },
    "sdm.devices.traits.ThermostatEco": {
      "availableModes": [
        "OFF",
        "MANUAL_ECO"
      ],
      "mode": "OFF",
      "heatCelsius": 13.5,
      "coolCelsius": 28
    },
    "sdm.devices.traits.ThermostatHvac": {
      "status": "OFF"
    },
    "sdm.devices.traits.Settings": {
      "temperatureScale": "FAHRENHEIT"
    },
    "sdm.devices.traits.ThermostatTemperatureSetpoint": {
      "heatCelsius": 19.444443
    },
    "sdm.devices.traits.Temperature": {
      "ambientTemperatureCelsius": 24.787186
    }
  },
  "parentRelations": [
    {
      "parent": "enterprises/{project id}/structures/{structure id}/rooms/{room id}",
      "displayName": "Hallway"
    }
  ]
}
4

1 回答 1

0

经过一些测试,customName字段不是设备的字段,它只是结构的一个字段。

调用结构端点:

https://smartdevicemanagement.googleapis.com/v1/enterprises/{project id}/structures 

然后您将在 Google Home 应用中看到家庭名称。

更新 - 对于设备的自定义名称,我只能在 iOS 上的 Nest 应用程序中设置设备标签后才能让它不为空。点击设备,然后点击设置,然后在关于点击位置,然后设置设备的“标签”。此值将显示为 sdm.devices.traits.Info 特征 - customName。

于 2021-01-25T22:12:34.393 回答