Zanim zaczniesz korzystać z interfejsu Automation API, zaprojektuj automatyzacje.
Określ te parametry dla każdej automatyzacji:
- Okoliczności, w których automatyzacja powinna być sugerowana użytkownikowi. Jeśli np. użytkownik dodał właśnie 3 nowe lampy do swojego domu, może być zainteresowany konkretną automatyzacją dostosowaną do sterowania oświetleniem.
- Jakie typy urządzeń są wymagane do automatyzacji. Jeśli na przykład użytkownik dodał właśnie 3 nowe lampy do domu, może być zainteresowany konkretną automatyzacją dostosowaną do sterowania oświetleniem. Przykładowe typy urządzeń o niskim zużyciu energii to
OnOffLightDevice
,ColorTemperatureLightDevice
,DimmableLightDevice
iExtendedColorLightDevice
. - które atrybuty i polecenia cech są wymagane do automatyzacji oraz czy są one obsługiwane przez interfejs Automation API na Androidzie.
- Cechy, które powinny uruchamiać automatyzację. Elementy uruchamiające są omówione w sekcji Komponenty automatyzacji na Androidzie.
- Dodatkowe warunki, które określają, czy automatyzacja powinna być uruchamiana i jakie działania mają być wykonywane.
- Przebieg wykonania automatyzacji. Czy ma być wykonywane sekwencyjnie czy równolegle? Czy potrzebujesz wielu ścieżek logicznych?
Podczas projektowania warto rozrysować przepływ 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 przez Ciebie automatyzacja jest w zasadzie „szablonem” – wszystkie struktury i urządzenia w niej zawarte są symbolami zastępczymi, które są wypełniane konkretnymi strukturami i urządzeniami każdego użytkownika, gdy „przyjmuje” on automatyzację do własnego użytku.
Oto różne rodzaje automatyzacji, które aplikacja może utworzyć za pomocą interfejsów Home API. Na stronie Tworzenie automatyzacji znajdziesz fragmenty kodu związane z tymi przykładami.
Prosta automatyzacja
Załóżmy, że musisz napisać aplikację, która tworzy automatyzację podnoszącą rolety o godzinie 8:00. Aby to zrobić, aplikacja potrzebuje listy rolet (urządzeń o typie WindowCoveringDevice
) w strukturze, które obsługują automatyzację. Listę tę może udostępnić interfejs Discovery API.
W przypadku automatyzacji, które muszą być uruchamiane o określonej godzinie, musisz też zadbać o to, aby użytkownik przypisał adres do wybranej struktury w Google Home app (GHA). W przeciwnym razie automatyzacja nie będzie znać strefy czasowej, w której ma być uruchamiana. Interfejs Discovery API może pomóc Ci określić, czy do budynku przypisano adres.
Proces wykonywania będzie wyglądać mniej więcej tak:
- Za pomocą interfejsu Discovery API zbierz listę
WindowCoveringDevice
urządzeń. - Jeśli adres ulicy nie jest wypełniony, powiadom użytkownika, że musi podać adres ulicy, i zatrzymaj wykonanie.
- W przeciwnym razie zdefiniuj automatyzację:
- Uruchom automatyzację o 8:00.
- W przypadku każdego z tych urządzeń wywołaj polecenie
upOrOpen
cechyWindowCovering
.
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 wdrażania tej aplikacji jest sprawdzenie, jakie lampy są 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 umożliwiać użytkownikowi wybór świateł, które mają migać.
Przebieg wykonania:
- Za pomocą interfejsu Discovery API zbierz listę urządzeń oświetleniowych znajdujących się w strukturze. Będą to wszystkie urządzenia o typie
OnOffLightDevice
,ColorTemperatureLightDevice
,DimmableLightDevice
lubExtendedColorLightDevice
. - Umożliwiaj wybieranie świateł, które mają migać, np. za pomocą niestandardowego panelu Ustawienia.
- Zdefiniuj automatyzację:
- Uruchamiaj automatyzację, gdy ktoś opuści teren lub na niego przybędzie, monitorując
AreaPresenceState
. - Jeśli
presenceState
wskazuje, że konstrukcja jest zajęta, migaj wybranymi światłami.
- Uruchamiaj automatyzację, gdy ktoś opuści teren lub na niego przybędzie, monitorując
Automatyzacja ogólna
Bardziej zaawansowanym przykładem automatyzacji może być automatyzacja, która prowadzi użytkownika przez proces tworzenia otwartej automatyzacji opartej na dowolnych lub wszystkich urządzeniach w domu.
Automatyzacja może najpierw poprosić użytkownika o wybranie struktury.
Następnie automatyzacja może wyświetlić wszystkie pomieszczenia w strukturze w rozwijanym widoku konspektu, w którym rozwinięcie pomieszczenia pokazuje znajdujące się w nim urządzenia. Rozwinięcie listy urządzeń powoduje wyświetlenie starterów i poleceń obsługiwanych przez to urządzenie.
Użytkownik mógł wybrać urządzenia, elementy początkowe i polecenia, których chciał użyć, a automatyzacja przeprowadzała go przez proces tworzenia automatyzacji.
Gdy wszystkie wybory i decyzje użytkownika zostaną sfinalizowane, automatyzacja wygeneruje automatyzację i zapisze ją w wybranej przez niego strukturze.
Ogólnie rzecz biorąc, taka automatyzacja musiałaby zbierać kilka zestawów danych o domu użytkownika za pomocą interfejsu Structure API na Androida, interfejsu Device API na Androida i interfejsu Discovery API.
Interfejs API | Informacje |
---|---|
Structure API |
|
Device API |
|
Discovery API |
|