Skriptbasierte Automatisierung erstellen

1. Einführung

Lerninhalte

  • Skriptbasierte Automatisierungen planen und schreiben
  • Skriptbasierte Automatisierung testen

Voraussetzungen

  • Ein Android- oder iOS-Smartphone, auf dem die Google Home App installiert ist.
  • Eine intelligente Lampe oder ein anderes Gerät, das für „Funktioniert mit Google Home“ zertifiziert ist und ein- oder 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. Skriptbasierte Automatisierung planen

Als Erstes überlegen wir, was unsere skriptbasierte Automatisierung erreichen soll. Dazu gehören unter anderem folgende Punkte:

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

Für dieses Codelab planen wir, die skriptbasierte Automatisierung zwei Dinge zu tun:

  1. Schalten Sie die Lampe oder ein anderes Smart-Home-Gerät zu einer bestimmten Zeit ein.
  2. Schalten Sie Ihr Gerät zu einer bestimmten Zeit aus.

Da wir nun wissen, was genau unsere skriptbasierte Automatisierung tun soll, öffnen wir den Script-Editor und schreiben die skriptbasierte Automatisierung.

4. Skriptbasierte Automatisierung schreiben

Skriptbasierte Automatisierungen werden deklarativ mit der YAML-Datenserialisierungssprache geschrieben.

Eine skriptbasierte Automatisierung besteht aus zwei Hauptabschnitten:

  1. Metadaten – Der Name der skriptbasierten Automatisierung und eine Beschreibung der Funktion.
  2. Automatisierungsregeln: Definiert die Initiierungslogik und das Verhalten der Automatisierung.

Metadaten

Die Metadaten unserer Automatisierung geben Nutzern Aufschluss darüber, wie die Automatisierung heißt und welche Funktion sie hat. 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 ausgeführt. Sie besteht aus drei Teilen, Auslöser, Bedingungen und Aktionen, die der Reihe nach ausgewertet werden:

1 Auslöser

2 Bedingungen

3 Aktionen

Auslöser sind das Auslöser für die Automatisierung. Mindestens ein Auslöser muss true ergeben, damit die nachfolgenden Bedingungen ausgewertet werden.

Diese sind optional und bestehen aus einer oder mehreren zusätzlichen Einschränkungen, die ausgewertet werden, nachdem ein Auslöser aktiviert wurde. Wenn die Bedingungen in true aufgelöst werden, werden die Aktionen ausgeführt. Wenn sie zu false führen, werden die Aktionen nicht ausgeführt.

Wenn du mehrere Einschränkungen einschließt, trenne sie durch die Schlüsselwörter 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 mit einer Statusänderungsbenachrichtigung identisch:

  • Eine Bedingung ist eine Tatsache, die zum Zeitpunkt des Auslösens des Auslösers erfüllt sein muss, damit die Aktionen ausgeführt werden.
  • Eine Benachrichtigung über Statusänderungen 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 jegliche Einschränkungsbedingungen erfüllt sind.

Der automations-Block 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

Hinweis:

  1. Es gibt zwei automations-Regeln. Mit dem ersten Gerät wird das Licht eingeschaltet und mit dem zweiten deaktiviert.
  2. Jede Regel hat eine einzelne Aktion.
  3. on: true bedeutet, dass das Licht eingeschaltet wird. on: false bedeutet auch, das Licht auszuschalten.
  4. Jede Regel hat einen einzelnen time.schedule-Auslöser, der der Automatisierung mitteilt, zu welcher Zeit die Automatisierung gestartet werden soll.
  5. In dieser Automatisierung sind keine Bedingungen vorhanden.

5. Die vollständige skriptbasierte Automatisierung

Mit all diesen Teilen sieht die vollständige skriptbasierte Automatisierung 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 dargestellt wird:
    Tab „Automatisierungen“
  4. Klicken Sie auf + Neuen Vergleich hinzufügen.
  5. Löschen Sie im Skripteditor die Automatisierungsvorlage.
  6. Fügen Sie Ihre 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 Bereiche Ihrer skriptbasierten Automatisierung unterstrichen, die Fehler enthalten. Beheben Sie alle auftretenden Fehler und führen Sie die Validierung und Behebung fort, bis keine weiteren Fehler mehr vorhanden sind. Beispielsweise kann Ihr Gerätename anders lauten. In diesem Fall können Sie mithilfe der Funktion zur automatischen Vervollständigung einen gültigen Gerätenamen auswählen.
  9. Klicken Sie auf Speichern.
  10. Achten Sie darauf, dass sich der Schalter Aktivieren unter dem Text Ihres Skripts auf der Position Ein befindet: Skripteditor mit vollständig validierter und aktivierter skriptbasierter Automatisierung

6. Automatisierung testen

  1. Prüfen Sie, ob Ihr Gerät angeschlossen und in der Google Home App sichtbar ist.
  2. Wenn das Gerät derzeit eingeschaltet ist, schalten Sie es aus.
  3. Klicken Sie auf der Seite Automatisierungen in der Google Home-Webversion neben Ihrer Automatisierung auf die Schaltfläche „Ausführen“.
    Schaltfläche zum Ausführen von Skripts
  4. Das Gerät sollte dann eingeschaltet werden.

Jetzt testen wir die Automatisierung.

  1. Schalten Sie das Gerät aus.
  2. Bearbeite die Automatisierung und ändere die Zeit für „Gerät eingeschaltet“ in Zeile 7 auf fünf Minuten in der Zukunft.
  3. Ändern Sie die Auszeit des Geräts in Zeile 14 auf eine Zeit kurz nach der 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 Auslöserzeiten abgelaufen sind. Das Gerät sollte sich zu den angegebenen Zeiten ein- und ausschalten.

7. Glückwunsch!

Sie haben eine skriptbasierte Automatisierung erfolgreich erstellt.

In diesem Codelab haben Sie Folgendes gelernt:

  • So entwerfen und schreiben Sie eine Automatisierung.
  • Automatisierung testen

Nächste Schritte

In diesem Codelab haben wir eine sehr einfache Automatisierung erstellt. Automatisierungen können viel mehr, als ein Ein-/Aus-Schalter ein- und ausschalten. Jetzt kennen Sie die Grundlagen zum Erstellen einer Automatisierung. Als Nächstes 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.
  • Du kannst die Automatisierung ändern, um ein weiteres Gerät nach demselben Zeitplan ein- und auszuschalten.
  • Ändere die Automatisierung, ohne die time.schedule-Auslöser zu entfernen, damit die Geräte nur dann eingeschaltet werden, wenn ein anderes Gerät eingeschaltet wird. Sehen Sie sich die Beispielskripts an, in denen die condition-Klausel verwendet wird.
  • Stelle die Automatisierung so ein, dass die Geräte nur dann eingeschaltet werden, wenn jemand zu Hause ist.

Weitere Informationen

Weitere Informationen zu Automatisierungen für Google Home finden Sie in der Referenzdokumentation zu Automatisierungen: