Tworzenie automatyzacji opartej na scenariuszu

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:

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

  1. Metadane – nazwa automatyzacji opartej na skryptach i opis jej działania.
  2. 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ść true.

Są one opcjonalne i zawierają co najmniej 1 dodatkowe ograniczenie, które są oceniane po aktywowaniu polecenia inicjującego. Jeśli warunki mają wartość true, działania są wykonywane. Jeśli mają wartość false, działania nie są wykonywane.

Jeśli uwzględniasz wiele ograniczeń, rozdziel je słowami kluczowymi and i or, aby utworzyć jedno wyrażenie logiczne. Aby można było kontynuować działania automatyzacji, to wyrażenie musi wskazywać wartość true.

Warunek to nie to samo co powiadomienie o zmianie stanu:

  • Warunek przedstawia fakt, który musi być spełniony w momencie uruchomienia polecenia inicjującego w celu wykonania działań.
  • Powiadomienie o zmianie stanu to zdarzenie takie jak włączenie innego urządzenia.

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:

  1. Są 2 reguły automations. Pierwszy włącza światło, a drugi je wyłącza.
  2. Każda reguła obejmuje jedno 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 polecenie inicjujące time.schedule, które informuje automatyzację, o której godzinie ma ją zainicjować.
  5. 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
  1. Skopiuj automatyzację (patrz powyżej).
  2. Otwórz przeglądarkę Google Home.
  3. Wybierz kartę Automatyzacja przedstawioną w postaci ikony z 3 gwiazdkami:
    Karta Automatyzacja
  4. Kliknij + Dodaj nowy.
  5. W edytorze skryptów 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 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.
  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ą skryptową

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 obecnie włączone, wyłącz je.
  3. Na stronie Automatyzacja w Google Home w przeglądarce kliknij „Uruchom”. przycisk 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ń ustawienie „Urządzenie włączone”. czas w linii 7 do godziny na pięć minut w przyszłości.
  3. Zmień ustawienie „Urządzenie wyłączone”. na linii 14, do czasu krótko po ustawieniu „czasu”.
  4. Kliknij Zweryfikuj. Napraw wszelkie błędy.
  5. Kliknij Zapisz.
  6. Upewnij się, że przełącznik Aktywuj jest w pozycji włączonej.
  7. 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ą klauzuli condition.
  • 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: