Intents

Les intents pour la 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 caster de l'audio sur un haut-parleur.

Toutes les intentions smart home sont contenues dans l'espace de noms action.devices et vous devez fournir un traitement pour chacune d'elles. 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 d'autorisation.

Voici les intentions smart home acceptées :

SYNCHRONISER

L'intention action.devices.SYNC est utilisée pour demander la liste des appareils smart home que l'utilisateur a connectés et qui sont disponibles.

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 service de traitement pour récupérer la liste initiale des appareils et des fonctionnalités de l'utilisateur à partir de votre infrastructure cloud.

Cette figure illustre l'interaction entre l'infrastructure Google et l'infrastructure partenaire. L'infrastructure Google fournit une liste de partenaires à l'application cliente Assistant, qui est ensuite transmise à l'infrastructure du partenaire pour effectuer l'authentification OAuth. L'authentification OAuth côté partenaire correspond à la vue Web de configuration du partenaire, à la vue Web OAuth, aux paramètres et conditions facultatifs, ainsi qu'aux 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 les fonctionnalités disponibles aux services de l'Assistant, qui stockent ensuite les informations dans Home Graph.
Figure 1 : Interaction entre l'infrastructure de Google et celle du partenaire

Pour éviter de dissocier et d'associer à nouveau le compte d'un utilisateur, vous pouvez envoyer une demande de synchronisation à Assistant. Cela envoie l'intention action.devices.SYNC à votre traitement pour synchroniser la liste des appareils et des fonctionnalités. Pour en savoir plus, consultez Implémenter la synchronisation des requêtes.

Organigramme d'un intent SYNC
Figure 2 : Intention SYNC

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

QUERY

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

Lorsque les utilisateurs demandent l'état d'un appareil, par exemple en posant la question Hey Google, quelles lumières sont allumées dans la cuisine ? Assistant envoie un intent action.devices.QUERY à votre fulfillment.

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

Pour une expérience utilisateur optimale, vous devez implémenter Report State afin de 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 avec un interrupteur physique.

Signaler l'état des appareils à l'aide de Report State
Figure 4 : État de l'appareil

EXECUTE

L'intention action.devices.EXECUTE est utilisée pour fournir des commandes à exécuter sur les appareils smart home.

Lorsque les utilisateurs envoient des commandes à des appareils avec Assistant, votre traitement reçoit une intention 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 du 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 une intention action.devices.DISCONNECT, vous ne devez pas signaler l'état des appareils de cet utilisateur.