action.devices.SYNC
Cette intention demande la liste des appareils associés à l'utilisateur donné et leurs capacités.
Il est déclenché lors de l'association de compte ou lorsqu'un utilisateur resynchronise manuellement ses appareils. Votre traitement doit répondre avec les traits et 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 spécifique est accessible. Cela est géré par les réponses QUERY
et EXECUTE
.
Pour en savoir plus, consultez Identifier et synchroniser.
Format de requête
Champs | Type | Description |
---|---|---|
requestId |
String |
Obligatoire. ID de la demande. |
inputs |
Array |
Obligatoire. Liste des entrées correspondant à la demande d'intention. |
[item, ...] |
Objet |
Type et charge utile associés à la requête d'intention. |
intent |
Obligatoire. (Valeur constante : Type de demande d'intention. |
Exemples
Demande d'intention 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 demande correspondante. |
payload |
Objet |
Obligatoire. Charge utile de la réponse de l'intention. |
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, si l'agent utilise un formulaire immuable et un formulaire modifiable, utilisez le formulaire 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 consigné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 aucun 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. Cette valeur 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. |
traits |
Array |
Obligatoire. Liste des traits de cet appareil. Cela définit les commandes, les attributs et les états compatibles avec l'appareil. |
[item, ...] |
String |
Nom du trait compatible. |
name |
Objet |
Obligatoire. Noms de cet appareil. |
defaultNames |
Array |
Liste de noms fournis par le développeur plutôt que par l'utilisateur (noms de fabricants, 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 ses 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 |
Pseudo 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 l'état des rapports et false pour utiliser le modèle d'interrogation) |
notificationSupportedByAgent |
Valeur booléenne |
(Par défaut : 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 défectueuse du micrologiciel 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 |
Cette fonctionnalité est particulièrement utile lorsque le développeur est un hub pour d'autres appareils. Google peut fournir une liste standard de fabricants ici afin que, par exemple, TP-Link et Smartthings décrivent tous les deux "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 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. La taille maximale est 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 globale de l'appareil. Les données de cet objet sont soumises à quelques contraintes : elles ne doivent pas contenir d'informations sensibles, y compris, mais sans s'y limiter, des informations permettant d'identifier personnellement l'utilisateur. |
otherDeviceIds |
Array |
Liste des ID alternatifs utilisés pour identifier un appareil synchronisé avec le cloud pour l'exécution locale. |
[item, ...] |
Objet |
ID de l'appareil alternatif. |
agentId |
String |
ID de l'agent. Il s'agit généralement de l'ID de 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'intention 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" } } ] } }