Bienvenue dans le Centre des développeurs Google Home, la nouvelle destination pour apprendre à développer des actions pour la maison connectée. Remarque : Vous continuerez à créer des actions dans la console Actions.

Permettre la détection d'appareils

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Un chemin d'exécution local est établi lorsque Google met en correspondance un appareil contrôlable localement avec un appareil renvoyé dans la réponse SYNC de votre traitement cloud.

Pour permettre à Google de détecter votre appareil sur le réseau local et d'établir le chemin d'exécution local, vous devez ajouter des informations de découverte dans la console Actions. Vous devez également mettre à jour la réponse SYNC à partir de votre traitement cloud pour indiquer à Google 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 Configurer le SDK Home local (facultatif) > Ajouter une configuration d'analyse des appareils, cliquez sur Nouvelle configuration d'analyse.
  4. Sélectionnez un type de protocole d'analyse dans la liste déroulante, puis saisissez les valeurs que Google doit analyser.

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 sur une instance de service unique au format instance.service.domain.

La plate-forme traite cette valeur comme une expression régulière et renvoie tous 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 de l'organisation.

Valeur 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
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 Discovery

Obligatoire. Charge utile à envoyer dans la diffusion UDP.

Formaté comme une chaîne d'octets encodée en hexadécimal.
48454C4C4F

Mettre à jour la réponse SYNC dans le fulfillment cloud

L'intent SYNC indique à l'Assistant les appareils que l'utilisateur contrôle et ses fonctionnalités.

Pour accepter le fulfillment local, la plate-forme Local Home vérifie la réponse SYNC à partir du fulfillment cloud de votre action de 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 du traitement en local.

Dans le champ otherDeviceIds de la réponse SYNC, vous devez définir les ID d'appareils pour la maison connectée pouvant être contrôlés localement. Le champ apparaît au niveau device dans la réponse. Google peut établir un chemin de traitement local sur n'importe quel appareil avec l'ID donné.

Utilisez le champ customData pour spécifier toute donnée supplémentaire dont Google a besoin pour se connecter à un appareil autonome ou pour 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": "..."
      }
    }]
  }
}