Ein lokaler Ausführungspfad wird eingerichtet, wenn Google ein lokal steuerbares Gerät mit einem Gerät abgleicht, das in der SYNC-Antwort von deiner Cloud-Ausführung zurückgegeben wird.
Damit Google dein Gerät im lokalen Netzwerk finden und den lokalen Ausführungspfad einrichten kann, musst du in der Actions Console Informationen zur Erkennung hinzufügen.
Außerdem musst du die SYNC-Antwort von deiner Cloud-Ausführung aktualisieren, um Google über das lokal steuerbare Gerät zu informieren.
Scankonfigurationsinformationen einrichten
So geben Sie die Informationen zur Erkennung an:
Rufen Sie die Cloud-to-cloud-Integration in der Google Home Developer Console auf:
Gehe links auf dem Bildschirm zu Projekt > Cloud-to-Cloud und wähle dann für die Integration Bearbeiten aus. Scrolle auf der Seite Einrichtung und Konfiguration zu Lokale Auftragsausführung und aktiviere 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 + Scan-Konfiguration hinzufügen, um eine neue Scan-Konfiguration hinzuzufügen.
Wählen Sie im Drop-down-Menü einen Protokolltyp für den Scanabgleich aus und geben Sie Werte ein, die Google scannen soll.
In den folgenden Tabellen sind die Attribute aufgeführt, die Sie hinzufügen können, je nachdem, welche Protokolle Google zum Suchen nach Ihrem Gerät verwenden soll:
| Attribut | Beschreibung | Beispielwert |
|---|---|---|
| Dienstname |
Erforderlich. Vom Gerät veröffentlichter 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. Voll 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 den UDP-Broadcast. | 255.255.255.255 |
| Übertragungsport | Erforderlich. Zielport für den UDP-Broadcast. | 5555 |
| Lauschport | Erforderlich. Überwachungsport für die UDP-Erkennungsantwort. | 5556 |
| Paket zur Geräteerkennung | Erforderlich. Nutzlast, die im UDP-Broadcast gesendet werden soll. Formatiert als hexadezimal codierter Byte-String. |
48454C4C4F |
SYNC-Antwort in der Cloud-Auftragsausführung aktualisieren
Der Intent SYNC meldet Assistant, 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 deiner 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 das Feld otherDeviceIds werden von der lokalen Ausführung ausgeschlossen.
Im Feld otherDeviceIds der SYNC-Antwort musst du die Geräte-IDs der Smart-Home-Geräte 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.
Verwende das Feld customData, um zusätzliche Daten anzugeben, die Google benötigt, um eine Verbindung zu einem eigenständigen Gerät herzustellen oder um Endgeräte über einen Hub anzusprechen (z. B. die Portnummer und andere protokollspezifische Informationen).
Beispiel
Das folgende Snippet zeigt, wie Sie den 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": "..." } }] } }