API Smart Device Management

L'API SDM è un'API REST che fornisce vari metodi per visualizzare i tratti ed eseguire comandi 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 su tratti per le informazioni e le funzionalità del dispositivo. Consulta le guide dei singoli dispositivi per scoprire quali tratti sono disponibili per un dispositivo:

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 nella pagina di riferimento di ciascun tratto. Per ulteriori informazioni, consulta l'elenco completo dei tratti.

get

Recupera informazioni su una struttura o un dispositivo autorizzati.

Una chiamata GET restituisce una singola risposta con i campi e i valori attuali per tutti i tratti disponibili per una struttura o un dispositivo che user ha autorizzato e un oggetto "parentRelations", che rappresenta la risorsa principale della risorsa corrente, una struttura o una camera.

Ad esempio, Nest Thermostat potrebbe restituire quanto segue:

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 strutture, stanze o dispositivi autorizzati.

Per elencare tutte le strutture, le camere 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 con l'Assistente Google

Una volta che un dispositivo è stato autorizzato per la gestione dei dati dei clienti, Google ne prende conoscenza in Home Graph e ne gestisce direttamente lo stato. Se hai integrato l'Assistente Google come parte della tua offerta commerciale:

Errori

Consulta il riferimento ai codici di errore dell'API per un elenco completo dei codici di errore dell'API.