Skriptbasierte Automatisierung erstellen

1. Einführung

Lerninhalte

  • Informationen zum Planen und Schreiben eines Scripts für eine scriptbasierte Automatisierung.
  • Scriptbasierte automatisierte Abläufe testen

Voraussetzungen

  • Ein Android- oder iOS-Smartphone mit der Google Home App
  • Eine intelligente Glühbirne oder ein anderes Gerät, das für „Funktioniert mit Google Home“ zertifiziert ist und ein- und ausgeschaltet werden kann.

2. Gerät einrichten

Wenn Ihr Gerät noch nicht eingerichtet ist, richten Sie es in Ihrem Zuhause ein.

Prüfen Sie, ob das Gerät in der Google Home App angezeigt wird und ob Sie es über die Home App ein- und ausschalten können.

3. Scriptbasierte Automatisierung planen

Überlegen wir uns zuerst, was unsere scriptbasierte Automatisierung tun soll. Dazu gehören Überlegungen wie:

  • Welche Geräte Sie automatisieren möchten.
  • Welcher Auslöser (oder welches Ereignis) soll die Ausführung der skriptbasierten Automatisierung auslösen?
  • Welche zusätzlichen Bedingungen steuern, ob die skriptbasierte Automatisierung nach dem Auslösen ausgeführt wird.
  • Welche Aktionen ausgeführt werden sollen.

Für dieses Codelab soll die scriptbasierte Automatisierung zwei Dinge tun:

  1. Sie können die Lampe (oder ein anderes Smart-Home-Gerät) zu einer bestimmten Zeit einschalten.
  2. Ihr Gerät zu einer bestimmten Zeit ausschalten

Da wir jetzt genau wissen, was unsere scriptbasierte Automatisierung tun soll, öffnen wir den Script-Editor und erstellen die scriptbasierte Automatisierung.

4. Scriptbasierte Automatisierung schreiben

Scriptbasierte automatisierte Abläufe werden deklarativ mit der YAML-Datenserialisierungssprache geschrieben.

Eine scriptbasierte Automatisierung besteht aus zwei Hauptabschnitten:

  1. Metadaten: Der Name der scriptbasierten Automatisierung und eine Beschreibung ihrer Funktion.
  2. Automatisierungsregeln: Hiermit wird die Auslöselogik und das Verhalten der Automatisierung definiert.

Metadaten

Die Metadaten unserer Automatisierung geben dem Nutzer Aufschluss darüber, wie sie heißt und was sie tut. Metadaten werden im metadata-Block angegeben, der so aussieht:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

Automatisierungsregeln

In einer Automatisierungsregel wird die eigentliche Arbeit erledigt. Sie besteht aus drei Teilen: Auslösern, Bedingungen und Aktionen, die nacheinander ausgewertet werden:

1 Auslöser

2 Bedingungen

3 Aktionen

Auslöser initiieren die Automatisierung. Mindestens ein Auslöser muss true ergeben, damit nachfolgende Bedingungen ausgewertet werden.

Diese sind optional und bestehen aus einer oder mehreren zusätzlichen Einschränkungen, die nach der Aktivierung eines Auslösers ausgewertet werden. Wenn die Bedingungen zu true führen, werden die Aktionen ausgeführt. Wenn sie auf false verweisen, werden die Aktionen nicht ausgeführt.

Wenn Sie mehrere Einschränkungen angeben, trennen Sie sie mit den Keywords and und or, um einen einzigen logischen Ausdruck zu bilden. Dieser Ausdruck muss in true aufgelöst werden, damit die Aktionen einer Automatisierung fortgesetzt werden.

Eine Bedingung ist nicht dasselbe wie eine Benachrichtigung über eine Statusänderung:

  • Eine Bedingung stellt eine Tatsache dar, die zum Zeitpunkt des Auslösens des Auslösers wahr sein muss, damit die Aktionen ausgeführt werden.
  • Eine Benachrichtigung über eine Statusänderung ist ein Ereignis, z. B. wenn ein anderes Gerät eingeschaltet wird.

Aktionen sind Vorgänge, die ausgeführt werden, wenn der Auslöser und alle Einschränkungsbedingungen erfüllt sind.

Der Block automations unserer Automatisierung enthält zwei Regeln:

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

Wichtige Hinweise:

  1. Es gibt zwei automations-Regeln. Mit dem ersten wird die Lampe eingeschaltet, mit dem zweiten ausgeschaltet.
  2. Jede Regel hat eine einzelne Aktion.
  3. on: true bedeutet Licht an. on: false bedeutet Licht aus.
  4. Jede Regel hat einen einzelnen time.schedule-Auslöser, der der Automatisierung mitteilt, wann sie gestartet werden soll.
  5. Diese Automatisierung enthält keine Bedingungen.

