1. Wprowadzenie
Czego się nauczysz
- Jak zaplanować i napisać skrypt automatyzacji.
- Jak przetestować automatyzację opartą na scenariuszach.
Czego potrzebujesz
- Telefon z Androidem lub iOS i zainstalowaną aplikacją Google Home.
- Inteligentne oświetlenie lub inne urządzenie z certyfikatem Działa z Google Home i można je włączać oraz wyłączać.
2. Konfigurowanie urządzenia
Jeśli Twoje urządzenie nie jest jeszcze skonfigurowane, zrób to w domu.
Sprawdź, czy urządzenie wyświetla się w aplikacji Google Home oraz czy możesz je włączać i wyłączać w aplikacji Home.
3. Planowanie automatyzacji skryptów
Na początek zastanów się, do czego powinna służyć automatyzacja na podstawie scenariuszy. Mogą to być m.in.:
- listę urządzeń, które chcesz zautomatyzować;
- które polecenie inicjujące (lub zdarzenie) ma uruchamiać automatyzację skryptu.
- Dodatkowe warunki (jeśli występują) decydują o tym, czy automatyzacja sterowana skryptem zostanie uruchomiona po jej uruchomieniu.
- które czynności mają zostać wykonane,
Na potrzeby tego ćwiczenia z programowania zaplanowaliśmy, aby automatyzacja za pomocą skryptów robiła 2 rzeczy:
- Włącz światło (lub inne urządzenie) o określonej godzinie.
- Wyłącz urządzenie o określonej godzinie.
Teraz, gdy już wiemy, czego dokładnie oczekujemy od automatyzacji opartej na scenariuszu, otwieramy edytor skryptów i piszemy scenariusz automatyzacji.
4. Pisanie scenariusza automatyzacji
Automatyzacje oparte na scenariuszach są pisane w sposób deklaratywny przy użyciu języka serializacji danych YAML.
Automatyzacja oparta na skryptach składa się z 2 głównych sekcji:
- Metadane – nazwa zautomatyzowanej automatyzacji i opis jej działania.
- Reguły automatyzacji – określają logikę inicjowania i działanie automatyzacji.
Metadane
Metadane naszej automatyzacji informują użytkownika, jak się nazywa automatyzacja i jaka jest jej funkcja. Metadane są określone w bloku metadata
, który wygląda tak:
metadata:
name: Scheduled light
description: Turn the light on and off at specific times
Reguły automatyzacji
Reguła automatyzacji to miejsce, w którym odbywa się prawdziwa praca. Składa się z 3 części: elementów inicjujących, warunków i działań, które są oceniane w kolejności:
1 polecenie inicjujące | 2 warunki | 3 działania |
To właśnie inicjacje inicjują automatyzację. Aby były sprawdzane co najmniej 1 polecenie inicjujące, musi być wynikiem działania | Są one opcjonalne i obejmują co najmniej 1 dodatkowe ograniczenie, które są sprawdzane po aktywowaniu polecenia inicjującego. Jeśli warunki spełnią warunki Jeśli stosujesz kilka ograniczeń, rozdziel je słowami kluczowymi Warunek to nie to samo co powiadomienie o zmianie stanu:
| Działania to operacje wykonywane po spełnieniu warunków inicjujących i warunków ograniczeń. |
Blok automations
automatyzacji zawiera 2 reguły:
automations:
- starters:
- type: time.schedule
at: 1:00 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: true
- starters:
- type: time.schedule
at: 1:05 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: false
Pamiętaj:
- Występują 2 reguły
automations
. Pierwszy rodzaj włącza światło, a drugi wyłącza. - Każda reguła obejmuje jedno działanie.
on: true
to włącz światło. Podobnieon: false
oznacza wyłączenie światła.- Każda reguła ma jedno polecenie inicjujące
time.schedule
, które informuje automatyzację, kiedy ma rozpocząć automatyzację. - Ta automatyzacja nie ma żadnych warunków.
5. Pełna automatyka oparta na scenariuszu
Po połączeniu tych wszystkich elementów wygląda to tak:
metadata:
name: Scheduled light
description: Turn the light on and off at specific times
automations:
- starters:
- type: time.schedule
at: 1:00 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: true
- starters:
- type: time.schedule
at: 1:05 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: false
- Skopiuj automatyzację (powyżej).
- Otwórz Google Home w internecie.
- Kliknij kartę automatyzacji z 3 gwiazdkami:
- Kliknij + Dodaj nowy.
- Usuń szablon automatyzacji w edytorze skryptów.
- Wklej automatyzację.
- Zastąp
Desk light - Office
nazwą i lokalizacją urządzenia. - Kliknij Zweryfikuj. Edytor skryptów podkreśla te sekcje automatyzacji skryptu, które zawierają błędy. Napraw wszystkie znalezione błędy, a następnie sprawdzaj ich poprawność i napraw, dopóki nie będzie więcej błędów. Na przykład nazwa urządzenia może być inna. W takim przypadku możesz użyć funkcji autouzupełniania, aby wybrać prawidłową nazwę urządzenia.
- Kliknij Zapisz.
- Upewnij się, że przełącznik Aktywuj pod tekstem skryptu jest w pozycji włączonej:
6. Testowanie automatyzacji
- Upewnij się, że urządzenie jest podłączone do zasilania i widoczne w aplikacji Google Home.
- Jeśli urządzenie jest aktualnie włączone, wyłącz je.
- Na stronie Automatyzacje na stronie głównej Google Home w internecie kliknij przycisk „Uruchom” obok automatyzacji.
- Urządzenie powinno się włączyć.
Teraz przetestujmy automatyzację.
- Wyłącz urządzenie.
- Edytuj automatyzację i zmień czas „urządzenia włączone” w wierszu 7 na godzinę za pięć minut w przyszłości.
- Zmień czas wyłączenia urządzenia w wierszu 14 na czas krótko po ustawionej godzinie.
- Kliknij Zweryfikuj. Usuń ewentualne błędy.
- Kliknij Zapisz.
- Upewnij się, że przełącznik Aktywuj jest w pozycji włączonej.
- Zaczekaj na zakończenie dwóch czasów inicjowania. Urządzenie powinno się włączyć, a potem wyłączyć o określonych przez Ciebie porach.
7. Gratulacje!
Udało Ci się utworzyć automatyzację opartą na scenariuszu – super!
Dzięki temu ćwiczeniu z programowania wiesz już, jak:
- Jak zaprojektować i pisać automatyzację.
- Jak przetestować automatyzację.
Dalsze kroki
W tym ćwiczeniu z programowania stworzyliśmy bardzo prostą automatyzację. Automatyzacje mogą zrobić o wiele więcej niż tylko planować przełączanie przełącznika zasilania. Znasz już podstawy tworzenia automatyzacji. Teraz poznasz różne typy poleceń inicjujących, warunków i działań dostępnych w ekosystemie Google Home.
Spróbuj wykonać następujące ćwiczenia:
- Dodaj do automatyzacji więcej poleceń inicjujących
time.schedule
. - Zmodyfikuj automatyzację tak, aby włączać i wyłączać kolejne urządzenia o tym samym harmonogramie.
- Bez usuwania poleceń inicjujących
time.schedule
zmodyfikuj automatyzację tak, aby urządzenia włączały się tylko wtedy, gdy inne urządzenie jest włączone. Zapoznaj się z przykładowymi skryptami, które używają klauzulicondition
. - Zmodyfikuj automatyzację tak, aby urządzenia włączały się tylko wtedy, gdy ktoś jest w domu.
Więcej informacji
Aby dowiedzieć się więcej o automatyzacji Google Home, zapoznaj się z jej dokumentacją: