Un chemin de traitement en local est établi lorsque Google associe un appareil contrôlable en local
à un appareil renvoyé dans la SYNC
réponse de votre traitement cloud.
Pour permettre à Google de détecter votre appareil sur le réseau local et d'établir le chemin de traitement en local, vous devez ajouter des informations de détection 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 configuration de l'analyse
Pour spécifier les informations de détection, procédez comme suit :
Accédez à votre intégration Cloud-to-cloud dans la Google Home Developer Console :
Accédez à Project > Cloud-to-cloud (Projet > Cloud-to-cloud) sur le côté gauche de l'écran, puis sélectionnez Edit (Modifier) pour l'intégration. Sur la page Setup and configuration (Configuration), faites défiler la page jusqu'à Local fulfillment (Traitement en local), puis activez le paramètre. Saisissez l'URL suivante dans chaque champ d'URL de test, indiquez l'ID de votre projet, puis cliquez sur Save :
https://<project-id>.web.app/local-home/index.htmlCliquez sur + Add scan configuration (+ Ajouter une configuration d'analyse) sous Device discovery (Détection d'appareils) pour ajouter une configuration d'analyse.
Sélectionnez un type de protocole de correspondance d'analyse dans le menu déroulant et 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 analyser 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. Filtre pour 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. Généralement, les trois premiers octets de l'adresse MAC de l'appareil. |
1A:2B:3C |
| Attribut | Description | Exemple de valeur |
|---|---|---|
| Adresse de détection | 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étection UDP. | 5556 |
| Paquet de détection | Obligatoire. Charge utile à envoyer dans la diffusion UDP. Formatée 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 maison connectée et tente de faire correspondre les ID d'appareil dans le champ otherDeviceIds à l'ID de validation renvoyé par le gestionnaire IDENTIFY. Les entrées d'appareil sans champ otherDeviceIds sont exclues du traitement en local.
Dans le
otherDeviceIds
champ de la SYNC réponse, vous devez définir les ID d'appareil des appareils pour maison connectée
qui peuvent être contrôlés localement. Le champ apparaît au niveau device dans la réponse. Google peut établir un chemin de traitement en local sur n'importe quel appareil avec l'ID donné.
Utilisez le champ customData pour spécifier toutes 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": "..." } }] } }