Obsługa wykrywania urządzeń

Ścieżka realizacji lokalnej jest tworzona, gdy Google dopasuje urządzenie sterowane lokalnie do urządzenia zwróconego w odpowiedzi SYNC z realizacji w chmurze.

Aby umożliwić Google wykrywanie urządzenia w sieci lokalnej i ustanowienie ścieżki realizacji lokalnej, musisz dodać informacje o wykrywaniu w konsoli Actions. Musisz też zaktualizować SYNC odpowiedź z usługi cloud fulfillment, aby poinformować Google o urządzeniu sterowanym lokalnie.

Skonfiguruj informacje o konfiguracji skanowania

Aby określić informacje o odkrywaniu:

  1. Otwórz integrację Cloud-to-cloud w Google Home Developer Console:

    Otwórz konsolę dewelopera.

  2. Po lewej stronie ekranu kliknij Project > Cloud-to-cloud (Projekt > Cloud-to-cloud), a następnie wybierz Edit (Edytuj) w przypadku integracji. Na stronie Konfiguracja przewiń do sekcji Realizacja zamówień lokalnych i włącz to ustawienie. W każdym polu adresu URL testu wpisz ten adres URL, wstaw identyfikator projektu i kliknij Zapisz:

    https://<project-id>.web.app/local-home/index.html

  3. Aby dodać nową konfigurację skanowania, w sekcji Wykrywanie urządzeń kliknij + Dodaj konfigurację skanowania.

  4. Wybierz z menu typ protokołu dopasowania skanowania i wpisz wartości, które Google ma skanować.

W tabelach poniżej znajdziesz atrybuty, które możesz dodać w zależności od protokołów, których Google ma używać do skanowania urządzenia:

mDNS
Atrybut Opis Przykładowa wartość
Nazwa usługi Wymagany. Nazwa usługi opublikowana przez urządzenie w formacie service.domain. _http._tcp.local
Nazwa

Wymagany. Filtruj unikalną instancję usługi w formacie instance.service.domain.

Platforma traktuje tę wartość jako wyrażenie regularne i zwraca wszystkie pasujące urządzenia.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
Atrybut Opis Przykładowa wartość
Typ usługi Wymagany. W pełni kwalifikowany identyfikator usługi UPnP w formacie domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
OUI

Opcjonalnie. Identyfikator OUI.

24-bitowa wartość identyfikująca producenta urządzenia. Zwykle są to pierwsze 3 oktety adresu MAC urządzenia.
1A:2B:3C
UDP
Atrybut Opis Przykładowa wartość
Adres wykrywania Wymagany. Docelowy adres IP transmisji UDP. 255.255.255.255
Port transmisji Wymagany. Port docelowy transmisji UDP. 5555
Port nasłuchujący Wymagany. Port nasłuchiwania odpowiedzi na zapytanie UDP. 5556
Pakiet informacji

Wymagany. Ładunek do wysłania w ramach transmisji UDP.

Sformatowany jako szesnastkowo zakodowany ciąg bajtów.
48454C4C4F

Aktualizowanie odpowiedzi SYNC w usłudze realizacji w chmurze

Intencja SYNC informuje Asystenta o tym, jakimi urządzeniami steruje użytkownik i jakie są ich możliwości.

Aby obsługiwać realizację lokalną, platforma Local Home sprawdza odpowiedź SYNC z realizacji w chmurze działania inteligentnego domu i próbuje dopasować identyfikatory urządzeń w polu otherDeviceIds do identyfikatora weryfikacji zwróconego przez moduł obsługi IDENTIFY. Wpisy dotyczące urządzeń bez pola otherDeviceIds są wykluczane z realizacji lokalnej.

W polu otherDeviceIds odpowiedzi SYNC musisz ustawić identyfikatory urządzeń inteligentnego domu, którymi można sterować lokalnie. Pole pojawi się w odpowiedzi na poziomie device. Google może utworzyć lokalną ścieżkę realizacji na dowolnym urządzeniu o podanym identyfikatorze.

W polu customData podaj dodatkowe dane, których Google potrzebuje do połączenia się z samodzielnym urządzeniem lub do kierowania reklam na urządzenia końcowe za pomocą huba (np. numer portu i inne informacje specyficzne dla protokołu).

Przykład

Poniższy fragment kodu pokazuje, jak utworzyć moduł obsługi SYNC.

Samodzielne/Centrala
{
  "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": "..."
      }
    }]
  }
}