action.devices.SYNC

Cet intent demande la liste des appareils associés à l'utilisateur donné et leurs fonctionnalités.

Il se déclenche lors de l'association du compte ou lorsqu'un utilisateur resynchronise manuellement leurs appareils. Votre fulfillment doit répondre avec le code caractéristiques et attributs pris en charge pour chaque appareil.

Votre réponse SYNC doit renvoyer tous les appareils associés à l'utilisateur. Elle ne détermine pas si un appareil en particulier est accessible. Cette opération est gérée QUERY et Réponses EXECUTE.

Pour en savoir plus, consultez Identifier et synchroniser.

Format de requête

Champs Type Description
requestId String

Obligatoire.

Identifiant de la requête.

inputs Array

Obligatoire.

Liste des entrées correspondant à la requête d'intent.

[item, ...] Objet

Type et charge utile associés à la requête d'intent.

intent

Obligatoire.

(Valeur constante: "action.devices.SYNC")

Type de requête d'intent.

Exemples

Requête d'intent SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

Format de réponse

Champs Type Description
requestId String

Obligatoire.

ID de la requête correspondante.

payload Objet

Obligatoire.

Charge utile de la réponse d'intent.

agentUserId String

Obligatoire.

Reflète l'ID utilisateur unique (et immuable) sur la plate-forme de l'agent. La chaîne est opaque pour Google. Par conséquent, s'il existe un formulaire immuable et non modifiable côté agent, utilisez le format immuable (par exemple, un numéro de compte plutôt qu'une adresse e-mail).

errorCode String

En cas d'erreurs systématiques lors de la synchronisation

debugString String

Erreur détaillée qui ne sera jamais présentée aux utilisateurs, mais qui peut être enregistrée ou utilisée pendant le développement.

devices Array

Obligatoire.

Liste des appareils appartenant à l'utilisateur. Aucun appareil, un ou plusieurs appareils, est renvoyé (aucun appareil signifie que l'utilisateur n'a aucun appareil ou les a tous déconnectés).

[item, ...] Objet

Métadonnées de l'appareil.

id String

Obligatoire.

ID de l'appareil dans le cloud du développeur. Il doit être unique pour l'utilisateur et pour le développeur, car en cas de partage, nous pouvons l'utiliser pour dédupliquer plusieurs vues d'un même appareil. Elle doit être immuable pour l'appareil. S'il change, l'Assistant le traitera comme un nouvel appareil.

type String

Obligatoire.

Type de matériel de l'appareil.

traits Array

Obligatoire.

Liste des caractéristiques de cet appareil. Ce champ définit les commandes, les attributs et les états compatibles avec l'appareil.

[item, ...] String

Nom de la caractéristique acceptée.

name Objet

Obligatoire.

Noms de cet appareil.

defaultNames Array

Liste de noms fournie par le développeur plutôt que par l'utilisateur, souvent des noms de fabricants, des SKU, etc.

[item, ...] String

Nom par défaut de l'appareil.

name String

Obligatoire.

Nom principal de l'appareil, généralement fourni par l'utilisateur. Il s'agit également du nom que l'Assistant utilisera pour décrire l'appareil dans ses réponses.

nicknames Array

Noms supplémentaires fournis par l'utilisateur pour l'appareil.

[item, ...] String

Pseudo de l'appareil.

willReportState Valeur booléenne

Obligatoire.

Indique si l'état de cet appareil sera mis à jour par le flux en temps réel. ("true" pour utiliser le flux en temps réel pour signaler l'état et "false" pour utiliser le modèle d'interrogation).

notificationSupportedByAgent Valeur booléenne

(Par défaut : false)

Indique si les notifications sont activées pour l'appareil.

roomHint String

Indique la pièce où se trouve l'appareil dans la maison de l'utilisateur pour simplifier la configuration.

deviceInfo Objet

Contient des champs décrivant l'appareil à utiliser dans la logique ponctuelle si nécessaire (par exemple, "la version X du micrologiciel défectueuse nécessite un réglage de la couleur" ou "une faille de sécurité nécessite d'informer tous les utilisateurs du micrologiciel Z").

manufacturer String

Particulièrement utile lorsque le développeur sert de hub pour d'autres appareils. Google peut fournir ici une liste standard de fabricants afin que, par exemple, TP-Link et Smartthings décrivent tous deux "osram" de la même manière.

model String

Modèle ou identifiant SKU de l'appareil concerné.

hwVersion String

Numéro de version spécifique attaché au matériel, si disponible.

swVersion String

Numéro de version spécifique joint au logiciel/micrologiciel, le cas échéant.

attributes Objet

Alignement avec les attributs par caractéristique décrits dans chaque référence de schéma de caractéristique.

customData Objet

Objet défini par le développeur qui sera associé aux futures requêtes QUERY et EXECUTE, dans la limite de 512 octets par appareil. Utilisez cet objet pour stocker des informations supplémentaires sur l'appareil dont votre service cloud peut avoir besoin, telles que la région mondiale de l'appareil. Les données de cet objet présentent quelques contraintes: aucune information sensible, y compris, mais sans s'y limiter, des informations permettant d'identifier personnellement l'utilisateur.

otherDeviceIds Array

Liste d'autres ID permettant d'identifier un appareil synchronisé dans le cloud pour une exécution locale.

[item, ...] Objet

Autre ID de l'appareil.

agentId String

ID de l'agent. Il s'agit généralement de l'ID du projet dans la console Actions.

deviceId String

Obligatoire.

ID de l'appareil défini par l'agent. L'ID de l'appareil doit être unique.

Exemples

Réponse d'intent SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.OUTLET",
        "traits": [
          "action.devices.traits.OnOff"
        ],
        "name": {
          "defaultNames": [
            "My Outlet 1234"
          ],
          "name": "Night light",
          "nicknames": [
            "wall plug"
          ]
        },
        "willReportState": false,
        "roomHint": "kitchen",
        "deviceInfo": {
          "manufacturer": "lights-out-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "otherDeviceIds": [
          {
            "deviceId": "local-device-id"
          }
        ],
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "foo"
        }
      },
      {
        "id": "456",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Brightness",
          "action.devices.traits.ColorSetting"
        ],
        "name": {
          "defaultNames": [
            "lights out inc. bulb A19 color hyperglow"
          ],
          "name": "lamp1",
          "nicknames": [
            "reading lamp"
          ]
        },
        "willReportState": false,
        "roomHint": "office",
        "attributes": {
          "colorModel": "rgb",
          "colorTemperatureRange": {
            "temperatureMinK": 2000,
            "temperatureMaxK": 9000
          },
          "commandOnlyColorSetting": false
        },
        "deviceInfo": {
          "manufacturer": "lights out inc.",
          "model": "hg11",
          "hwVersion": "1.2",
          "swVersion": "5.4"
        },
        "customData": {
          "fooValue": 12,
          "barValue": false,
          "bazValue": "bar"
        }
      }
    ]
  }
}