Tworzenie automatyzacji opartej na scenariuszu

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:

  1. Włącz światło (lub inne urządzenie inteligentne) o określonej porze.
  2. 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:

  1. Metadane – nazwa automatyzacji skryptowej i opis jej działania.
  2. 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ówdział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 true.

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 true, działania są wykonywane. Jeśli false, działania nie są wykonywane.

Jeśli podajesz wiele ograniczeń, rozdziel je za pomocą słów kluczowych and i or, aby utworzyć pojedynczy wyrażenie logiczne. Aby działania automatyzacji mogły się odbywać, wyrażenie to musi zwracać wartość true.

Warunek to nie to samo co powiadomienie o zmianie stanu:

  • Warunek reprezentuje fakt, który musi być prawdziwy w momencie „wyzwolenia” wyzwalacza, aby działania mogły zostać wykonane.
  • Powiadomienie o zmianie stanu to zdarzenie, takie jak włączenie innego urządzenia.

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:

  1. Istnieją 2 reguły automations. Pierwszy włącza światło, a drugi je wyłącza.
  2. Każda reguła ma 1 działanie.
  3. on: true oznacza włącz światło. Podobnie on: false oznacza wyłącz światło.
  4. Każda reguła ma 1 początek time.schedule, który informuje automatyzację, o której godzinie ma się ona uruchomić.
  5. 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
  1. Skopiuj automatyzację (powyżej).
  2. Otwórz Google Home w przeglądarce.
  3. Wybierz kartę automatyzacji, która ma ikonę z 3 gwiazdkami:
    Karta Automatyzacje
  4. Kliknij + Dodaj nowy.
  5. W edytorze skryptu usuń szablon automatyzacji.
  6. Wklej automatyzację.
  7. Zastąp Desk light - Office nazwą i lokalizacją urządzenia.
  8. 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.
  9. Kliknij Zapisz.
  10. Upewnij się, że przełącznik Aktywuj pod tekstem skryptu jest w pozycji włączono: Edytor skryptów z w pełni zweryfikowaną i aktywowaną automatyzacją ze skryptem

6. Testowanie automatyzacji

  1. Upewnij się, że urządzenie jest podłączone i widoczne w aplikacji Google Home.
  2. Jeśli urządzenie jest włączone, wyłącz je.
  3. Na stronie AutomatyzacjeGoogle Home na potrzeby przeglądarki kliknij przycisk „Uruchom” obok automatyzacji.
    Przycisk uruchamiania skryptu
  4. Urządzenie powinno się włączyć.

Przetestujmy teraz automatyzację.

  1. Wyłącz urządzenie.
  2. Zmień automatyzację i na linii 7 zmień czas „urządzenie włączone” na czas o 5 minut późniejszy.
  3. Zmień czas „wyłączenia urządzenia” na linii 14 na czas tuż po czasie „włączenia”.
  4. Kliknij Zweryfikuj. Rozwiąż ewentualne błędy.
  5. Kliknij Zapisz.
  6. Upewnij się, że przełącznik Aktywuj jest w pozycji włączono.
  7. 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ą klauzuli condition.
  • 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: