Intents

Les intents de maison connectée sont des objets de messagerie simples qui décrivent l'action smart home à effectuer (par exemple, allumer une lumière ou caster du contenu audio sur une enceinte).

Tous les intents smart home sont contenus dans l'espace de noms action.devices, et vous devez leur fournir un traitement. Chaque fois que Google Assistant envoie un intent au traitement, 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 disponibles.

Lorsqu'un utilisateur configure ses appareils avec Google Home app (GHA), il s'authentifie également auprès de votre infrastructure cloud. Ensuite, Assistant reçoit 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 utilisateur de votre infrastructure cloud.

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

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

Organigramme d'un intent SYNC
Figure 2: intent SYNC

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

REQUÊTE

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

Lorsque les utilisateurs demandent l'état d'un 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.

Organigramme d'un intent QUERY
Figure 3: Intent QUERY

Pour une expérience utilisateur optimale, vous devez implémenter Report State (État du rapport) 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 activé une ampoule connectée avec un interrupteur physique.

Signaler l'état de l'appareil à l'aide de l'état du rapport
Figure 4: Rapport sur l'état d'un 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.

Organigramme d'un intent EXECUTE
Figure 5: EXÉCUTER l'intent

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.