Bienvenue dans le Centre des développeurs Google Home, la nouvelle destination pour apprendre à développer des actions pour la maison connectée. Remarque : Vous continuerez à créer des actions dans la console Actions.

Traitement en local

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Le SDK Local Home améliore l'intégration de votre maison connectée à l'Assistant Google en ajoutant un chemin de traitement local pour acheminer les intents de maison connectée.

Le SDK vous permet d'écrire une application de traitement en local à l'aide de TypeScript ou de JavaScript, qui contient la logique métier de votre maison connectée. Les appareils Google Home ou Google Nest peuvent charger et exécuter votre application sur l'appareil. Votre application communique directement avec vos appareils connectés existants via le Wi-Fi sur un réseau local (LAN) pour exécuter des commandes utilisateur via des protocoles existants.

L'intégration du SDK améliore les performances de votre action pour la maison connectée, y compris une latence plus faible et une plus grande fiabilité. Le fulfillment local est compatible avec tous les types et caractéristiques d'appareils, à l'exception de ceux qui utilisent la validation secondaire de l'utilisateur.

Commencer à créer Essayer l'exemple

Comprendre le fonctionnement

Après avoir obtenu une réponse SYNC de votre traitement cloud, la plate-forme Local Home analyse le réseau local de l'utilisateur à l'aide du réseau mDNS, UDP ou UPnP pour détecter les appareils connectés connectés à l'Assistant.

La plate-forme envoie un intent IDENTIFY pour déterminer si l'appareil peut être contrôlé localement, en comparant l'ID d'appareil de la réponse IDENTIFY à ceux renvoyés par la réponse SYNC précédente. Si l'appareil détecté est un hub ou un pont, la plate-forme envoie un intent REACHABLE_DEVICES et traite le hub comme l'appareil proxy pour communiquer localement.

Lorsqu'elle reçoit une réponse confirmant un appareil local, la plate-forme établit un chemin de traitement local vers l'appareil Google Home ou Google Nest de l'utilisateur, puis achemine les commandes utilisateur pour le traitement en local.

Lorsqu'un utilisateur déclenche une action de maison connectée ayant un chemin d'exécution local, l'Assistant envoie l'intent EXECUTE ou l'intent QUERY à l'appareil Google Home ou Google Nest plutôt qu'au fulfillment cloud. L'appareil exécute ensuite l'application de traitement en local pour traiter l'intent.

Cette figure montre le flux d'exécution du fulfillment local. Le chemin d'exécution capture l'intent d'un utilisateur à partir d'un téléphone doté de l'Assistant Google. Il est ensuite traité par Google Cloud, puis il est exécuté localement sur l'appareil Google Home et la commande est envoyée directement au hub de l'appareil ou directement à l'appareil. Le cloud de développement est disponible en tant que solution de secours dans le cloud.
Figure 1: Ajouter un chemin d'exécution local pour votre action de maison connectée.

La plate-forme Local Home n'est pas déterministe dans le choix de l'appareil Google Home ou Google Nest qui déclenchera la commande. Les intents EXECUTE et QUERY peuvent provenir de tout appareil Google Home ou Google Nest défini dans la même structure Home Graph que l'appareil cible.

Application de traitement en local

L'application de traitement en local contient la logique métier permettant de traiter les intents envoyés par la plate-forme Local Home et d'accéder à votre appareil connecté via le réseau local. Aucune modification de votre matériel n'est prévue pour intégrer le traitement en local. L'application répond aux requêtes de maison connectée en envoyant des commandes de contrôle à l'appareil connecté via des protocoles de couche d'application, y compris HTTP, TCP ou UDP. En cas d'échec du chemin d'exécution local, votre traitement dans le cloud est utilisé comme chemin d'exécution de remplacement.

Pour prendre en charge la création de l'application, le SDK Local Home fournit les deux classes principales suivantes:

  • DeviceManager : fournit des méthodes de communication avec des appareils connectés à l'aide de sockets TCP, UDP ou de requêtes HTTP.
  • App : fournit des méthodes permettant d'associer des gestionnaires pour les intents que Google envoie après avoir découvert des appareils contrôlables localement (IDENTIFY, REACHABLE_DEVICES). Cette classe exécute également les commandes utilisateur (EXECUTE) et répond aux requêtes utilisateur sur l'état actuel de l'appareil (QUERY).

