Le SDK Local Home améliore l'intégration de votre maison connectée à Google Assistant en ajoutant un chemin de traitement local à acheminer intents pour la maison connectée
Le SDK vous permet de créer 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 via le Wi-Fi sur un réseau local (LAN) pour exécuter des commandes utilisateur, par rapport aux protocoles existants.
L'intégration du SDK améliore les performances de votre maison connectée action, y compris une latence plus faible et une fiabilité accrue. Le traitement en local est compatible avec tous les types et caractéristiques d'appareils, à l'exception de ceux qui utilisent utilisateur secondaire validation.
Comprendre le fonctionnement
Après avoir obtenu une réponse SYNC
de votre traitement cloud, la plate-forme Local Home analyse
local à l'aide du mDNS, de la diffusion UDP ou de l'UPnP pour découvrir
appareils connectés connectés à l'Assistant.
La plate-forme envoie un intent IDENTIFY
pour déterminer si l'appareil est
contrôlable localement, en comparant l'ID de l'appareil dans la réponse IDENTIFY
à celles renvoyées par la réponse SYNC
précédente. Si l'appareil détecté est un
hub ou pont, la plate-forme envoie un intent REACHABLE_DEVICES
et traite le
hub comme périphérique proxy
pour communiquer localement.
Lorsqu'elle reçoit une réponse confirmant un appareil local, la plate-forme établit un chemin de traitement en local vers l'appareil Google Home ou Google Nest de l'utilisateur et qui achemine par la suite pour le traitement en local.
Lorsqu'un utilisateur déclenche une action de maison connectée
ayant un chemin de traitement local,
L'Assistant envoie le EXECUTE
ou l'intent QUERY
à la
appareil Google Home ou Google Nest plutôt que le traitement cloud. L'appareil
exécute l'application de traitement en local pour traiter l'intent.
La plate-forme Local Home ne détermine pas l'appareil Google Home ou Google Nest à utiliser
déclencher la commande. Les intents EXECUTE
et QUERY
peuvent provenir de n'importe quelle source
appareil Google Home ou Google Nest défini dans le même Home Graph
structure en tant qu'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 accéder à votre appareil connecté via le réseau local. Aucune modification de votre matériel n'est censée intégrer le traitement en local. La traite les demandes d'action de la maison connectée en envoyant des commandes appareil connecté via des protocoles de couche application, y compris HTTP, TCP ou UDP. En cas d'échec du chemin de traitement en local, le traitement cloud est utilisé comme chemin d'exécution de remplacement.
Pour faciliter la création de l'application, le SDK Local Home fournit ces deux classes:
DeviceManager
: Fournit des méthodes de communication avec les appareils connectés à l'aide de sockets TCP, UDP ou requêtes HTTP.App
: Fournit des méthodes permettant d'associer des gestionnaires pour les intents envoyés par Google après avoir découvert des appareils contrôlables localement (IDENTIFY
,REACHABLE_DEVICES
). Elle traite également les commandes utilisateur (EXECUTE
). répond aux requêtes des utilisateurs sur l'état actuel de l'appareil (QUERY
).
Pendant le développement, vous pouvez compiler et tester l'application en la chargeant vous-même d'hébergement ou de développement local. En production, Google héberge dans un environnement de bac à sable JavaScript sécurisé sur l'appareil Google Home ou Google Nest de l'utilisateur.
L'API Report State est actuellement indisponible pour le traitement en local. Google s'appuie sur vos le fulfillment 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 en attente intents à livrer en lien avec un appareil précédemment identifié.
Les appareils Google Home ou Google Nest ont une mémoire limitée et votre application de traitement en local peut être arrêté à tout moment en raison de la saturation de la mémoire du système. Cela peut se produire si votre appli 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 ne redémarre votre application que lorsqu'il existe de nouveaux intents à 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 il n'y a plus d'appareils compatibles avec
traitement associé au agentUserId
de l'utilisateur.
Appareils compatibles
La plate-forme Local Home exécute votre application de traitement en local sur les plates-formes compatibles appareils Google Home ou Google Nest. Le tableau suivant décrit les appareils compatibles et les d'exécution utilisé sur chaque appareil. Pour en savoir plus sur les exigences d'exécution, consultez Environnement d'exécution.
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 | Chrome |
Environnement d'exécution
L'environnement d'exécution de votre application de traitement locale dépend de votre device. La plate-forme Local Home est compatible avec les éléments suivants : environnements d'exécution:
- Chrome: votre application de traitement en local est exécutée dans le contexte d'un
navigateur
window
exécutant Chrome M80 ou version ultérieure, avec prise en charge ECMAScript version ES2018. - Node.js: votre application de traitement local est exécutée en tant que script dans un processus exécutant Node v10.x LTS ou version ultérieure, avec prise en charge ECMAScript version ES2018
Structure du code source
Nous vous recommandons de regrouper vos dépendances dans un seul fichier JavaScript à l'aide de la méthode configurations de bundle fournies par le SDK Local Home et empaqueter votre code source sous forme de Expression de fonction immédiatement invoquée (IIFE).
Chemin d'accès de l'exécution
Afin d'utiliser le SDK Local Home pour l'intégration de votre maison connectée, vous devez : effectuer les tâches suivantes:
1 | Configurer l'analyse configuration | Configurez la console Actions avec les paramètres nécessaires pour la L'Assistant détecte les appareils contrôlables localement. |
2 | Mettez à jour le Réponse SYNC dans votre traitement cloud | Dans votre traitement cloud, modifiez
SYNC
pour prendre en charge
Champ
otherDeviceIds que la plate-forme utilise pour établir un
chemin de traitement local. Dans ce champ, indiquez les identifiants des appareils
sont contrôlées localement.
|
3 | Implémentez le application de traitement en local | Utilisez le SDK Local Home pour créer une application JavaScript pour :
gérer IDENTIFY ,
Intents
EXECUTE et
QUERY . Pour les périphériques de proxy
hub ou pont, vous devez
gèrent également l'intent REACHABLE_DEVICES .
|
4 | Tester et déboguer votre application | Testez votre intégration (ou auto-certifiez) à l'aide de l' Google Home Test Suite. |
Avant de commencer
- Familiarisez-vous avec les principes de base de la création d'une maison connectée. action.
- Dans la section Actions console, effectuez assurez-vous d'avoir déjà un projet de maison connectée et que l'association de comptes est configurés.
- Assurez-vous d'être connecté avec le même compte Google dans Console Actions et Assistant sur votre appareil de test.
- Vous avez besoin d'un fichier Node.js pour écrire votre application. Pour installer Node.js et npm, version du nœud Administrateur est recommandé.
- Pour utiliser la dernière version du SDK Local Home, vous devez : enregistrer vos appareils de test dans l'aperçu Cast de sécurité.