Tworzenie automatyzacji na urządzeniu z Androidem

Zanim zaczniesz korzystać z interfejsu Automation API, musisz zaprojektować automatyzacje.

Określ te parametry dla każdej automatyzacji:

  • Okoliczności, w których automatyzacja powinna zostać zasugerowana użytkownikowi. Jeśli na przykład użytkownik dodał właśnie 3 nowe lampy w domu, może być zainteresowany automatyzacją dostosowaną do sterowania oświetleniem.
  • jakie typy urządzeń są wymagane do automatyzacji; Jeśli na przykład użytkownik właśnie dodał w domu 3 nowe lampy, może być zainteresowany konkretną automatyzacją dostosowaną do sterowania oświetleniem. Przykładowe typy urządzeń oświetleniowych to OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice i ExtendedColorLightDevice.
  • jakie atrybuty i polecenia cech są wymagane do automatyzacji oraz czy są one obsługiwane przez interfejs Automation API na Androidzie.
  • Cechy, które powinny aktywować automatyzację jako elementy inicjujące. Elementy uruchamiające są omówione w sekcji Komponenty automatyzacji na Androidzie.
  • Dodatkowe warunki, które określają, czy automatyzacja powinna zostać uruchomiona i jakie działania mają zostać wykonane.
  • Przepływ wykonywania automatyzacji. Czy powinny być wykonywane sekwencyjnie czy równolegle? Czy potrzebujesz wielu ścieżek logicznych?

Podczas projektowania warto narysować schemat automatyzacji, węzeł po węźle, z logiką wymaganą na każdym etapie.

Po zaprojektowaniu automatyzacji użyj języka DSL automatyzacji, aby ją utworzyć. Utworzona automatyzacja jest zasadniczo „szablonem” – wszystkie domy i urządzenia w niej zawarte są obiektami zastępczymi i są wypełniane konkretnymi domami i urządzeniami każdego użytkownika, gdy „przyjmuje” on automatyzację do własnego użytku.

Poniżej znajdziesz różne rodzaje automatyzacji, które aplikacja może utworzyć za pomocą interfejsów Home API. Fragmenty kodu dotyczące tych przykładów znajdziesz na stronie Tworzenie automatyzacji.

Prosta automatyzacja

Załóżmy, że chcesz napisać aplikację, która tworzy automatyzację podnoszącą rolety o 8:00. Aby to zrobić, aplikacja potrzebuje listy rolet (urządzeń typu WindowCoveringDevice) w domu, które obsługują automatyzacje. Listę tę może dostarczyć interfejs Discovery API.

W przypadku automatyzacji, które muszą być uruchamiane o określonej godzinie, musisz też upewnić się, że użytkownik przypisał adres do wybranego domu (podczas tworzenia domu lub w Google Home app (GHA)). W przeciwnym razie automatyzacja nie będzie znała strefy czasowej, w której ma być uruchamiana. Interfejs Discovery API może pomóc Ci ustalić, czy do domu został przypisany adres.

Przebieg wykonania wyglądałby mniej więcej tak:

  1. Za pomocą interfejsu Discovery API zbierz listę urządzeń WindowCoveringDevice.
  2. Jeśli adres nie jest wypełniony, powiadom użytkownika, że musi podać adres (np. w GHA), i zatrzymaj wykonywanie.
  3. W przeciwnym razie zdefiniuj automatyzację:
    1. Uruchom automatyzację o 8:00.
    2. Dla każdej rolety wywołaj polecenie upOrOpen cechy WindowCovering.

Złożona automatyzacja

Wyobraź sobie aplikację, która tworzy automatyzację powodującą miganie świateł po wykryciu ruchu.

Jednym z pierwszych zadań podczas wdrażania tej aplikacji jest sprawdzenie, jakie oświetlenie jest dostępne w domu użytkownika, za pomocą interfejsu Discovery API. Dzięki tym informacjom aplikacja może teraz wyświetlać dostępne światła i ewentualnie umożliwiać użytkownikowi wybór, które z nich mają migać.

Przepływ wykonywania:

  1. Za pomocą interfejsu Discovery API zbierz listę urządzeń oświetleniowych obecnych w strukturze, czyli wszystkich urządzeń o typie OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice lub ExtendedColorLightDevice.
  2. Zapewnij możliwość wyboru migających świateł, na przykład za pomocą niestandardowego panelu ustawień.
  3. Zdefiniuj automatyzację:
    1. Uruchamiaj automatyzację, gdy ktoś opuści lokal lub do niego wejdzie, monitorując AreaPresenceState.
    2. Jeśli presenceState wskazuje, że budynek jest zajęty, mrugaj wybranymi światłami.

Automatyzacja ogólna

Przykładem bardziej zaawansowanej automatyzacji jest taka, która przeprowadza użytkownika przez proces tworzenia otwartej automatyzacji na podstawie dowolnych lub wszystkich urządzeń w domu.

Automatyzacja może najpierw poprosić użytkownika o wybranie domu.

Następnie automatyzacja może wyświetlić wszystkie pomieszczenia w domu w rozwijanym widoku konspektu, w którym po rozwinięciu pomieszczenia wyświetlane są znajdujące się w nim urządzenia. Po rozwinięciu urządzenia wyświetlą się obsługiwane przez nie polecenia i polecenia inicjujące.

Użytkownik może wybrać urządzenia, elementy inicjujące i polecenia, których chce użyć, a automatyzacja przeprowadzi go przez proces tworzenia automatyzacji.

Gdy użytkownik dokona ostatecznych wyborów i decyzji, automatyzacja zostanie wygenerowana i zapisana w wybranej strukturze.

Ogólnie rzecz biorąc, taka automatyzacja musiałaby zebrać kilka zestawów danych o domu użytkownika za pomocą interfejsów Structure API na Androida, Device API na Androida i Discovery API.

Tabela 1. Interfejsy Home API i informacje, które mogą udostępniać
Interfejs APIInformacje
Structure API
  • Jakie struktury są dostępne
  • jakie pomieszczenia znajdują się w domu,
Device API
  • jakie urządzenia znajdują się w wybranym domu,
  • gdzie te urządzenia się znajdują (w którym pomieszczeniu);
Discovery API
  • Jakie cechy są obsługiwane przez urządzenia
  • jakie polecenia i polecenia inicjujące są dostępne w przypadku tych cech;
  • jakie ograniczenia dotyczą parametrów tych poleceń.