L'API SDM è un'API REST che fornisce vari metodi per visualizzare le caratteristiche ed eseguire i comandi delle caratteristiche per la gestione dei dispositivi Google Nest. Utilizza il token di accesso concesso durante la procedura di autorizzazione con ogni chiamata API.
Tratti
L'API SDM utilizza un modello basato sui tratti per le informazioni e le funzionalità del dispositivo. Consulta le guide dei singoli dispositivi per vedere quali caratteristiche sono disponibili per un dispositivo:
- Fotocamera
- Fotocamera (a batteria)
- Videocamera con faretto
- Videocamera (con cavo)
- Display
- Campanello
- Campanello (a batteria)
- Campanello (con cavo)
- Termostato
Metodi
Per informazioni dettagliate su tutti i metodi disponibili per l'API SDM, consulta il Riferimento API.
executeCommand
Esegue un comando su un dispositivo autorizzato.
Utilizza una chiamata POST per eseguire un comando. Ad esempio, per cambiare la modalità del termostato:
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}Altri esempi di comandi sono disponibili nelle pagine di riferimento di ogni singolo tratto. Per saperne di più, consulta l'elenco completo dei tratti.
get
Recupera informazioni su una struttura o un dispositivo autorizzato.
Una chiamata GET restituisce una singola risposta con i campi e i valori correnti per tutte le caratteristiche disponibili per una struttura o un dispositivo che user ha autorizzato e un oggetto "parentRelations", che rappresenta la risorsa principale della risorsa corrente, ovvero una struttura o una stanza.
Ad esempio, un termostato Nest potrebbe restituire i seguenti valori:
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
Elenca le strutture, le stanze o i dispositivi autorizzati.
Per elencare tutte le strutture, le stanze o i dispositivi autorizzati con un singolo token di accesso, effettua una chiamata GET all'endpoint della risorsa appropriato:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
Integrazioni dell'Assistente Google
Una volta autorizzato un dispositivo per SDM, Google ne viene a conoscenza in Home Graph e ne gestisce direttamente lo stato. Se hai l'integrazione dell'Assistente Google nell'ambito della tua offerta commerciale:
- Non inviare richieste di sincronizzazione per i dispositivi SDM
- Omettere i dispositivi SDM da qualsiasi risposta a un intent SYNC
Errori
Per l'elenco completo dei codici di errore dell'API, consulta il riferimento ai codici di errore dell'API.