Zum Hauptinhalt springen

Automatisierung

Mit dem automation-Modul können einfache Regeln ausgeführt werden. Eine Regel besteht aus einer auszuführenden Aktion, sowie aus einer Bedingung, die zutreffen muss, damit die Aktion ausgeführt wird.

automation/state

Der Zustand der Automatisierung. Gibt an, welche Bedingungen und Aktionen von dieser Firmware unterstützt werden und welche der unterstützten Bedingungen und Aktionen im Moment ausgeführt werden können. Je nach Konfiguration können bestimmte Bedingungen und Aktionen nicht ausgeführt werden, beispielsweise kann nicht auf MQTT-Nachrichten reagiert werden, wenn keine MQTT-Verbindung konfiguriert ist.

Beispiel
# $HOST z.B. warp-AbCd

Lesen

curl http://$HOST/automation/state
{
"registered_triggers": [1, 2, 3, 5, 6, 9, 10, 11, 18],
"registered_actions": [1, 2, 3, 4, 5, 6, 7, 8],
"enabled_triggers": [1, 2, 6, 11, 18, 10, 5],
"enabled_actions": [1, 3, 4, 5, 6, 8, 7]
}
NameBedeutung
registered_triggers
int[19]

Dieser Firmware bekannte Bedingungen (Union-Tags des Triggers einer Regel aus automation/config).

  • [0..18] - Eine bekannte Bedingung.
registered_actions
int[16]

Dieser Firmware bekannte Aktionen (Union-Tags der Aktion einer Regel aus automation/config)

  • [0..15] - Eine bekannte Aktion.
enabled_triggers
int[19]

Aktuell ausführbare Bedingungen (Union-Tags des Triggers einer Regel aus automation/config). Ist immer eine Teilmenge der registered_triggers.

  • [0..18] - Eine ausführbare Bedingung.
enabled_actions
int[16]

Aktuell ausführbare Aktionen (Union-Tags der Aktion einer Regel aus automation/config). Ist immer eine Teilmenge der registered_actions.

  • [0..15] - Eine ausführbare Aktion.



automation/config

Die Konfiguration der Automatisierung.

Beispiel
# $HOST z.B. warp-AbCd

Lesen

curl http://$HOST/automation/config
{
"tasks": [
{
"trigger": [1, { "mday": -1, "wday": 9, "hour": -1, "minute": 10 }],
"action": [1, { "message": "Hallo Welt!" }]
},
{
"trigger": [
18,
{ "method": 4, "url_suffix": "garage_door", "payload": "open" }
],
"action": [
2,
{
"topic": "door/control",
"payload": "1",
"retain": false,
"use_prefix": false
}
]
}
]
}

Konfiguriere zwei Aufgaben:

  • (Trigger 1) Am Wochenende (wday 9), 10 Minuten (minute 10) nach jeder vollen Stunde,
    (Action 1) zeige Hallo Welt! im Ereignis-Log an.
  • (Trigger 18) Wenn eine HTTP-GET-, POST- oder PUT-Anfrage (method 4) mit dem Inhalt "open" an URL http://$HOST/automation_trigger/garage_door empfangen wird,
    (Action 2) sende MQTT-Nachricht 1 an Topic door/control.

Schreiben

curl http://$HOST/automation/config -d '{
"tasks": [
{
"trigger": [1, { "mday": -1, "wday": 9, "hour": -1, "minute": 10 }],
"action": [1, { "message": "Hallo Welt!" }]
},
{
"trigger": [
18,
{ "method": 4, "url_suffix": "garage_door", "payload": "open" }
],
"action": [
2,
{
"topic": "door/control",
"payload": "1",
"retain": false,
"use_prefix": false
}
]
}
]
}'

oder abgekürzt:

curl http://$HOST/automation/config -d '[
{
"trigger": [1, { "mday": -1, "wday": 9, "hour": -1, "minute": 10 }],
"action": [1, { "message": "Hallo Welt!" }]
},
{
"trigger": [
18,
{ "method": 4, "url_suffix": "garage_door", "payload": "open" }
],
"action": [
2,
{
"topic": "door/control",
"payload": "1",
"retain": false,
"use_prefix": false
}
]
}
]'
NameBedeutung
tasks
object[14]

Konfigurierte Regeln

  • [0..13] - Eine Automatisierungsregel
NameBedeutung
trigger
Union

Bedingung, die zutreffen muss, damit Aktion ausgeführt wird

null: Keine Bedingung konfiguriert.

action
Union

Aktion, die ausgeführt werden soll

null: Keine Aktion konfiguriert.