Geräteerkennung unterstützen

Ein lokaler Ausführungspfad wird erstellt, wenn Google ein lokal steuerbares Gerät einem Gerät zuordnet, das in der SYNC-Antwort von der Cloud-Auftragsausführung zurückgegeben wird.

Damit Google Ihr Gerät im lokalen Netzwerk finden und den Pfad für die lokale Auftragsausführung erstellen kann, müssen Sie Erkennungsinformationen in der Actions Console hinzufügen. Außerdem müssen Sie die SYNC-Antwort Ihrer Cloud-Auftragsausführung aktualisieren, um Google über das lokal steuerbare Gerät zu informieren.

Informationen zur Scankonfiguration einrichten

So geben Sie die Erkennungsinformationen an:

  1. Öffnen Sie Ihr Smart-Home-Projekt in der Actions Console.
  2. Klicken Sie im linken Navigationsbereich auf Aktionen.
  3. Klicken Sie unter Lokales Home SDK konfigurieren (optional) > Konfiguration für Gerätescan hinzufügen auf Neue Scankonfiguration.
  4. Wählen Sie im Drop-down-Menü einen Protokolltyp aus, der dem Scan entspricht, und geben Sie Werte ein, die von Google gescannt werden sollen.

In den folgenden Tabellen sind die Attribute aufgeführt, die Sie basierend auf den Protokollen hinzufügen können, die Google zum Scannen nach Ihrem Gerät verwenden soll:

mDNS
Attribut Beschreibung Beispielwert
Dienstname Erforderlich. Dienstname, der vom Gerät im Format service.domain veröffentlicht wird. _http._tcp.local
Name

Erforderlich. Filtert nach einer eindeutigen Dienstinstanz im Format instance.service.domain.

Die Plattform behandelt diesen Wert als regulären Ausdruck und gibt alle übereinstimmenden Geräte zurück.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
Attribut Beschreibung Beispielwert
Diensttyp Erforderlich. Voll qualifizierte Kennung des UPnP-Dienstes im Format domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
OUI

Optional. Organisationsspezifische eindeutige Kennzeichnung.

24-Bit-Wert, der den Gerätehersteller identifiziert. In der Regel die ersten drei Oktette der MAC-Adresse des Geräts.
1A:2B:3C
UDP
Attribut Beschreibung Beispielwert
Sendeadresse Erforderlich. Ziel-IP-Adresse für den UDP-Broadcast. 255.255.255.255
Übertragungsanschluss Erforderlich. Zielport für den UDP-Broadcast. 5555
Hörerport Erforderlich. Prüfen Sie den Port auf die UDP-Erkennungsantwort. 5556
Discovery-Paket

Erforderlich. Nutzlast, die im UDP-Broadcast gesendet werden soll.

Formatiert als hexadezimal codierter Bytestring.
48454C4C4F

SYNC-Antwort in der Cloud-Auftragsausführung aktualisieren

Der Intent SYNC meldet Assistant, welche Geräte der Nutzer steuert und welche Funktionen er hat.

Zur Unterstützung der lokalen Auftragsausführung prüft die Local Home-Plattform die SYNC-Antwort der Cloud-Auftragsausführung Ihrer Smart-Home-Aktion und versucht, die Geräte-IDs im Feld otherDeviceIds der Bestätigungs-ID zuzuordnen, die vom IDENTIFY-Handler zurückgegeben wird. Geräteeinträge ohne das Feld otherDeviceIds werden von der lokalen Auftragsausführung ausgeschlossen.

Im Feld otherDeviceIds der SYNC-Antwort müssen Sie die Geräte-IDs von Smart-Home-Geräten festlegen, die lokal gesteuert werden können. Das Feld wird auf der Ebene device in der Antwort angezeigt. Google kann auf jedem Gerät mit der angegebenen ID einen lokalen Pfad für die Auftragsausführung einrichten.

Verwenden Sie das Feld customData, um zusätzliche Daten anzugeben, die Google für die Verbindung mit einem eigenständigen Gerät oder für das Targeting von Endgeräten über einen Hub benötigt (z. B. die Portnummer und andere protokollspezifische Informationen).

Beispiel

Das folgende Snippet zeigt, wie Sie den SYNC-Handler erstellen können.

Eigenständig/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": "..."
      }
    }]
  }
}