Najczęstsze pytania dotyczące inteligentnego domu

Ogólne

P: Gdzie i w jakim języku należy wdrożyć infrastrukturę realizacji zamówień Actions on Google?

O: Jeśli obsługuje ona nowoczesne protokoły SSL (TLS) i OAuth 2.0, możesz wdrożyć swoją infrastrukturę na dowolnej platformie i w dowolnym języku. Zalecamy wdrożenie jak najbliżej reszty infrastruktury, co pozwoli zwiększyć niezawodność i skrócić czas oczekiwania na wykonanie kodu na rzeczywistych urządzeniach użytkowników.


P: Czy identyfikatory urządzeń muszą być unikalne?

O: Identyfikatory powinny być unikalne. Jeśli w całej usłudze nie ma unikalnych identyfikatorów, muszą one być unikalne przynajmniej na poziomie użytkownika. Wyobraź sobie użytkownika z kilkoma domami, w których oba domy są zintegrowane z tym samym użytkownikiem. Prośba o włączenie oświetlenia w jednym domu nie powinna włączać oświetlenia o tym samym identyfikatorze w innym domu.


P: Czy nazwy urządzeń muszą być niepowtarzalne?

O: Nazwy nie muszą być niepowtarzalne, ale z czasem możemy zachęcić użytkowników do poprawienia niewłaściwych nazw po konfiguracji, aby zwiększyć wygodę użytkowników.

Oto krótki przewodnik po nazwach:

  • Nazwy powinny być nazwami, które ludzie mogą faktycznie powiedzieć.
  • Rozpoznajemy podzbiory ciągów tekstowych, więc jeśli określisz parametr „acme color light”, odpowiemy też na „acme light”.
  • Zalecamy stosowanie nazwy opisowej dla produktu oraz co najmniej 1 nazwy zdefiniowanej przez użytkownika.
  • Użytkownicy nie muszą nadawać nazw oświetleniem w pomieszczeniach, ponieważ w każdym z tych pomieszczeń są osobne sale, ale wszystkie powinny być określane za pomocą liczby mnogiej, by sterować wszystkim (na przykład dwie żarówki w kinach to „północ” i „wschodnie światło”, ale można je wydawać jak „światła”).

P: Jak często aktualizowany jest stan urządzenia?

O: Stan tymczasowy jest pobierany po wywołaniu funkcji QUERY lub EXECUTE, czyli działań inicjowanych przez użytkownika. Jeśli użytkownik zapyta „Czy dioda jest świecąca?” lub chce ją rozjaśnić, musimy sprawdzić aktualny stan urządzenia.


P: Czy można zaktualizować Home Graph bezpośrednio na podstawie bieżącego stanu urządzenia?

O: Tak. Użyj wywołania interfejsu API Report State.


Łączenie kont i protokół OAuth

O. Tak. Połączenie kont jest wymagane do połączenia urządzeń użytkownika z usługami w chmurze dostawcy.


P: W przypadku protokołu OAuth tokeny dostępu wygasają co 15,213 godziny.Czy to się zgadza?

O: Tak, ale należy przeprowadzać testy z krótkim czasem ważności, na przykład 10–20 minut. W razie potrzeby nasz klient OAuth powinien odświeżać tokeny, a testy w krótkim czasie ważności wykażą, że wszystko działa.


Przeznaczenie

P: Kiedy odbywa się SYNC?

O: SYNCHRONIZACJA ma miejsce natychmiast po zakończeniu obsługi protokołu OAuth i po wywołaniu wywołania Request Sync.


P: Dlaczego usługa SYNC nie działa?

O: Istnieje kilka typowych powodów, dla których może się to nie udać.

  • Wysyłasz niewłaściwe typy urządzeń.

    • Na przykład oczekiwany jest action.devices.types.LIGHT, a Ty wysyłasz action.devices.types.Light.
  • Wysyłasz nieobsługiwane typy urządzeń.

    • Na przykład wysyłasz action.devices.types.FLASHLIGHT – tego nie obsługujemy.
  • Wysyłasz nieprawidłowe/nieobsługiwane pola.

    • Na przykład masz pole wersji lub inne pole, którego nie ma w naszej specyfikacji.
  • Wystąpił inny problem z formatowaniem odpowiedzi SYNC.

    • Sprawdź swój nawias!
  • Występuje problem z połączeniem konta.

    • Sprawdź, czy w nagłówku uwierzytelniania żądania SYNC widoczny jest prawidłowy token dostępu.
  • Udzielanie odpowiedzi na żądanie SYNC trwa zbyt długo.

    • Sprawdź, czy odpowiadasz na żądanie SYNC w ciągu 5 sekund.

P: Czy odpowiedź „oczekująca” jest prawidłowa?

O. Jeśli urządzenia są dostępne w czasie rzeczywistym, zdecydowanie preferujemy odpowiedź powodzenia/niepowodzenia, a nie oczekiwania. Skontaktuj się z nami, jeśli uważasz, że potrzebujesz odpowiedzi „oczekującej”. Wiemy, że niektóre urządzenia o niskiej mocy, które nie działają w czasie rzeczywistym, mogą wymagać odpowiedzi oczekującej i asynchronicznego modelu wykonywania.


Testowanie i przesyłanie

P: Czy możemy skonfigurować środowisko testowe?

O: Tak, utwórz osobny projekt i przeprowadź konfigurację dla tego projektu. Możesz utworzyć tyle projektów, ile potrzebujesz, aby powiązać je z procesami i infrastrukturą programistyczną.


P: Jak często muszę aktualizować wersję roboczą projektu?

O: Wersja robocza projektu musi być odświeżana co 3 dni. Po 3 dniach agent testowy zniknie z ustawień mobile-HomeControl. Jeśli napotkasz taki problem, kliknij przycisk PRZETESTUJ WERSJĘ ROBOCZĄ swojego projektu w Actions on Google Console.


Pyt.: Czy mogę przeprowadzać testy na więcej niż 1 urządzeniu jednocześnie?

O: Actions on Google obsługuje tylko jeden punkt dostępu „wypróbuj na urządzeniu” jednocześnie. Jeśli najpierw użyjesz funkcji TEST WERSJA ROBOCZA na urządzeniach „ap1” i zsynchronizujesz urządzenia, a potem (bez odłączania ap1) bezpośrednio uruchom TEST DRAFT „ap2”, „ap1” zniknie z ustawieńmobile-HomeControl-settings. Aby rozwiązać ten problem, uruchom jeszcze raz TEST DRAFT na platformie „ap1” i odłącz „ap1” w ustawieniach.

Pamiętaj, że ten pakiet akcji będzie dostępny dla użytkownika na wszystkich Twoich urządzeniach z systemem Google Assistant. Możesz na przykład przetestować nową integrację sprzętową na głośnikach aktywowanych głosem oraz Android.


P: Zgłoszenie projektu w Actions został odrzucone z powodu nazwy lub wymowy. Co muszę zmienić?

O: Sprawdzamy wymowę imienia i nazwiska, aby upewnić się, że wymowa nie będzie już używana przez inną akcję i jest ona zgodna z wyświetlaną nazwą (zapobiega to niezgodnościom, które mogą wpłynąć na ich rejestrację w przyszłości).

Aby nadal używać tej samej nazwy, skontaktuj się z zespołem pomocy i poproś zespół ds. mowy o dodanie wyświetlanej nazwy do pliku Assistant.


Pyt.: Co się dzieje, gdy aplikacja My Action nie jest widoczna w sekcji Sterowanie domem w aplikacji Google Home?

O: Możliwe przyczyny problemu:

  • Nie kliknięto przycisku PRZETESTUJ WERSJĘ ROBOCZĄ projektu w Actions Console.
  • W ramach testowania na urządzeniu możesz mieć tylko jedno działanie naraz.
  • W aplikacji Actions Console otwórz kartę Symulator projektu w ramach akcji i przełącz przełącznik Aktywne/Nieaktywne na Nieaktywny, a następnie Aktywny.
  • Jeśli to akcja, która została Ci udostępniona, upewnij się, że wykonano wszystkie instrukcje udostępniania.
  • Test na urządzeniu wygasa po 3 dniach. Kliknij przycisk PRZETESTUJ WERSJĘ ROBOCZĄ przy swoim projekcie w Actions Console.

P: Dlaczego pojawia się błąd, gdy wpisuje w symulatorze „Porozmawiaj z: <my agent name>”?

O. Działania w inteligentnym domu nie używają nazw wywołań. Aby przetestować w symulatorze, musisz połączyć konta na telefonie z systemem Android lub iOS i zainstalowanym systemem Google Home app (GHA). Przed połączeniem kont musisz też mieć urządzenia powiązane z kontem.


P: Dlaczego podczas korzystania z symulatora pojawiają się błędy?

O: Nie możesz używać symulatora do testowania wdrożonych działań smart home. Jeśli chcesz użyć symulatora w produktowym projekcie automatyki domowej, musisz utworzyć nowy projekt na potrzeby testów.


Stan raportu

P: Czy wdrożenie stanu raportu wymaga spełnienia warunków wstępnych?

O: Projekt musi używać interfejsu Smart Home API, obsługiwać OAuth2 i zawierać cechy, w przypadku których stan ma być raportowany.


P: Jak często należy zgłaszać stan na urządzeniu?

O: Google interesuje nas przejściem i stanem terminala, ale jeśli w krótkim czasie nastąpi wiele zmian stanu (na przykład użytkownik otworzył i zamknął lodówkę 3 razy w ciągu minuty lub przesunął ciemniejszy ekran), będziemy potrzebować tylko zgłoszenia końcowego stanu.


P: Czy podczas wykonywania wywołań stanu raportu musi być wysyłany pełny stan urządzenia?

O: Częściowe aktualizacje stanu nie są obsługiwane, więc wywołania Report State zawsze powinny zawierać wszystkie dane dotyczące określonej cechy, która została zaktualizowana. Jeśli 2 cechy doprowadzą do niespójności, należy je zgłosić razem.


P: Czy Google może wysłać zapytanie do mojego urządzenia, aby uzyskać informacje o stanie (czyli zebrać dane na temat urządzenia)?

O: Nie zalecamy korzystania z tego mechanizmu zastępczego. Jeśli konieczne będzie częste odpytywanie urządzeń w przypadku tych użytkowników, nie możemy zagwarantować, jakie to będzie dodatkowe obciążenie. Pojawiają się one z wykorzystaniem nowych platform wizualnych. Oprócz nieznanego problemu z wczytywaniem będzie ono jeszcze gorsze komfort użytkowania. Uważamy, że Report State ma kluczowe znaczenie dla platformy.


P: Jakie cechy obsługuje obecnie stan raportu?

O: Wszystkie cechy publiczne z powiązanymi stanami są obsługiwane. Należy też zgłosić każdą zmianę stanu online urządzenia.

Pamiętaj, że sceny nie mają stanu. Mogą one jednak spowodować zmianę stanu lub stanów urządzeń. Jeśli jakiekolwiek urządzenie w Google Home Graph ma stan zmiany, musisz to zgłosić.


P: Czy stan raportu wymaga wysłania sygnatury czasowej?

O: Nie wymagamy sygnatury czasowej. Ostatni wysłany stan zastąpi poprzednie połączenia.


P. Czy muszę osobno podawać stan raportu, jeśli wysyłam już stan za pomocą zapytania lub wykonania?

O: Home Graph przechowuje tylko stan wysłany przez Report State. Stan zwracany w odpowiedzi na intencje EXECUTE i QUERY jest używany tylko w odpowiedziach głosowych na żądania użytkownika i nie jest zapisywany. W związku z tym polecenie Report State powinno zostać wywoływane, nawet jeśli nowy stan urządzenia został już zwrócony jako odpowiedź na intencję EXECUTE lub QUERY.


P: Jakie są konsekwencje niepełnego wdrożenia stanu raportu w podanym terminie?

O: Pogorszy to komfort użytkowników, np. GHA i platformy wizualne. W związku z tym wiele intencji QUERY zostanie wysłanych do sondażu stanowego i nie możemy zagwarantować, co przełoży się na dodatkowe obciążenie chmury partnera.


P. Jak mogę przetestować implementację stanu raportu?

O: Użyj przeglądarki Home Graph – samoobsługowego narzędzia do testowania, które pokazuje bieżące stany urządzeń zapisane w Home Graph.


P. Czy mogę użyć losowego identyfikatora requestId dla stanu raportu?

O: Zalecamy, aby partnerzy używali tego samego identyfikatora żądania, który otrzymali w żądaniu EXECUTE, jeśli Report State został aktywowany przez żądanie EXECUTE. W przeciwnym razie możesz użyć losowego identyfikatora requestId.


P: Jeśli użytkownik ma kilka urządzeń i zmienia się stan jednego z nich, czy muszę zgłaszać najnowszy stan wszystkich urządzeń?

O: Nie. Musisz tylko zgłosić stan danego urządzenia.


Sprawdzone metody

P: Jakiego rodzaju opóźnienie jest dopuszczalne?

O: Idealna długość to mniej niż 200 ms, od 2 do 5 s. Jeśli opóźnienie przekracza 5 sekund, skontaktuj się z nami.


P: Co zrobić, żeby głośnik aktywowany głosem prawidłowo reagował, gdy jest offline?

O: Zwracanie stanu offline w przypadku urządzeń, które nie są połączone z internetem. Dla tego błędu zwracamy wartość „niedostępny” teraz jako TTS. Więcej informacji znajdziesz w sekcji Błędy i wyjątki.