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 Ihr Gerät im lokalen Netzwerk erkennen und den lokalen Ausführungspfad einrichten kann, müssen Sie in der Actions Console Informationen zur Geräteerkennung hinzufügen.
Außerdem müssen Sie die SYNC-Antwort Ihrer Cloud-Ausführung aktualisieren, um Google über das lokal steuerbare Gerät zu informieren.
Scankonfigurationsinformationen einrichten
So geben Sie die Informationen zur Geräteerkennung an:
Rufen Sie in der Google Home Developer Console Ihre Cloud-to-cloud Integration auf:
Wählen Sie links auf dem Bildschirm Projekt > Cloud-zu-Cloud aus und klicken Sie dann bei der Integration auf Bearbeiten. 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.htmlKlicken Sie unter Geräteerkennung auf + Scankonfiguration hinzufügen , um eine neue Scankonfiguration hinzuzufügen.
Wählen Sie in der Drop-down-Liste einen Protokolltyp für den Scanabgleich aus und geben Sie Werte für den Scan durch Google ein.
In den folgenden Tabellen sind die Attribute aufgeführt, die Sie hinzufügen können, basierend auf den Protokollen, die Google zum Scannen nach Ihrem Gerät verwenden soll:
| Attribut | Beschreibung | Beispielwert |
|---|---|---|
| Dienstname |
Erforderlich. Dienstname, der vom Gerät im Format
service.domain veröffentlicht wird.
|
_http._tcp.local |
| Name |
Erforderlich. Filter für eine eindeutige 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. Organizationally Unique Identifier. 24-Bit-Wert, der den Gerätehersteller identifiziert. 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 die UDP-Übertragung. | 255.255.255.255 |
| Übertragungsport | Erforderlich. Zielport für die UDP-Übertragung. | 5555 |
| Überwachungsport | Erforderlich. Überwachungsport für die UDP-Antwort zur Geräteerkennung. | 5556 |
| Paket zur Geräteerkennung | Erforderlich. Nutzlast, die in der UDP-Übertragung gesendet werden soll. Als hexadezimal codierter String von Byte formatiert. |
48454C4C4F |
`SYNC`-Antwort in der Cloud-Ausführung aktualisieren
Der SYNC-Intent meldet
Assistant, welche Geräte der Nutzer steuert und welche Funktionen diese Geräte 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 Feld otherDeviceIds werden von der lokalen Ausführung ausgeschlossen.
Im
otherDeviceIds
Feld 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 device-Ebene 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 anzusprechen (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": "..." } }] } }