Projektowanie automatyzacji

Zanim zaczniesz korzystać z interfejsu Automation API, zaprojektuj automatyzacje.

W przypadku każdej automatyzacji określ te parametry:

  • okoliczności, w których automatyzacja powinna być sugerowana użytkownikowi; Jeśli np. użytkownik właśnie dodał do domu 3 nowe lampy, może być zainteresowany automatyzacją dostosowaną do sterowania tymi lampami.
  • Które typy urządzeń są wymagane do automatyzacji. Jeśli na przykład użytkownik dodał do swojego domu 3 nowe światła, może być zainteresowany automatyzacją dostosowaną do sterowania światłem. Przykładowe typy urządzeń oświetleniowych to OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice lub ExtendedColorLightDevice.
  • Które atrybuty i polecenia cech są wymagane do automatyzacji oraz czy są obsługiwane przez interfejs Automation API.
  • Cechy, które powinny aktywować automatyzację jako elementy uruchamiające. Elementy inicjujące są omawiane w artykule Komponenty automatyzacji.
  • Dodatkowe warunki określające, czy automatyzacja powinna się faktycznie wykonać, oraz jakie działania mają zostać wykonane.
  • Przebieg automatyzacji. Czy ma być wykonywany sekwencyjnie czy równolegle? Czy potrzebujesz wielu ścieżek logicznych?

Podczas projektowania warto na diagramie przedstawić przepływ automatyzacji krok po kroku, z logiczną kolejnością poszczególnych etapów.

Po zaprojektowaniu automatyzacji użyj języka Automation DSL, aby ją utworzyć. Utworzona przez Ciebie automatyzacja jest w podstawie „szablonem” – wszystkie struktury i urządzenia w niej to puste miejsca, które są wypełniane konkretnymi strukturami 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 API Home. Fragmenty kodu związane z tymi przykładami znajdziesz na stronie Tworzenie automatyzacji.

Prosta automatyzacja

Załóżmy, że musisz napisać aplikację, która tworzy automatyzację podnoszącą rolety o 8:00 rano. Aby to zrobić, aplikacja potrzebuje listy rolet (urządzeń o typie WindowCoveringDevice) obecnych w strukturze, które obsługują automatyzacje. Listę tę można uzyskać za pomocą interfejsu Discovery API.

W przypadku automatyzacji, które muszą działać w określonym czasie, musisz też sprawdzić, czy użytkownik przypisał adres ulicy do wybranej struktury w Google Home app (GHA). W przeciwnym razie automatyzacja nie będzie wiedzieć, w jakiej strefie czasowej ma działać. Interfejs Discovery API może pomóc Ci ustalić, czy adres został przypisany do struktury.

Proces wykonania będzie wyglądał mniej więcej tak:

  1. Użyj interfejsu Discovery API, aby zebrać listę urządzeń WindowCoveringDevice.
  2. Jeśli adres ulicy nie jest wypełniony, poinformuj użytkownika, że musi podać adres ulicy, i zatrzymaj wykonywanie.
  3. W przeciwnym razie zdefiniuj automatyzację:
    1. Rozpocznij automatyzację o 8:00 rano.
    2. W przypadku każdej żaluzji wywołaj polecenie upOrOpen atrybutu WindowCovering.

Złożona automatyzacja

Wyobraź sobie aplikację, która tworzy automatyzację uruchamiającą migające światła po wykryciu ruchu.

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

Przebieg wykonywania:

  1. Za pomocą interfejsu Discovery API ułóż listę urządzeń światła obecnych w strukturze. Będą to wszystkie urządzenia typu OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice lub ExtendedColorLightDevice.
  2. Określ sposób wybierania migających świateł, np. za pomocą niestandardowego panelu ustawień.
  3. Zdefiniuj automatyzację:
    1. Uruchamiaj automatyzację za każdym razem, gdy ktoś opuszcza lub przybywa na teren obiektu, monitorując AreaPresenceState.
    2. Jeśli presenceState wskazuje, że struktura jest zajęta, migaj wybrane światła.

Automatyzacja ogólna

Przykładem bardziej zaawansowanej automatyzacji jest automatyzacja, która prowadzi użytkownika przez proces tworzenia automatyzacji otwartej na podstawie wszystkich lub niektórych urządzeń w jego domu.

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

Automatyzacja może wyświetlać wszystkie pomieszczenia w strukturze w rozwiniętym widoku zarysu, gdzie po rozwinięciu pokoju widoczne są znajdujące się w nim urządzenia. Po rozwinięciu listy urządzeń zobaczysz listę starterów i poleceń obsługiwanych przez to urządzenie.

Użytkownik mógłby wybrać urządzenia, startery i polecenia, których chce używać, a automatyzacja przeprowadziłaby go przez proces tworzenia automatyzacji.

Gdy wszystkie wybory i decyzje użytkownika zostaną ostatecznie zatwierdzone, automatyzacja wygeneruje automatyzację i zapisze ją w wybranej strukturze.

Ogólnie rzecz biorąc, taka automatyzacja wymaga zebrania kilku zbiorów danych o domu użytkownika za pomocą interfejsów Structure API, Device API i Discovery API.

Tabela 1. Interfejsy API dotyczące domu i informacje, które mogą one udostępniać
Interfejs APIInformacje
Structure API
  • Dostępne struktury
  • Jakie pomieszczenia znajdują się w budynku
Device API
  • jakie urządzenia znajdują się w wybranej strukturze.
  • lokalizacja tych urządzeń (w którym pokoju)
Discovery API
  • Jakie właściwości obsługują urządzenia
  • jakie polecenia inicjujące i polecenia są dostępne w przypadku tych cech;
  • jakie ograniczenia dotyczą parametrów tych poleceń;