Smart Device Management API

Die SDM API ist eine REST API, die verschiedene Methoden zum Aufrufen von Eigenschaften und Ausführen von Befehlen für die Verwaltung von Google Nest-Geräten bietet. 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 an einem autorisierten 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 Befehlsbeispiele finden Sie auf den einzelnen Seiten mit den Referenzen zu den Merkmalen. Weitere Informationen finden Sie in der vollständigen Liste der Merkmale.

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 vom user autorisiert wurde, 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 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

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

Wenn Sie alle Gebäude, Räume oder Geräte auflisten möchten, die mit einem einzigen Zugriffstoken autorisiert sind, senden Sie eine GET-Anfrage an den entsprechenden Ressourcenendpunkt:

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 die SDM autorisiert ist, wird es von Google im Home Graph erkannt und sein Status wird direkt verwaltet. Wenn Sie die Google Assistant-Integration als Teil Ihres kommerziellen Angebots nutzen:

Fehler

Eine vollständige Liste der API-Fehlercodes findest du in der API-Fehlercode-Referenz.