Smart Device Management API

Die SDM API ist eine REST API, die verschiedene Methoden zum Anzeigen von Traits und zum Ausführen von Trait-Befehlen für die Verwaltung von Google Nest-Geräten bietet. Verwenden Sie bei jedem API-Aufruf das Zugriffstoken, das während des Autorisierungsvorgangs erteilt wurde.

Eigenschaften

Die SDM API verwendet ein trait-basiertes Modell für Geräteinformationen und -funktionen. Sieh in den jeweiligen Gerätehandbüchern nach, welche Traits für ein Gerät verfügbar sind:

Methoden

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

executeCommand

Führt einen Befehl an ein autorisiertes Gerät aus.

Verwenden Sie einen POST-Aufruf, um einen Befehl auszuführen. So ändern Sie beispielsweise den Thermostatmodus:

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

Weitere Beispiele für Befehle finden Sie auf der jeweiligen Referenzseite für einzelne Merkmale. Weitere Informationen findest du im vollständigen Trait-Eintrag.

get

Informationen zu einer autorisierten Struktur oder einem autorisierten Gerät abrufen

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

Ein Nest Thermostat könnte beispielsweise Folgendes zurückgeben:

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

Listet autorisierte Gebäude, Räume oder Geräte auf.

Wenn Sie alle autorisierten Gebäude, Räume oder Geräte unter einem einzigen Zugriffstoken auflisten möchten, führen Sie einen GET-Aufruf an 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 Home Graph und verwaltet seinen Status direkt. Wenn du die Google Assistant-Integration im Rahmen deines kommerziellen Angebots nutzt:

Fehler

Eine vollständige Liste der API-Fehlercodes finden Sie in der API-Fehlercode-Referenz.