Smart Device Management API

Die SDM API ist eine REST API, die verschiedene Methoden Traits ansehen und Trait-Befehle ausführen, um Google Nest-Geräte Verwenden Sie das während des Autorisierungsprozesses gewährte Zugriffstoken bei jedem API-Aufruf.

Eigenschaften

Die SDM API verwendet ein eigenschaftsbasiertes Modell für Geräteinformationen und ‑funktionen. In den einzelnen Gerätehandbüchern finden Sie Informationen dazu, welche Merkmale für ein Gerät verfügbar sind:

Methoden

Ausführliche Informationen zu allen für die SDM API verfügbaren Methoden finden Sie in der API-Referenz.

executeCommand

Führt einen Befehl auf einem autorisierten Gerät aus.

Verwenden Sie einen POST-Aufruf, um einen Befehl auszuführen. Um beispielsweise den Thermostat zu ändern, Modus:

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatMode.SetMode",
  "params" : {
    "mode" : "HEAT"
  }
}

Weitere Befehlsbeispiele finden Sie auf den einzelnen Seiten mit den Referenzen zu den einzelnen Merkmalen. Sieh dir die vollständige Liste der Merkmale an. .

get

Ruft Informationen zu einem autorisierten Gebäude oder Gerät ab.

Ein GET-Aufruf gibt eine einzelne Antwort mit aktuellen Feldern und Werten für alle Merkmale zurück, die für ein Gebäude oder Gerät verfügbar sind, das der user autorisiert hat, und ein „parentRelations“-Objekt, das die übergeordnete Ressource der aktuellen Ressource darstellt, also entweder ein Gebäude oder einen Raum.

Ein Nest Thermostat kann beispielsweise Folgendes:

GET /enterprises/project-id/devices/device-id
{
  "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.Connectivity" : {
      "status" : "ONLINE"
    },
    "sdm.devices.traits.Fan" : {
      "timerMode" : "ON",
      "timerTimeout" : "2019-05-10T03:22:54Z"
    },
    "sdm.devices.traits.Humidity" : {
      "ambientHumidityPercent" : 35.0
    },
    "sdm.devices.traits.Info" : {
      "customName" : "My device"
    },
    "sdm.devices.traits.Settings" : {
      "temperatureScale" : "CELSIUS"
    },
    "sdm.devices.traits.Temperature" : {
      "ambientTemperatureCelsius" : 23.0
    },
    "sdm.devices.traits.ThermostatEco" : {
      "availableModes" : ["MANUAL_ECO", "OFF"],
      "mode" : "MANUAL_ECO",
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    },
    "sdm.devices.traits.ThermostatHvac" : {
      "status" : "HEATING"
    },
    "sdm.devices.traits.ThermostatMode" : {
      "availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"],
      "mode" : "COOL"
    },
    "sdm.devices.traits.ThermostatTemperatureSetpoint" : {
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    }
  },
  "parentRelations" : [
    {
      "parent" : "enterprises/project-id/structures/structure-id/rooms/room-id",
      "displayName" : "Lobby"
    }
  ]
}

list

Hier werden autorisierte Gebäude, Räume oder Geräte aufgeführt.

Um alle Gebäude, Räume oder Geräte aufzulisten, die für einen einzigen Zugriff autorisiert sind Token enthalten, führen Sie einen GET-Aufruf für den entsprechenden Ressourcenendpunkt aus:

GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices

Google Assistant-Integrationen

Sobald ein Gerät für SDM autorisiert wurde, erkennt Google das Gerät in Google Home. Grafiert und verwaltet den Status direkt. Mit integriertem Google Assistant im Rahmen deines kommerziellen Angebots:

Fehler

Siehe API-Fehlercode-Referenz für die vollständige Liste der API-Fehlercodes.