1. Wprowadzenie
Czego się nauczysz
- Jak zaplanować i napisać skrypt automatyzacji.
- Jak przetestować automatyzację z wykorzystaniem skryptu.
Czego potrzebujesz
- Telefon z Androidem lub iOS z aplikacją Google Home.
- inteligentne światło lub inne urządzenie z certyfikatem Współpracuje z Google Home, które można włączać i wyłączać.
2. Konfigurowanie urządzenia
Jeśli 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łączać i wyłączać za pomocą aplikacji Home.
3. Planowanie automatyzacji ze skryptem
Zacznijmy od zastanowienia się, czego ma dotyczyć nasza automatyzacja oparta na skrypcie. Pamiętaj o tych kwestiach:
- Które urządzenia chcesz zautomatyzować.
- Jaki starter (lub zdarzenie) powinien uruchamiać automatyzację skryptową.
- Jakie dodatkowe warunki, jeśli w ogóle jakieś, decydują o tym, czy skrypt automatyzacji ma się uruchomić po jej aktywowaniu.
- Jakie działania mają być wykonywane.
W ramach tego ćwiczenia chcemy, aby automatyzacja skryptowa wykonywała 2 działania:
- Włącz światło (lub inne urządzenie inteligentne) o określonej porze.
- Wyłącz urządzenie o określonej godzinie.
Teraz, gdy już wiemy, czego ma dotyczyć nasza automatyzacja ze skryptem, otworzymy edytor skryptów i napiszemy skrypt.
4. Tworzenie automatyzacji ze skryptem
Automatyzacje skryptowe są tworzone w sposób deklaratywny za pomocą języka serializacji danych YAML.
Automatyzacja skryptowa składa się z 2 głównych sekcji:
- Metadane – nazwa automatyzacji skryptowej i opis jej działania.
- Reguły automatyzacji – określają logikę inicjowania i działanie automatyzacji.
Metadane
Metadane automatyzacji informują użytkownika, jak ona się nazywa 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ę prawdziwa praca. Składa się on z 3 części: poleceń inicjujących, warunków i działań, które są oceniane w kolejności:
1 Początkujący | 2 warunki | 3 działania |
Elementy uruchamiające inicjują automatyzację. Aby można było ocenić kolejne warunki, co najmniej 1 warunek inicjujący musi być oceniony jako | Są one opcjonalne i składają się z co najmniej 1 dodatkowego ograniczenia, które jest oceniane po aktywacji startera. Jeśli warunki dają wynik Jeśli podajesz wiele ograniczeń, rozdziel je za pomocą słów kluczowych Warunek to nie to samo co powiadomienie o zmianie stanu:
| Działania to operacje wykonywane po spełnieniu warunków inicjatora 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:
- Istnieją 2 reguły
automations
. Pierwszy włącza światło, a drugi je wyłącza. - Każda reguła ma 1 działanie.
on: true
oznacza włącz światło. Podobnieon: false
oznacza wyłącz światło.- Każda reguła ma 1 początek
time.schedule
, który informuje automatyzację, o której godzinie ma się ona uruchomić. - Ta automatyzacja nie ma warunków.
5. Pełna automatyzacja ze skryptem
Połączenie wszystkich tych elementów daje kompletną skryptowaną automatyzację:
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 przeglądarce.
- Wybierz kartę automatyzacji, która ma ikonę z 3 gwiazdkami:
- Kliknij + Dodaj nowy.
- W edytorze skryptu usuń szablon automatyzacji.
- Wklej automatyzację.
- Zastąp
Desk light - Office
nazwą i lokalizacją urządzenia. - Kliknij Zweryfikuj. Edytor skryptów podkreśla sekcje automatyzacji skryptowej, które zawierają błędy. Rozwiązuj wszelkie błędy i stale weryfikuj oraz naprawiaj kod, aż nie będzie już żadnych 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łączono:
6. Testowanie automatyzacji
- Upewnij się, że urządzenie jest podłączone i widoczne w aplikacji Google Home.
- Jeśli urządzenie jest włączone, wyłącz je.
- Na stronie Automatyzacje w Google Home na potrzeby przeglądarki kliknij przycisk „Uruchom” obok automatyzacji.
- Urządzenie powinno się włączyć.
Przetestujmy teraz automatyzację.
- Wyłącz urządzenie.
- Zmień automatyzację i na linii 7 zmień czas „urządzenie włączone” na czas o 5 minut późniejszy.
- Zmień czas „wyłączenia urządzenia” na linii 14 na czas tuż po czasie „włączenia”.
- Kliknij Zweryfikuj. Rozwiąż ewentualne błędy.
- Kliknij Zapisz.
- Upewnij się, że przełącznik Aktywuj jest w pozycji włączono.
- Zaczekaj, aż upłynie czas dwóch początkowych okresów. Urządzenie powinno się włączyć i wyłączyć o określonej przez Ciebie porze.
7. Gratulacje!
Udało Ci się utworzyć automatyzację z wykorzystaniem skryptu – świetnie!
Z tego ćwiczenia dowiesz się, jak:
- Jak zaprojektować i napisać automatyzację.
- Jak przetestować automatyzację.
Dalsze kroki
W tym ćwiczeniu w języku Python utworzyliśmy bardzo prostą automatyzację. Automatyzacje mogą robić znacznie więcej niż tylko planować przełączanie przełącznika zasilania. Teraz, gdy znasz podstawy tworzenia automatyzacji, możesz zapoznać się z różnymi typami wyzwalaczy, warunków i działań dostępnych w ekosystemie Google Home.
Wypróbuj te ćwiczenia:
- Dodaj do automatyzacji więcej elementów uruchamiających
time.schedule
. - Zmień automatyzację, aby włączać i wyłączać inne urządzenie według tego samego harmonogramu.
- Bez usuwania
time.schedule
starters zmodyfikuj automatyzację, aby włączała 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ła urządzenia tylko wtedy, gdy ktoś jest w domu.
Więcej informacji
Więcej informacji o automatyzacjach Google Home znajdziesz w dokumentacji na temat automatyzacji: