1. Wprowadzenie
Czego się nauczysz
- Jak zaplanować i napisać automatyzację skryptową.
- Jak przetestować automatyzację opartą na scenariuszu.
Czego potrzebujesz
- Telefon z Androidem lub iOS z zainstalowaną aplikacją Google Home.
- Inteligentne oświetlenie lub inne urządzenie certyfikowane jako zgodne z Google Home i które można włączyć lub wyłączyć.
2. Konfigurowanie urządzenia
Jeśli Twoje urządzenie nie jest jeszcze skonfigurowane, skonfiguruj je w domu.
Sprawdź, czy urządzenie jest widoczne w aplikacji Google Home i czy możesz je w niej włączać i wyłączać.
3. Planowanie automatyzacji opartej na scenariuszu
Zaczniemy od zastanowienia się, do czego ma służyć automatyzacja oparta na scenariuszu. Są to między innymi:
- Urządzenia, które chcesz zautomatyzować.
- Zdarzenie inicjujące (lub zdarzenie) powinno wyzwalać wykonanie automatyzacji skryptu.
- Jakie dodatkowe warunki (o ile w ogóle występują) decydują o tym, czy automatyzacja skryptowa będzie uruchamiana po jej aktywowaniu.
- Czynności do wykonania.
Na potrzeby tego ćwiczenia z programowania chcemy, aby automatyzacja oparta na skryptach wykonywała 2 czynności:
- Włącz światło (lub inne urządzenie) o określonej godzinie.
- Wyłącz urządzenie o określonej godzinie.
Skoro już wiesz, do czego ma służyć automatyzacja oparta na skryptach, otworzymy edytor skryptów i zapiszemy automatyzację.
4. Napisanie automatyzacji opartej na scenariuszu
Automatyzacje oparte na skryptach są napisane w sposób deklaratywny przy użyciu języka serializacji danych YAML.
Automatyzacja oparta na scenariuszu składa się z 2 głównych sekcji:
- Metadane – nazwa automatyzacji opartej na skryptach i opis jej działania.
- Reguły automatyzacji – definiuje logikę inicjowania i działanie automatyzacji.
Metadane
Metadane naszej automatyzacji informują użytkownika, jak nazywa się ta automatyzacja i jak działa. 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ę właściwa praca. Składa się on z 3 części: początek, warunków i działań, które są oceniane w kolejności:
1 Polecenie inicjujące | 2 warunki | 3 działania |
Polecenia inicjujące to polecenia inicjujące automatyzację. Aby można było sprawdzić kolejne warunki, co najmniej 1 polecenie inicjujące musi mieć wartość | Są one opcjonalne i zawierają co najmniej 1 dodatkowe ograniczenie, które są oceniane po aktywowaniu polecenia inicjującego. Jeśli warunki mają wartość Jeśli uwzględniasz wiele ograniczeń, rozdziel je słowami kluczowymi Warunek to nie to samo co powiadomienie o zmianie stanu:
| Działania to operacje, które są wykonywane po spełnieniu warunków polecenia inicjującego i spełnienia warunków ograniczeń. |
Blok automations
naszej 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:
- Są 2 reguły
automations
. Pierwszy włącza światło, a drugi je wyłącza. - Każda reguła obejmuje jedno działanie.
on: true
oznacza włącz światło. Podobnieon: false
oznacza wyłącz światło.- Każda reguła ma 1 polecenie inicjujące
time.schedule
, które informuje automatyzację, o której godzinie ma ją zainicjować. - Ta automatyzacja nie ma warunków.
5. Pełna automatyzacja oparta na scenariuszu
Po połączeniu wszystkich tych elementów cała automatyzacja oparta na scenariuszu wygląda 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ę (patrz powyżej).
- Otwórz przeglądarkę Google Home.
- Wybierz kartę Automatyzacja przedstawioną w postaci ikony z 3 gwiazdkami:
- Kliknij + Dodaj nowy.
- W edytorze skryptów usuń szablon automatyzacji.
- 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 błędy, a następnie weryfikuj je i poprawiaj, aż nie będzie więcej błędów. Na przykład nazwa Twojego 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 obecnie włączone, wyłącz je.
- Na stronie Automatyzacja w Google Home w przeglądarce kliknij „Uruchom”. przycisk obok automatyzacji.
- Urządzenie powinno się włączyć.
Teraz przetestujmy automatyzację.
- Wyłącz urządzenie.
- Edytuj automatyzację i zmień ustawienie „Urządzenie włączone”. czas w linii 7 do godziny na pięć minut w przyszłości.
- Zmień ustawienie „Urządzenie wyłączone”. na linii 14, do czasu krótko po ustawieniu „czasu”.
- Kliknij Zweryfikuj. Napraw wszelkie błędy.
- Kliknij Zapisz.
- Upewnij się, że przełącznik Aktywuj jest w pozycji włączonej.
- Zaczekaj, aż minie 2 czasy inicjujące. Urządzenie powinno włączać się i wyłączać o określonych przez Ciebie porach.
7. Gratulacje!
Udało Ci się utworzyć automatyzację na podstawie scenariusza – super!
Dzięki temu ćwiczeniu w programie omówiliśmy, jak:
- Jak zaprojektować i napisać automatyzację.
- Jak przetestować automatyzację.
Dalsze kroki
W ramach tego ćwiczenia w Codelabs stworzyliśmy bardzo prostą automatyzację. Automatyzacja może zrobić coś więcej niż tylko planowanie przełączania przełączników zasilania. Skoro znasz już podstawy tworzenia automatyzacji, możesz zapoznać się z różnymi typami poleceń inicjujących, warunków i działań dostępnych w ekosystemie Google Home.
Wykonaj te ćwiczenia:
- Dodaj więcej poleceń inicjujących (
time.schedule
) do automatyzacji. - Zmodyfikuj automatyzację, aby włączać i wyłączać inne urządzenie w ramach tego samego harmonogramu.
- Bez usuwania poleceń inicjujących w trybie
time.schedule
zmień automatyzację, aby włączały urządzenia tylko wtedy, gdy włączone jest inne urządzenie. Zapoznaj się z przykładowymi skryptami, które używają klauzulicondition
. - Zmodyfikuj automatyzację, aby włączały urządzenia tylko wtedy, gdy ktoś jest w domu.
Więcej informacji
Więcej informacji o automatyzacji Google Home znajdziesz w dokumentacji dotyczącej automatyzacji: