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:
- Kamera
- Kamera (mit Akku)
- Kamera mit Flutlicht
- Kamera (mit Kabel)
- Display
- Türklingel
- Türklingel (mit Akku)
- Türklingel (mit Kabel)
- Thermostat
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:
- Keine Synchronisierungsanfragen für SDM-Geräte senden
- Lassen Sie SDM-Geräte aus allen Antworten auf einen SYNC-Intent aus.
Fehler
Eine vollständige Liste der API-Fehlercodes finden Sie in der API-Fehlercode-Referenz.