Un chemin de traitement en local est établi lorsque Google associe un appareil contrôlable en local à un appareil renvoyé dans la réponse SYNC
de votre traitement cloud.
Pour permettre à Google de découvrir votre appareil sur le réseau local et d'établir le chemin de traitement en local, vous devez ajouter des informations de découverte dans la console Actions.
Vous devez également mettre à jour la réponse SYNC
de votre traitement cloud pour informer Google de l'appareil contrôlable en local.
Configurer les informations de la configuration d'analyse
Pour spécifier les informations de découverte :
Accédez à votre intégration Cloud-to-cloud dans Google Home Developer Console :
Accédez à Projet > Cloud à cloud sur la gauche de l'écran, puis sélectionnez Modifier pour l'intégration. Sur la page Configuration, faites défiler la page jusqu'à Traitement local et activez le paramètre. Saisissez l'URL suivante dans chaque champ "Enter your testing URL" (URL de test), indiquez l'ID de votre projet, puis cliquez sur Save (Enregistrer) :
https://<project-id>.web.app/local-home/index.html
Cliquez sur + Ajouter une configuration de recherche sous Découverte des appareils pour ajouter une configuration de recherche.
Sélectionnez un type de protocole de correspondance d'analyse dans le menu déroulant, puis saisissez les valeurs à analyser par Google.
Les tableaux suivants présentent les attributs que vous pouvez ajouter, en fonction des protocoles que vous souhaitez que Google utilise pour rechercher votre appareil :
Attribut | Description | Exemple de valeur |
---|---|---|
Nom du service |
Obligatoire. Nom du service publié par l'appareil au format service.domain .
|
_http._tcp.local |
Nom |
Obligatoire. Filtrez sur une instance de service unique au format |
my-device-[0-9]{4}\._http\._tcp\.local |
Attribut | Description | Exemple de valeur |
---|---|---|
Type de service |
Obligatoire. Identifiant complet du service UPnP au format domain:service:type:version .
|
schemas-upnp-org:service:SwitchPower:1 |
OUI |
Facultatif. Identifiant unique de l'organisation. Valeur de 24 bits identifiant le fabricant de l'appareil. Il s'agit généralement des trois premiers octets de l'adresse MAC de l'appareil. |
1A:2B:3C |
Attribut | Description | Exemple de valeur |
---|---|---|
Adresse de découverte | Obligatoire. Adresse IP de destination pour la diffusion UDP. | 255.255.255.255 |
Port de diffusion | Obligatoire. Port de destination pour la diffusion UDP. | 5555 |
Port d'écoute | Obligatoire. Port d'écoute pour la réponse de découverte UDP. | 5556 |
Paquet de détection | Obligatoire. Charge utile à envoyer dans la diffusion UDP. Formaté sous forme de chaîne d'octets encodée en hexadécimal. |
48454C4C4F |
Mettre à jour la réponse SYNC dans le traitement cloud
L'intent SYNC
indique à l'Assistant les appareils que l'utilisateur contrôle et leurs fonctionnalités.
Pour prendre en charge le traitement en local, la plate-forme Local Home vérifie la réponse SYNC
du traitement cloud de votre action pour la maison connectée et tente de faire correspondre les ID d'appareil du champ otherDeviceIds
à l'ID de validation renvoyé par le gestionnaire IDENTIFY
. Les entrées d'appareils sans champ otherDeviceIds
sont exclues de l'exécution locale.
Dans le champ otherDeviceIds
de la réponse SYNC
, vous devez définir les ID des appareils connectés de la maison qui peuvent être contrôlés localement. Le champ s'affiche au niveau device
dans la réponse. Google peut établir un chemin d'exécution local sur n'importe quel appareil avec l'ID donné.
Utilisez le champ customData
pour spécifier les données supplémentaires dont Google a besoin pour se connecter à un appareil autonome ou pour cibler des appareils finaux à l'aide d'un hub (par exemple, le numéro de port et d'autres informations spécifiques au protocole).
Exemple
L'extrait suivant montre comment créer votre gestionnaire SYNC
.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [{ "id": "123", "type": "action.devices.types.OUTLET", "traits": [ "action.devices.traits.OnOff" ], "name": { "name": "Night light" }, "willReportState": false, "otherDeviceIds": [{ "deviceId": "local-device-id" }], "customData": { "port": 5555, "authToken": "..." } }] } }