Obsługa wykrywania urządzeń

Ścieżka realizacji lokalnej jest ustanawiana, gdy Google dopasuje urządzenie, którym można sterować 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 lokalnej ścieżki realizacji, musisz dodać informacje o wykrywaniu w konsoli Actions. Musisz też zaktualizować odpowiedź SYNC z realizacji w chmurze, aby poinformować Google o urządzeniu, którym można sterować lokalnie.

Konfigurowanie informacji o konfiguracji skanowania

Aby podać informacje o wykrywaniu:

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

    Otwórz Konsolę programisty.

  2. Po lewej stronie ekranu kliknij Projekt > Cloud-to-cloud, a następnie wybierz Edytuj, aby skonfigurować integrację. Na stronie Konfiguracja i ustawienia przewiń do sekcji Realizacja lokalna i włącz to ustawienie. Wpisz podany niżej adres URL w każdym polu testowego adresu 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 w poszukiwaniu urządzenia:

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

Wymagane. Filtruj według unikalnej instancji 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 Wymagane. Pełny i jednoznaczny identyfikator usługi UPnP w formacie domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
identyfikator 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 Discovery Wymagane. Docelowy adres IP transmisji UDP. 255.255.255.255
Port transmisji Wymagane. Port docelowy dla transmisji UDP. 5555
Port nasłuchujący Wymagane. Port nasłuchiwania odpowiedzi na wykrywanie UDP. 5556
Pakiet Discovery

Wymagane. Ładunek do wysłania w transmisji UDP.

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

Aktualizowanie odpowiedzi SYNC w realizacji w chmurze

Intencja SYNC informuje Asystenta, jakie urządzenia kontroluje użytkownik i jakie są ich możliwości.

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

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

Użyj pola customData, aby określić dodatkowe dane, których Google potrzebuje do połączenia się z samodzielnym urządzeniem lub do kierowania na urządzenia końcowe za pomocą koncentratora (np. numer portu i inne informacje dotyczące protokołu).

Przykład

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

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