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: trueoznacza włącz światło. Podobnie- on: falseoznacza 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 - Officenazwą 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.schedulestarters 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: