Automatisierungen

Das Struct automations ist der Hauptbestandteil eines Automatisierungsscripts. Hier wird das Verhalten der Automatisierung festgelegt, einschließlich Auslöser, Bedingungen und Aktionen. Zusammen werden diese auch als Automatisierungsregel bezeichnet.

Ein automations-Struct enthält eine oder mehrere Automatisierungsregeln. Jede Regel enthält immer eine Reihe von Auslösern und Aktionen. Eine Regel kann optional Bedingungen enthalten. Das sind zusätzliche Qualifizierer, die erfüllt sein müssen, damit das Script ausgeführt werden kann.

Key Typ Beschreibung

name

String

Optional

Name der Automatisierung.

Dieser Name wird Nutzern nicht angezeigt, sondern dient nur als Referenz für Entwickler.

starters

[Starter]

Erforderlich

Eine Liste von Auslösern.

condition

Bedingung

Optional

Bedingung

actions

[Aktion]

Erforderlich

Eine Liste von Aktionen

Beispiele

Im Folgenden finden Sie zwei einführende Beispiele für automations-Structs.

Im ersten Beispiel wird die Automatisierung gestartet, wenn ein TV mit dem Namen "Mein Fernseher" eingeschaltet wird.

Nach dem Auslösen werden die folgenden Aktionen ausgeführt:

Zwei LIGHT Geräte mit den Namen „Lampe A“ und „Lampe B“ werden eingeschaltet und auf die Helligkeitsstufe 50 eingestellt.

automations:
- name: Dim the lights
  starters:
  - type: device.state.OnOff
    device: My TV - Living Room
    state: on
    is: true
  actions:
  - type: device.command.OnOff
    devices:
    - Light A - Living Room
    - Light B - Living Room
    on: true
  - type: device.command.BrightnessAbsolute
    devices:
    - Light A - Living Room
    - Light B - Living Room
    brightness: 50

Im zweiten Beispiel wird dieselbe Automatisierung jeden Montag und Donnerstag bei Sonnenuntergang gestartet:

automations:
- name: Dim the lights
  starters:
  - type: time.schedule
    at: SUNSET
    weekday:
    - MONDAY
    - THURSDAY
    state: on
    is: true
  actions:
  - type: device.command.OnOff
    devices:
    - Light A - Living Room
    - Light B - Living Room
    on: true
  - type: device.command.BrightnessAbsolute
    devices:
    - Light A - Living Room
    - Light B - Living Room
    brightness: 50

Auslöser

Im Starter-Struct geben Sie die Auslöser an, die die Ausführung des Automatisierungsscripts bewirken. Jede automation kann einen oder mehrere Auslöser enthalten. Mindestens ein Auslöser muss true ergeben, damit nachfolgende Bedingungen ausgewertet werden können.

Ein Beispiel für einen time.schedule-Auslöser:

type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE

Ein Beispiel für einen Auslöser bei Änderungen des Gerätestatus:

type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10

Ein Beispiel für einen Auslöser bei einem Geräteereignis:

type: device.event.DoorbellPress
device: My doorbell - Frontdoor

Ein Beispiel für einen Auslöser bei Änderungen des Anwesenheitsmodus im Zuhause:

type: home.state.HomePresence
state: homePresenceMode
is: HOME

Vollständige Liste der Auslöser anzeigen.

Bedingung

Bedingungen können mit den logischen Operatoren and, or und not kombiniert werden, um komplexere Logik auszudrücken.

Im folgenden Beispiel gibt es ein condition-Struct mit einer time-Bedingung und einer device.state-Bedingung. Mit diesem Struct kann das Script ausgeführt werden, wenn es Montag oder Dienstag zwischen Sonnenuntergang und Sonnenaufgang ist oder die Lautstärke des Fernsehers zwischen 1 und 10 liegt:

type: or
conditions:
- type: time.between
  before: sunrise
  after: sunset
  weekdays:
  - MON
  - TUE
- type: device.state
  device: My TV - Living Room
  trait: Volume
  state: currentVolume
  greaterThanOrEqualTo: 1
  lessThanOrEqualTo: 10

Ein einfaches time-Bedingungsbeispiel, das die Ausführung eines Automatisierungsscripts auf Wochenenden vor 10:00 Uhr beschränkt:

type: time.between
before: 10am
weekdays:
- SAT
- SUN

Eine Bedingung für die Temperatur des Gerätesensors eines Thermostats:

type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F

Ein Beispiel für eine home.state.HomePresence-Bedingung:

type: home.state.HomePresence
state: homePresenceMode
is: AWAY

Vollständige Liste der Bedingungen.

Aktionen

Wie Auslöser und Bedingungen hat jede Aktion einen type, der angibt, welche Art von Aktion angegeben wird.

Die wichtigsten und nützlichsten sind die Befehlstypen device.command. Ein Beispiel für eine Aktion zum Ausschalten von Lichtern:

type: device.command.OnOff
devices:
- Light A - Living Room
on: false

Eine Aktion, um eine Verzögerung zwischen mehreren anderen Aktionen hinzuzufügen:

type: time.delay
for: 5min

Vollständige Liste der Aktionen.