Permettre la détection d'appareils

Un chemin de traitement local est établi lorsque Google établit une correspondance avec un appareil pouvant être contrôlé localement. à un appareil renvoyé dans le SYNC de votre traitement cloud.

Pour permettre à Google de détecter votre appareil sur le réseau local et d'établir le chemin de fulfillment 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 autoriser Google connaît l'appareil contrôlable localement.

Configurer les informations de configuration d'analyse

Pour spécifier les informations de découverte, procédez comme suit:

  1. Ouvrez votre projet de maison connectée dans la console Actions.
  2. Dans le panneau de navigation de gauche, cliquez sur Actions.
  3. Sous Configure local home SDK (optional) (Configurer le SDK Local Home (facultatif)) > Add device scan configuration (Ajouter une configuration d'analyse d'appareil), puis cliquez sur New scan config (Nouvelle configuration d'analyse).
  4. Sélectionnez un type de protocole correspondant à l'analyse dans la liste déroulante, puis saisissez des valeurs pour à Google de le scanner.

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:

mDNS
Attribut Description Exemple de valeur
Nom du service Obligatoire. Nom de service publié par l'appareil au format service.domain _http._tcp.local
Nom

Obligatoire. Filtrez les données sur une instance de service unique dans le format instance.service.domain.

La plate-forme traite cette valeur comme une expression régulière et renvoie tout élément les appareils correspondants.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
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 organisationnel :

Valeur 24 bits identifiant le fabricant de l'appareil. En règle générale, les trois premiers octets de l’adresse MAC de l’appareil.
1A:2B:3C
UDP
Attribut Description Exemple de valeur
Adresse de diffusion 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écouverte

Obligatoire. Charge utile à envoyer dans la diffusion UDP.

Format d'une 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 quels appareils l'utilisateur contrôle et ses fonctionnalités.

Pour permettre le traitement en local, la plate-forme Local Home vérifie la réponse SYNC depuis le traitement cloud de votre Action pour la maison connectée et tente de faire correspondre l'appareil ID du champ otherDeviceIds à l'ID de validation renvoyé par IDENTIFY. Les entrées d'appareil sans champ otherDeviceIds sont exclus du traitement en local.

Dans otherDeviceIds de la réponse SYNC, vous devez définir les ID des appareils de la maison connectée d'appareils contrôlés localement. Le champ s'affiche au niveau du device dans la réponse. Google peut établir un chemin de traitement en local sur n'importe quel appareil doté de l'identifiant indiqué.

Utilisez le champ customData pour indiquer les données supplémentaires dont Google a besoin. Se connecter à un appareil autonome ou cibler des appareils finaux via un hub (par exemple, le numéro de port et d'autres informations spécifiques au protocole).

Exemple

L'extrait de code suivant montre comment créer votre gestionnaire SYNC.

Autonome/Hub
{
  "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": "..."
      }
    }]
  }
}