Tworzenie automatyzacji opartej na scenariuszu

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:

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

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

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 true, działania zostaną wykonane. Jeśli znajdzie wartość false, działania nie zostaną wykonane.

Jeśli stosujesz kilka ograniczeń, rozdziel je słowami kluczowymi and i or, aby utworzyć jedno wyrażenie logiczne. Aby działanie automatyzacji było kontynuowane, wyrażenie musi mieć wartość true.

Warunek to nie to samo co powiadomienie o zmianie stanu:

  • Warunek to fakt, który musi być spełniony w momencie uruchomienia polecenia inicjującego, aby zostało wykonane działanie.
  • Powiadomienie o zmianie stanu to zdarzenie, np. włączenie innego urządzenia.

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:

  1. Występują 2 reguły automations. Pierwszy rodzaj włącza światło, a drugi wyłącza.
  2. Każda reguła obejmuje jedno działanie.
  3. on: true to włącz światło. Podobnie on: false oznacza wyłączenie światła.
  4. Każda reguła ma jedno polecenie inicjujące time.schedule, które informuje automatyzację, kiedy ma rozpocząć automatyzację.
  5. 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
  1. Skopiuj automatyzację (powyżej).
  2. Otwórz Google Home w internecie.
  3. Kliknij kartę automatyzacji z 3 gwiazdkami:
    Karta Automatyzacja
  4. Kliknij + Dodaj nowy.
  5. Usuń szablon automatyzacji w edytorze skryptów.
  6. Wklej automatyzację.
  7. Zastąp Desk light - Office nazwą i lokalizacją urządzenia.
  8. 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.
  9. Kliknij Zapisz.
  10. Upewnij się, że przełącznik Aktywuj pod tekstem skryptu jest w pozycji włączonej: Edytor skryptów z w pełni zweryfikowaną i aktywowaną automatyzacją skryptów

6. Testowanie automatyzacji

  1. Upewnij się, że urządzenie jest podłączone do zasilania i widoczne w aplikacji Google Home.
  2. Jeśli urządzenie jest aktualnie włączone, wyłącz je.
  3. Na stronie Automatyzacje na stronie głównej Google Home w internecie kliknij przycisk „Uruchom” obok automatyzacji.
    Przycisk uruchamiania skryptu
  4. Urządzenie powinno się włączyć.

Teraz przetestujmy automatyzację.

  1. Wyłącz urządzenie.
  2. Edytuj automatyzację i zmień czas „urządzenia włączone” w wierszu 7 na godzinę za pięć minut w przyszłości.
  3. Zmień czas wyłączenia urządzenia w wierszu 14 na czas krótko po ustawionej godzinie.
  4. Kliknij Zweryfikuj. Usuń ewentualne błędy.
  5. Kliknij Zapisz.
  6. Upewnij się, że przełącznik Aktywuj jest w pozycji włączonej.
  7. 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ą klauzuli condition.
  • 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ą: