Rozwiązywanie problemów

Przykładowa aplikacja

Jeśli podczas korzystania z interfejsów Home API napotkasz problemy, możesz zebrać dzienniki w celu dalszego debugowania. Zbieranie dzienników z urządzenia mobilnego wymaga Xcode. Jeśli potrzebujesz pomocy Google, zbierz logi z urządzenia z iOS i huba, a potem otwórz zgłoszenie w narzędziu do śledzenia problemów, podając odpowiednie informacje i logi.

Zbieranie logów z iOS

Podczas wszystkich czynności związanych z Xcode urządzenie mobilne musi być połączone z komputerem lokalnym.

Dzienniki aplikacji i pakiety SDK są wyświetlane i zbierane bezpośrednio w konsoli Xcode. Gdy urządzenie mobilne jest połączone z komputerem lokalnym i uruchamiasz aplikację w Xcode, konsola automatycznie rejestruje i przesyła strumieniowo dzienniki standardowego wyjścia (stdout) i standardowego błędu (stderr) z warstwy aplikacji i zintegrowanego pakietu Home SDK. Umożliwia to łatwe monitorowanie procesów inicjowania w czasie rzeczywistym, interakcji z interfejsem API i zdarzeń pakietu SDK podczas programowania i debugowania.

Zbieranie logów rozszerzeń z Xcode

Jeśli podczas korzystania z interfejsów Home API napotkasz problemy, możesz zebrać dzienniki, aby dokładniej je zbadać.

  1. W Xcode na pasku menu u góry kliknij Debug (Debuguj), a potem Attach to Process by PID or Name (Dołącz do procesu według identyfikatora PID lub nazwy).

    Debugowanie przykładowej aplikacji

  2. W sekcji PID or Process Name (Identyfikator procesu lub nazwa procesu) wybierz MatterExtension i kliknij Dołącz.

    Przykładowe rozszerzenie z linkiem do aplikacji

  3. Jeśli klikniesz prawy górny róg, zobaczysz komunikat Czekam na dołączenie do MatterAddDeviceExtension na iPhonie.

    Stan oczekiwania przykładowej aplikacji

  4. Kliknij kartę i wybierz MatterAddExtension.

    Przykładowa aplikacja dodająca rozszerzenie Matter

  5. Konsola zarejestruje dziennik rozszerzenia.

Sherlog: śledzenie zdarzeń w różnych warstwach

Sherlog to usługa śledzenia w czasie rzeczywistym, która zapewnia kompleksowy wgląd w interakcje między infrastrukturą Google a usługami w chmurze partnerów.

Wymaganie wstępne: śledzenie wymaga użycia wspólnego konta koordynowanego przez Google (np. konta zarejestrowanego w GReg lub konta demonstracyjnego).

Główny cel: debugowanie usterek funkcjonalnych i problemów z integracją między chmurami (C2C), np. błędów łączenia kont lub nieprawidłowych stanów urządzeń, bez konieczności wprowadzania zmian w kodzie produkcyjnym.

Możliwości: udostępnia pełne wykresy wywołań RPC, ładunki żądań i odpowiedzi oraz metadane dotyczące intencji SYNC, EXECUTE, QUERY i Account Linking.

Dzienniki urządzenia Fuchsia Hub

Za pomocą tej metody możesz zbierać logi z tych urządzeń z Fuchsią:* Google Nest Hub (2 generacji)* Google Nest Hub Max

Aby włączyć centrum pobierania logów lokalnych:

  1. Wyślij e-maila z numerem seryjnym i modelem urządzeń do swojego technicznego menedżera konta Google. Znajdują się one małymi literami pod urządzeniem.
  2. Gdy Twoje konto zostanie dodane do listy dozwolonych, musisz włączyć tę funkcję, wykonując te czynności:
    • Z centrum:
      1. Przesuń palcem z góry ekranu w dół
      2. Kliknij ikonę Ustawienia .
      3. Sprawdź wersję Fuchsii: na urządzeniu Nest Hub (2 generacji) otwórz Informacje o urządzeniu > Informacje techniczne > Wersja Fuchsi.
      4. Kliknij 7 razy „Wersja Fuchsia”. Spowoduje to włączenie opcji programisty.
      5. Wróć do menu najwyższego poziomu
      6. Kliknij „Opcje programisty”.
      7. Kliknij „Logowanie partnera”
    • Funkcja będzie włączona przez 24 godziny. Następnie ponownie włącz funkcję rejestrowania od kroku 5.
  3. Uzyskaj adres IP huba:
    • Na hubie z ekranem:
      1. Przesuń palcem z góry ekranu w dół
      2. Kliknij ikonę Ustawienia .
      3. Znajdź adres IP urządzenia: na urządzeniu Nest Hub (2 generacji) otwórz Informacje o urządzeniu > Informacje techniczne > Adres IP.
    • W aplikacji Google Home na telefonie:
    • Kliknij urządzenie, aby otworzyć stronę z informacjami o nim.
    • Kliknij ikonę Ustawienia , aby otworzyć stronę ustawień.
    • Znajdź adres IP urządzenia: otwórz Informacje o urządzeniu > Informacje techniczne > Adres IP.
  4. Aby pobrać logi z huba, wyślij żądanie HTTP GET do huba z komputera w tej samej sieci Wi-Fi.
    • Zanotuj port i ścieżkę punktu końcowego:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • Połączenie może być otwarte tylko przez minutę, ale dane pobrane z bufora zwykle obejmują zdarzenia z ostatnich 20–30 minut.
      • Najlepiej jest wyodrębniać dzienniki tą metodą bezpośrednio po zakończeniu procedury testowej, aby mieć pewność, że bufor zawiera treści związane z testem (podobnie jak w przypadku raportów o błędach na Androidzie).

Automatyzacja

Wykrywanie krawędzi

Automatyzacje w ekosystemie Google Home mają funkcję wykrywania zmian, która sprawdza, czy starter aktywuje się tylko wtedy, gdy nastąpi rzeczywista zmiana stanu, a nie aktualizacja stanu, która po prostu powtarza poprzedni stan urządzenia.

Jeśli na przykład włączenie światła jest działaniem początkowym, wykrywanie krawędzi sprawdza, czy działanie początkowe jest aktywowane tylko wtedy, gdy urządzenie oświetleniowe przechodzi ze stanu wyłączonego do włączonego, a nie ze stanu włączonego do włączonego (bez zmiany).

Automatyzacja nie działa zgodnie z oczekiwaniami

Jeśli po uwzględnieniu wykrywania krawędzi automatyzacja nie działa zgodnie z oczekiwaniami:

  1. Sprawdź każde urządzenie, aby upewnić się, że działa prawidłowo niezależnie od automatyzacji.

  2. Sprawdź wykres automatyzacji, porównując go z językiem DSL automatyzacji, aby wykryć potencjalnie nieprawidłowe założenia.

  3. Obserwuj stan urządzenia w aplikacji Google Home podczas wykonywania automatyzacji.

  4. Sprawdź, czy wszystkie urządzenia, do których odwołuje się automatyzacja, znajdują się w strukturze, w której powinny być. Usunięcie urządzenia, od którego zależy automatyzacja, może mieć niepożądane konsekwencje. Zobacz Wpływ usunięcia urządzenia na automatyzacje.

Automatyzacja uruchamia się, gdy nie powinna

Jeśli automatyzacja uruchamia się w nieodpowiednim momencie, sprawdź kryteria rozpoczęcia. Może być konieczne dodanie dodatkowej logiki, aby mieć pewność, że zmiana stanu zostanie zarejestrowana tylko raz i tylko raz uruchomi automatyzację.

Automatyzacja nie kompiluje się

Upewnij się, że aplikacja zawiera wszystkie niezbędne importy, w tym każdą klasę odpowiadającą różnym typom węzłów, a także cechy, do których się odwołujesz.

Tworzenie automatyzacji nie przechodzi weryfikacji

Jeśli tworzenie automatyzacji nie przejdzie weryfikacji, pojawi się komunikat z ostrzeżeniem lub błędem zawierający informacje o problemie. Więcej informacji znajdziesz w dokumentacji referencyjnej.ValidationIssueType

OAuth

Jeśli masz już klienta OAuth

Jeśli masz już zweryfikowanego klienta OAuth dla opublikowanej aplikacji, możesz go użyć do testowania interfejsów Home API.

Google Home Developer Console nie jest wymagana do testowania i korzystania z interfejsów Home API. Aby opublikować aplikację, musisz mieć zatwierdzoną Developer Consolerejestrację, nawet jeśli masz zweryfikowanego klienta OAuth z innej integracji.

Pamiętaj o tych kwestiach:

  • Jeśli używasz istniejącego klienta OAuth, obowiązuje limit 100 użytkowników. Informacje o dodawaniu użytkowników testowych znajdziesz w sekcjiGenerowanie identyfikatora klienta OAuth. Niezależnie od weryfikacji OAuth interfejsy Home API mają limit 100 użytkowników, którzy mogą przyznawać uprawnienia Twojej aplikacji. To ograniczenie zostanie zniesione po zakończeniu rejestracji w Developer Console.

  • Developer Console registration należy przesłać do zatwierdzenia, gdy chcesz ograniczyć przyznawanie uprawnień do typów urządzeń za pomocą OAuth w ramach przygotowań do zaktualizowania aplikacji za pomocą interfejsów Home API.

W przypadku aplikacji Google Cloud, które wciąż czekają na weryfikację OAuth, użytkownicy nie mogą ukończyć procesu OAuth do czasu zakończenia weryfikacji. Próby przyznania uprawnień zakończą się niepowodzeniem z tym błędem:

Access blocked: <Project Name> has not completed the Google verification process.