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 pour la maison connectée.
Ce SDK vous permet d'écrire une application de traitement en local à l'aide de TypeScript ou 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 traiter les commandes utilisateur, par le biais 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 traitement local est compatible avec tous les types et traits d'appareil, à l'exception de ceux qui utilisent la validation secondaire de l'utilisateur.
Commencer la création Essayer l'exemple
Comprendre le fonctionnement
Après avoir reçu une réponse SYNC
de votre traitement cloud, la plate-forme Local Home analyse le réseau local de l'utilisateur à l'aide du mDNS, de la diffusion UDP ou du protocole 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 de l'appareil dans 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 le périphérique proxy permettant de 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 pour la maison connectée avec un chemin de traitement local, l'Assistant envoie l'intent EXECUTE
ou QUERY
à l'appareil Google Home ou Google Nest plutôt qu'au traitement cloud. L'appareil exécute ensuite l'application de traitement en local pour traiter l'intent.

La plate-forme Local Home n'est pas déterministe dans le choix de l'appareil Google Home ou Google Nest sur lequel déclencher la commande. Les intents EXECUTE
et QUERY
peuvent provenir de n'importe quel 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 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 ne doit être intégrée au traitement en local. L'application traite les requêtes d'action pour la 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 de traitement local, votre traitement cloud est utilisé comme chemin d'exécution de remplacement.
Pour permettre la création de l'application, le SDK Local Home fournit les deux classes principales suivantes:
DeviceManager
: fournit des méthodes pour communiquer avec les appareils connectés à l'aide de sockets TCP, UDP ou de requêtes HTTP.App
: fournit des méthodes pour associer des gestionnaires pour les intents que Google envoie après avoir détecté 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 compiler et tester l'application en la chargeant sur votre propre serveur d'hébergement ou sur votre 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 a des intents en attente d'envoi associés à un appareil précédemment identifié.
Les appareils Google Home ou Google Nest ont une mémoire limitée. Votre application de traitement en local peut être arrêtée à tout moment en raison de la saturation 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 laisser de la place à une autre application. La plate-forme Local Home ne redémarre votre application que lorsque de nouveaux intents sont à fournir et suffisamment de ressources de mémoire 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 qu'il n'y a plus d'appareils compatibles avec le traitement en local associés au agentUserId
de l'utilisateur.
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 leur environnement d'exécution. Pour en savoir plus sur les exigences d'exécution, consultez la section Environnement d'exécution.
Appareil | Type | Environnement |
---|---|---|
Google Home | inférieur | Chrome |
Google Home Mini | inférieur | Chrome |
Google Home Max | inférieur | Chrome |
Nest Mini | inférieur | Chrome |
Nest Hub | Display | Chrome |
Nest Hub Max | Display | Chrome |
Nest Wifi | Routeur | Node.js |
Point | 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 contexte d'un navigateur Chrome
window
exécutant Chrome M80 ou une version ultérieure, compatible avec ECMAScript version ES2018. - Node.js: votre application de traitement en local est exécutée en tant que script au sein d'un processus Node.js exécutant Node.x LTS ou version ultérieure, 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 appelée immédiatement (IIFE).
Chemin d'accès de l'exécution
Pour utiliser le SDK Local Home dans le cadre de l'intégration de votre maison connectée, vous devez effectuer les tâches suivantes:
1 | Configurer 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 utilisé par la plate-forme pour établir un chemin d'accès 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 type hub ou pont, vous devez également gérer l'intent REACHABLE_DEVICES .
|
4 | Tester et déboguer votre application | Testez votre intégration (ou autocertifiez) à l'aide de la suite Google Home Test. |
Avant de commencer
- Familiarisez-vous avec les principes de base de la création d'une action pour la maison connectée.
- Dans la console Actions, assurez-vous que vous disposez d'un projet de maison connectée et que l'association de comptes est configurée.
- Assurez-vous d'être connecté avec le même compte Google dans la console Actions et dans l'Assistant sur votre appareil de test.
- Vous aurez besoin d'un environnement Node.js pour écrire votre application. Pour installer Node.js et npm, nous vous recommandons d'utiliser Node Version Manager.
- Pour utiliser la dernière version du SDK Local Home, vous devez enregistrer vos appareils de test dans le programme Preview Cast.