Ein lokaler Ausführungspfad wird eingerichtet, wenn Google ein lokal steuerbares Gerät mit einem Gerät abgleicht, das in der SYNC
-Antwort Ihrer Cloud-Ausführung zurückgegeben wird.
Damit Google dein Gerät im lokalen Netzwerk erkennen und den lokalen Ausführungspfad einrichten kann, musst du in der Actions Console Informationen zur Erkennung hinzufügen.
Außerdem müssen Sie die SYNC
-Antwort aus Ihrem Cloud-Fulfillment aktualisieren, damit Google über das lokal steuerbare Gerät informiert wird.
Informationen zur Scankonfiguration einrichten
So geben Sie die Informationen zur Auffindbarkeit an:
Rufen Sie die Cloud-to-cloud-Integration in Google Home Developer Console auf:
Klicken Sie links auf dem Bildschirm auf Projekt > Cloud-to-Cloud und wählen Sie dann Bearbeiten für die Integration aus. Scrollen Sie auf der Seite Einrichtung und Konfiguration zu Lokale Ausführung und aktivieren Sie die Einstellung. Geben Sie die folgende URL in jedes Test-URL-Feld ein, fügen Sie Ihre Projekt-ID ein und klicken Sie auf Speichern:
https://<project-id>.web.app/local-home/index.html
Klicken Sie unter Geräteerkennung auf + Scankonfiguration hinzufügen, um eine neue Scankonfiguration hinzuzufügen.
Wählen Sie im Drop-down-Menü einen Protokolltyp für den Scan-Abgleich aus und geben Sie Werte für den Google-Scan ein.
In den folgenden Tabellen sind die Attribute aufgeführt, die Sie hinzufügen können, je nachdem, welche Protokolle Google zum Scannen nach Ihrem Gerät verwenden soll:
Attribut | Beschreibung | Beispielwert |
---|---|---|
Dienstname |
Erforderlich. Der vom Gerät veröffentlichte Dienstname im Format service.domain .
|
_http._tcp.local |
Name |
Erforderlich. Filtern Sie nach einer eindeutigen Dienstinstanz im Format |
my-device-[0-9]{4}\._http\._tcp\.local |
Attribut | Beschreibung | Beispielwert |
---|---|---|
Diensttyp |
Erforderlich. Vollständig 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 zur Identifizierung des Geräteherstellers. In der Regel die ersten drei Oktette der MAC-Adresse des Geräts. |
1A:2B:3C |
Attribut | Beschreibung | Beispielwert |
---|---|---|
Adresse zur Geräteerkennung | Erforderlich. Ziel-IP-Adresse für den UDP-Broadcast. | 255.255.255.255 |
Übertragungsport | Erforderlich. Zielport für den UDP-Broadcast. | 5555 |
Überwachungsport | Erforderlich. Überwachungsport für die UDP-Erkennungsantwort. | 5556 |
Paket zur Geräteerkennung | Erforderlich. Nutzlast, die im UDP-Broadcast gesendet werden soll. Als hexadezimal codierter String von Byte formatiert. |
48454C4C4F |
SYNC-Antwort in der Cloud-Auftragsausführung aktualisieren
Die SYNC
-Intentionen teilen Assistant mit, welche Geräte der Nutzer steuert und welche Funktionen sie haben.
Zur Unterstützung der lokalen Ausführung prüft die Local Home-Plattform die SYNC
-Antwort der Cloud-Ausführung Ihrer Smart-Home-Aktion und versucht, die Geräte-IDs im Feld otherDeviceIds
mit der Bestätigungs-ID abzugleichen, die vom IDENTIFY
-Handler zurückgegeben wird. Geräteeinträge ohne otherDeviceIds
-Feld werden von der lokalen Ausfü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 in der Antwort auf der Ebene device
angezeigt. Google kann auf jedem Gerät mit der angegebenen ID einen lokalen Ausführungspfad einrichten.
Verwenden Sie das Feld customData
, um zusätzliche Daten anzugeben, die Google benötigt, um eine Verbindung zu einem eigenständigen Gerät herzustellen oder Endgeräte über einen Hub anzusteuern (z. B. die Portnummer und andere protokollspezifische Informationen).
Beispiel
Das folgende Snippet zeigt, wie Sie Ihren SYNC
-Handler erstellen können.
{ "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": "..." } }] } }