Pendant le développement, vous pouvez créer et tester l'application en la charge sur votre propre serveur hôte ou sur un ordinateur de développement local. En production, Google héberge votre application dans un environnement de bac à sable JavaScript sécurisé sur l'appareil Google Home ou Google Nest de l'utilisateur.

L'API Report State n'est actuellement pas compatible avec le traitement en local. Google s'appuie sur votre traitement cloud pour traiter ces requêtes.

Cycle de vie de l'application

Votre application de traitement en local est chargée à la demande lorsque la plate-forme Local Home détecte de nouveaux appareils locaux correspondant à la configuration d'analyse du projet ou qu'elle a des intents en attente liés à un appareil précédemment identifié.

La mémoire des appareils Google Home ou Google Nest est limitée, et votre application de traitement en local peut être arrêtée à tout moment en raison de la pression de la mémoire dans le système. Cela peut se produire si votre application commence à consommer trop de mémoire ou si le système doit faire de la place pour une autre application. La plate-forme Local Home redémarre votre application uniquement lorsqu'il existe de nouveaux intents à distribuer et que les ressources de mémoire sont suffisantes pour que l'application s'exécute.

La plate-forme Local Home décharge votre application après un délai d'inactivité lorsque l'utilisateur dissocie son compte ou lorsqu'il n'existe plus d'appareils compatibles avec le traitement local associé à son agentUserId.

Appareils compatibles

La plate-forme Local Home exécute votre application de traitement en local sur les appareils Google Home ou Google Nest compatibles. Le tableau suivant décrit les appareils compatibles et l'environnement d'exécution utilisé sur chaque appareil. Pour en savoir plus sur les exigences de l'environnement d'exécution, consultez la page Environnement d'exécution.

Type d'appareil Type Environnement
Google Home Haut-parleur Chrome
Google Home Mini Haut-parleur Chrome
Google Home Max Haut-parleur Chrome
Nest Mini Haut-parleur Chrome
Nest Hub Écran Chrome
Nest Hub Max Écran Chrome
Nest Wifi Routeur Node.js
Point d'accès Chrome

Environnement d'exécution

L'environnement d'exécution de votre application de traitement en local dépend de votre appareil. La plate-forme Local Home est compatible avec les environnements d'exécution suivants:

  • Chrome: votre application de traitement en local est exécutée dans le navigateur window window exécutant Chrome M80 (ou version ultérieure) et compatible avec ECMAScript ES2018.
  • Node.js: votre application de traitement en local est exécutée en tant que script dans un processus Node.js exécutant Node v10.x LTS ou une version ultérieure, et compatible avec ECMAScript version ES2018.

Structure du code source

Nous vous recommandons de regrouper vos dépendances dans un seul fichier JavaScript à l'aide des configurations de bundle fournies par le SDK Local Home et d'empaqueter votre code source en tant qu'expression de fonction invoquée immédiatement (IIFE).

Chemin d'accès de l'exécution

Si vous souhaitez utiliser le SDK Local Home pour l'intégration de votre maison connectée, vous devez effectuer les tâches suivantes:

1 Définir la configuration d'analyse Configurez la console Actions avec les paramètres nécessaires pour que l'Assistant puisse détecter les appareils contrôlables localement.
2 Mettre à jour la réponse SYNC dans votre traitement cloud Dans votre traitement cloud, modifiez le gestionnaire de requêtes SYNC pour qu'il accepte le champ otherDeviceIds que la plate-forme utilise pour établir un chemin de traitement local. Dans ce champ, spécifiez les ID des appareils pouvant être contrôlés localement.
3 Implémenter l'application de traitement en local Utilisez le SDK Local Home pour créer une application JavaScript afin de gérer les intents IDENTIFY, EXECUTE et QUERY. Pour les appareils proxy de hub ou de pont, vous devez également gérer l'intent REACHABLE_DEVICES.
4 Tester et déboguer votre application Testez votre intégration (ou autocertifiez votre certificat) à l'aide de la suite Google Home Test.

Avant de commencer