Intents

Les intents de maison connectée sont des objets de messagerie simples qui décrivent l'intégration Cloud-to-cloud à effectuer, par exemple allumer une lumière ou diffuser du contenu audio sur une enceinte.

Tous les intents smart home sont contenus dans l'espace de noms action.devices et vous devez les traiter. Chaque fois que Google Assistant envoie un intent à l'exécution, le jeton d'accès OAuth 2 tiers d'un utilisateur est transmis dans l'en-tête "Authorization".

Voici les intents smart home compatibles:

SYNCHRONISER

L'intent action.devices.SYNC permet de demander la liste des appareils smart home que l'utilisateur a connectés et qui sont disponibles à l'utilisation.

Lorsqu'un utilisateur configure ses appareils avec Google Home app (GHA), il est également authentifié auprès de votre infrastructure cloud. Assistant reçoit ensuite un jeton OAuth2. À ce stade, Assistant envoie un intent action.devices.SYNC à votre traitement pour récupérer la liste initiale des appareils et des fonctionnalités des utilisateurs à partir de votre infrastructure cloud.

Cette figure montre l'interaction entre l'infrastructure Google et l'infrastructure du partenaire. L'infrastructure Google fournit une liste de partenaires à l'application cliente de l'Assistant, qui est ensuite transmise à l'infrastructure du partenaire pour effectuer l'authentification OAuth. L'authentification OAuth du côté du partenaire est la WebView de configuration du partenaire, la WebView OAuth, les paramètres et conditions facultatifs, ainsi que les services cloud du partenaire. L'infrastructure du partenaire renvoie ensuite les identifiants OAuth à l'application cliente de l'Assistant. Les services cloud du partenaire envoient les appareils et fonctionnalités disponibles aux services de l'Assistant, qui les stockent ensuite dans le graphique de la maison.
Figure 1: Interaction entre Google et l'infrastructure du partenaire

Pour éviter de dissocier et de lier à nouveau le compte d'un utilisateur, vous pouvez envoyer une requête de synchronisation à Assistant. L'intent action.devices.SYNC est envoyé à votre traitement pour synchroniser la liste des appareils et des fonctionnalités. Pour en savoir plus, consultez la section Implémenter la synchronisation des requêtes.

Schéma de flux d'un intent SYNC
Figure 2: Intent SYNC

Lors de la configuration du traitement en local, la plate-forme Local Home vérifie la réponse SYNC du traitement dans le cloud de votre action smart home. Pour savoir comment modifier votre réponse SYNC afin de prendre en charge le traitement en local, consultez la section Mettre à jour la réponse SYNC dans le traitement dans le cloud.

QUERY

L'intent action.devices.QUERY permet d'interroger l'état actuel des appareils smart home.

Lorsque les utilisateurs interrogent l'état de l'appareil pour répondre à une question telle que Hey Google, quelles lumières sont allumées dans la cuisine ?, Assistant envoie un intent action.devices.QUERY à votre traitement.

Schéma de flux d'un intent QUERY
Figure 3: Intent QUERY

Pour une expérience utilisateur optimale, vous devez implémenter Report State pour signaler de manière proactive l'état actuel des appareils d'un utilisateur directement à Google Home Graph. Par exemple, cela permet à Assistant de savoir si votre utilisateur a allumé une ampoule connectée à l'aide d'un interrupteur physique.

Signaler l'état de l'appareil à l'aide de l'état du rapport
Figure 4: Enregistrer l'état de l'appareil

EXECUTE

L'intent action.devices.EXECUTE permet de fournir des commandes à exécuter sur les appareils smart home.

Lorsque les utilisateurs envoient des commandes à des appareils avec Assistant, votre traitement reçoit un intent action.devices.EXECUTE qui décrit l'action et les appareils sur lesquels agir. Un utilisateur peut exécuter une action sur un appareil à l'aide d'une commande telle que Hey Google, allume les lumières de mon salon.

Schéma de flux d'un intent EXECUTE
Figure 5: Intent EXECUTE

DÉCONNECTER

L'intent action.devices.DISCONNECT est déclenché pour vous informer lorsqu'un utilisateur a dissocié le compte de l'application de Assistant. Après avoir reçu un intent action.devices.DISCONNECT, vous ne devez pas signaler l'état des appareils de cet utilisateur.