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 |
|---|---|---|
|
|
Optional Name der Automatisierung. Dieser Name wird Nutzern nicht angezeigt, sondern dient nur als Referenz für Entwickler. |
|
|
|
[Starter] |
Erforderlich Eine Liste von Auslösern. |
|
|
Optional Bedingung |
|
|
|
[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