5. Die vollständige scriptbasierte Automatisierung

Zusammengenommen sieht der vollständige scriptbasierte automatisierte Ablauf so aus:

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. Kopieren Sie die Automatisierung (siehe oben).
  2. Rufen Sie die Google Home-Webversion auf.
  3. Wählen Sie den Tab „Automatisierungen“ aus, der durch ein Symbol mit drei Sternen gekennzeichnet ist:
    Tab „Automatisierungen“
  4. Klicken Sie auf + Neuen Vergleich hinzufügen.
  5. Löschen Sie die Automatisierungsvorlage im Script-Editor.
  6. Fügen Sie die Automatisierung ein.
  7. Ersetzen Sie Desk light - Office durch den Namen und den Standort Ihres Geräts.
  8. Klicke auf Validieren. Im Script-Editor werden Abschnitte Ihrer scriptbasierten Automatisierung, die Fehler enthalten, unterstrichen. Beheben Sie alle auftretenden Fehler und validieren und beheben Sie sie so lange, bis keine Fehler mehr auftreten. Der Gerätename kann beispielsweise abweichen. In diesem Fall können Sie mit der Autovervollständigungsfunktion einen gültigen Gerätenamen auswählen.
  9. Klicken Sie auf Speichern.
  10. Der Schalter Aktivieren unter dem Text des Scripts muss auf An gestellt sein: Script-Editor mit vollständig validiertem und aktiviertem scriptbasiertem Ablauf

6. Automatisierung testen

  1. Achten Sie darauf, dass Ihr Gerät angeschlossen und in der Google Home App sichtbar ist.
  2. Wenn das Gerät eingeschaltet ist, schalten Sie es aus.
  3. Klicken Sie in der Google Home-Webversion auf der Seite Automatisierungen neben der Automatisierung auf die Schaltfläche „Ausführen“.
    Schaltfläche „Script ausführen“
  4. Das Gerät sollte eingeschaltet werden.

Testen wir jetzt die Automatisierung.

  1. Schalte das Gerät aus.
  2. Bearbeiten Sie die Automatisierung und ändern Sie die Zeit für „Gerät einschalten“ in Zeile 7 auf eine Zeit, die fünf Minuten in der Zukunft liegt.
  3. Ändern Sie die Uhrzeit für „device off“ (Gerät aus) in Zeile 14 in eine Uhrzeit kurz nach der „on time“ (Einschaltzeit).
  4. Klicke auf Validieren. Beheben Sie alle auftretenden Fehler.
  5. Klicken Sie auf Speichern.
  6. Der Schalter Aktivieren muss auf An stehen.
  7. Warten Sie, bis die beiden Startzeiten verstrichen sind. Das Gerät sollte zu den angegebenen Zeiten ein- und ausgeschaltet werden.

7. Glückwunsch!

Sie haben eine scriptbasierte Automatisierung erstellt. Super!

In diesem Codelab haben Sie Folgendes gelernt:

  • Automatisierungen entwerfen und schreiben
  • Automatisierung testen

Nächste Schritte

In diesem Codelab haben wir eine sehr einfache Automatisierung erstellt. Mit Automatisierungen lässt sich nicht nur das Ein- und Ausschalten eines Schalters planen. Nachdem Sie nun die Grundlagen zum Erstellen einer Automatisierung kennen, können Sie sich mit den verschiedenen Arten von Auslösern, Bedingungen und Aktionen vertraut machen, die im Google Home-System verfügbar sind.

Probieren Sie die folgenden Übungen aus:

  • Fügen Sie der Automatisierung weitere time.schedule-Auslöser hinzu.
  • Ändern Sie die Automatisierung so, dass ein anderes Gerät nach demselben Zeitplan ein- und ausgeschaltet wird.
  • Ändern Sie die Automatisierung, ohne die time.schedule-Auslöser zu entfernen, sodass die Geräte nur eingeschaltet werden, wenn ein anderes Gerät eingeschaltet ist. Weitere Informationen finden Sie in den Beispielscripts, in denen die condition-Klausel verwendet wird.
  • Ändern Sie die Automatisierung so, dass die Geräte nur eingeschaltet werden, wenn jemand zu Hause ist.

Weitere Informationen

Weitere Informationen zu Google Home-Automatisierungen finden Sie in der Referenzdokumentation zu Automatisierungen: