Witamy w Google Home Developer Center – nowym miejscu, z którego dowiesz się, jak tworzyć inteligentne działania domowe. Uwaga: nadal będziesz tworzyć działania w konsoli Actions.

Obsługa wykrywania urządzeń

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Lokalna ścieżka realizacji jest uzyskiwana, gdy Google połączy urządzenie, którym można sterować z urządzeniami, z urządzeniem zwróconym w odpowiedzi SYNC z Twojej realizacji w chmurze.

Aby umożliwić Google wykrycie Twojego urządzenia w sieci lokalnej i ustalenie lokalnej ścieżki realizacji, musisz dodać informacje dotyczące wykrywania w konsoli Actions. Musisz też zaktualizować odpowiedź SYNC po spełnieniu wymagań chmury, aby poinformować Google o urządzeniu, którym można sterować lokalnie.

Ustawianie informacji o konfiguracji skanowania

Aby określić informacje o wykrywaniu, wykonaj te czynności:

  1. Otwórz projekt inteligentnego domu w konsoli Actions.
  2. W panelu nawigacyjnym po lewej stronie kliknij Czynności.
  3. W sekcji Skonfiguruj lokalny pakiet SDK do użytku lokalnego (opcjonalnie) > Dodaj konfigurację skanowania urządzeń kliknij Nowa konfiguracja skanowania.
  4. Wybierz z menu odpowiedni typ protokołu skanowania i wpisz wartości, które Google ma przeskanować.

W tabelach poniżej znajdziesz atrybuty, które możesz dodać, określone na podstawie protokołów, których Google ma używać do skanowania Twojego 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 niepowtarzalną instancję usługi w formacie instance.service.domain.

Platforma traktuje ją 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. Pełny identyfikator usługi UPnP w formacie domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
interfejs użytkownika

Opcjonalnie. Unikalny identyfikator organizacji.

Wartość 24-bitowa identyfikująca producenta urządzenia. Zwykle pierwsze trzy oktety adresu MAC urządzenia.
1A:2B:3C
UDP
Atrybut Opis Przykładowa wartość
Adres transmisji Wymagany. Docelowy adres IP dla transmisji UDP. 255.255.255.255
Port transmisji Wymagany. Port docelowy dla transmisji UDP. 5555
Port nasłuchiwania Wymagany. Port nasłuchiwania odpowiedzi odpowiedzi Discovery. 5556
Pakiet Discovery

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

Formatowany jako szesnastkowy ciąg bajtów.
48454C4C4F

Zaktualizuj odpowiedź SYNC w ramach realizacji chmury

Intencja SYNC przekazuje Asystentowi informacje o tym, jakie urządzenia kontroluje i jakie ma możliwości.

Aby umożliwić realizację lokalną, platforma lokalna sprawdza odpowiedź SYNC z realizacji w chmurze Smart Action i próbuje dopasować identyfikatory urządzeń w polu otherDeviceIds do identyfikatora weryfikacji zwróconego przez moduł obsługi IDENTIFY. Wpisy na urządzeniu bez pola otherDeviceIds są wykluczone z lokalnej realizacji.

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

Pole customData pozwala określić dodatkowe dane, które Google musi połączyć z samodzielnym urządzeniem lub kierować treści na urządzenia końcowe za pomocą hubu (np. numer portu i inne informacje związane z protokołem).

Przykład

Fragment kodu poniżej pokazuje, jak utworzyć moduł obsługi żądania SYNC.

Oddzielne/Hub
{
  "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": "..."
      }
    }]
  }
}