API Smart Device Management

L'API SDM est une API REST qui fournit diverses méthodes pour afficher les caractéristiques et exécuter des commandes de trait pour la gestion des appareils Google Nest. Utilisez le jeton d'accès accordé lors du processus d'autorisation avec chaque appel d'API.

Caractéristiques

L'API SDM utilise un modèle basé sur des traits pour les informations et les fonctionnalités de l'appareil. Consultez les guides de chaque appareil pour connaître les caractéristiques disponibles pour un appareil:

Méthodes

Consultez la documentation de référence de l'API pour en savoir plus sur toutes les méthodes disponibles pour l'API SDM.

executeCommand

Exécute une commande sur un appareil autorisé.

Utilisez un appel POST pour exécuter une commande. Par exemple, pour modifier le mode du thermostat:

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

Vous trouverez d'autres exemples de commandes sur la page de référence de chaque caractéristique. Pour en savoir plus, consultez la liste complète des caractéristiques.

get

Récupère des informations sur une structure ou un appareil autorisé.

Un appel GET renvoie une seule réponse avec les champs et les valeurs actuels pour toutes les caractéristiques disponibles pour une structure ou un appareil que user a autorisé, ainsi qu'un objet "parentRelations", qui représente la ressource parente de la ressource actuelle, soit une structure ou une salle.

Par exemple, un thermostat Nest peut renvoyer ce qui suit:

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

Répertorie les structures, les salles ou les appareils autorisés.

Pour répertorier l'ensemble des structures, des salles ou des appareils autorisés sous un seul jeton d'accès, effectuez un appel GET sur le point de terminaison de la ressource approprié:

GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices

Intégrations de l'Assistant Google

Une fois qu'un appareil est autorisé à utiliser SDM, Google le détecte dans le Home Graph et gère directement son état. Si votre offre commerciale intègre l'Assistant Google:

Erreurs

Consultez la documentation de référence sur les codes d'erreur de l'API pour obtenir la liste complète des codes d'erreur de l'API.