action.devices.SYNC

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

Il est déclenché lors de l'association de comptes ou lorsqu'un utilisateur resynchronise manuellement ses appareils. Votre traitement doit répondre avec les caractéristiques et les attributs compatibles pour chaque appareil.

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

Pour en savoir plus, consultez Identifier et synchroniser.

Format de requête

Champs Type Description
requestId String

Obligatoire.

ID 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 une forme immuable et une forme mutable côté agent, utilisez la forme immuable (par exemple, un numéro de compte plutôt qu'une adresse e-mail).

errorCode String

Pour les erreurs systématiques sur SYNC

debugString String

Erreur détaillée qui ne sera jamais présentée aux utilisateurs, mais qui pourra être enregistrée ou utilisée lors du développement.

devices Array

Obligatoire.

Liste des appareils appartenant à l'utilisateur. Zéro ou plusieurs appareils sont renvoyés (zéro appareil signifie que l'utilisateur n'a pas d'appareil ou qu'il 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. En cas de partage, nous pouvons l'utiliser pour dédupliquer plusieurs vues du même appareil. Il 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.

Doit correspondre au modèle suivant : ^action.devices.types.[a-zA-z]+$.

traits Array

Obligatoire.

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

[item, ...] String

Nom de la caractéristique compatible.

Doit correspondre au modèle suivant : ^action.devices.traits.[a-zA-z]+$.

name Objet

Obligatoire.

Noms de cet appareil.

defaultNames Array

Liste des noms fournis 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 préférera pour décrire l'appareil dans les réponses. Les noms seront tronqués s'ils dépassent la limite de 60 points de code Unicode (caractères) et aucune erreur ne sera générée. Les développeurs sont responsables de la gestion des noms longs.

nicknames Array

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

[item, ...] String

Surnom de l'appareil.

willReportState Valeur booléenne

Obligatoire.

Indique si les états de cet appareil seront 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

Fournit la pièce actuelle de l'appareil dans la maison de l'utilisateur pour simplifier la configuration.

deviceInfo Objet

Contient des champs décrivant l'appareil à utiliser dans une logique ponctuelle si nécessaire (par exemple, "La version X du micrologiciel défectueux de la lumière Y nécessite un ajustement 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 est un hub pour d'autres appareils. Google peut fournir une liste standard de fabricants afin que, par exemple, TP-Link et Smartthings décrivent "osram" de la même manière.

model String

Identifiant du modèle ou du SKU de l'appareil concerné.

hwVersion String

Numéro de version spécifique associé au matériel, le cas échéant.

swVersion String

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

attributes Objet

Aligné sur les attributs par caractéristique décrits dans chaque schéma de caractéristique.

customData Objet

Objet défini par le développeur qui sera associé aux futures requêtes QUERY et EXECUTE, avec un maximum de 512 octets par appareil. Utilisez cet objet pour stocker des informations supplémentaires sur l'appareil dont votre service cloud peut avoir besoin, comme la région géographique de l'appareil. Les données de cet objet sont soumises à quelques contraintes : aucune information sensible, y compris, mais sans s'y limiter, les informations permettant d'identifier une personne.

otherDeviceIds Array

Liste des ID alternatifs utilisés pour identifier un appareil synchronisé dans le cloud pour une exécution locale.

[item, ...] Objet

ID d'appareil alternatif.

agentId String

ID de l'agent. En règle générale, il s'agit de l'ID de projet dans la console Actions.

deviceId String

Obligatoire.

ID d'appareil défini par l'agent. L'ID d'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"
        }
      }
    ]
  }
}