-
Notifications
You must be signed in to change notification settings - Fork 2
Doku De Aktionen Einzeln
Bei der Einzelvariante zur Definition von Aktionen werden alle Parameter einer Aktion in separaten Attributen definiert. Über den gemeinsamen Aktionsnamen gehören die Attribute einer Aktion zusammen.
Ähnlich wie Bedingungen benötigen auch Aktionen einen Namen. Der Name ist auch hier beliebig und wird lediglich in der Benennung der Attribute verwendet. Die Namen aller Attribute, die zu einer Bedingung gehören, folgen dem Muster "as_<Funktion>_<Aktionsname>
".
as_set_<Aktionsname>
Das Item, dass verändert werden soll, muss auf Ebene des Objekt-Items über das Attribut "as_item_<Aktionsname>
" angegeben werden.
Das Attribut "as_set_<Aktionsname>
" nutzt den Datentyp AbValue. Der Wert, auf den das Item gesezt wird kann dadurch als statischer Wert, als Wert eines Items oder als Ergebnis der Ausführung einer Funktion festgelegt werden.
Minimumabweichung:
Es ist möglich eine Minimumabweichung für Änderungen zu definieren. Wenn die Differenz zwischen dem aktuellen Wert des Items und dem ermittelten neuen Wert kleiner ist als die festgelegte Minimumabweichung wird keine Änderung vorgenommen. Die Minimumabweichung wird über das Attribut "as_mindelta_<Aktionsname>
" auf der Ebene des Objekt-Items festgelegt. Auch hier wird der Datentyp AbValue verwendet.
as_force_<Aktionsname>
Diese Aktion funktioniert analog zu as_set_<Aktionsname>
. Einziger Unterschied ist, dass die Wertänderung erzwungen wird: Wenn das Item bereits den zu setzenden Wert hat, dann ändert smarthomeNG das Item nicht. Selbst wenn beim Item das Attribut enforce_updates = yes
gesetzt ist, wird zwar der Wert neu gesetzt, der von smarthomeNG Änderungszeit nicht neu gesetzt. Mit dem Attribut as_force_<Aktionsname>
wird das Plugin den Wert des Items bei Bedarf zuerst auf einen anderen Wert ändern und dann auf dem Zielwert setzen. Damit erfolgt auf jeden Fall eine Wertänderung (ggf. sogar zwei) mit allen damit in Zusammenhang stehenden Änderungen (eval's, Aktualisierung der Änderungszeiten, etc).
as_run_<Aktionsname>: eval:(Funktion)
Die Angabe ist vergleichbar mit dem Ausführen einer Funktion zur Ermittlung des Werts für ein Item, hier wird jedoch kein Item benötigt. Außerdem wird der Rückgabewert der Funktion ignoriert.
as_trigger_<Aktionsname>
Um beim Auslösen einen Wert an die Logik zu übergeben, kann dieser Wert im Attribut über die Angabe von :<Wert>
hinter dem Logiknamen angegeben werden.
Beispiel:
as_trigger_<Aktionsname>: meineLogik:Zu übergebender Wert
as_byattr_<Aktionsname>
Mit diesem Attribut wird der Name eines anderen (beliebigen) Attributs angegeben. Beim Ausführen werden alle Items herausgesucht, die das angegebene Attribut enthalten. Diese Items werden auf den Wert gesetzt, der dem genannten Attribut in den Items jeweils zugewiesen ist.
Beispiel:
as_byattr_<Aktionsname>: mein_eigenes_Attribut
sucht alle Items heraus, bei denen das Attribut "mein_eigenes_Attribut
" angegeben ist.
Ein Item
dummy:
type: num
mein_eigenes_Attribut: 42
wird dann auf "42
" gesetzt.
Ein anderes Item
dummy2:
type: str
mein_eigenes_Attribut: Rums
wird gleichzeitig auf "Rums
" gesetzt.
as_special_<Aktionsname>: (Sondervorgang)
Für bestimmte Sondervorgänge sind besondere Aktionen im Plugin definiert (z. B. für das Suspend). Diese werden jedoch nicht hier erläutert, sondern an den Stellen, andenen Sie verwendet werden.
as_delay_<Aktionsname>
Über das Attribut wird die Verzögerung angegeben, nach der die Aktion ausgeführt werden soll. Die Angabe erfolgt in Sekunden oder mit dem Suffix "m" in Minuten.
as_delay_<Aktionsname>: 30 --> 30 Sekunden
as_delay_<Aktionsname>: 30m --> 30 Minuten
Der Timer zur Ausführung der Aktion nach der angegebenen Verzögerung wird entfernt, wenn eine gleichartike Aktion ausgeführt werden soll (egal ob verzögert oder nicht). Wenn also die Verzögerung größer als der "cycle
" ist, wird die Aktion nie durchgeführt werden, es sei denn die Aktion soll nur einmalig ausgeführt werden.
Das Attribut "as_delay_<Aktionsname>
" verwendet den Datentyp AbValue
as_repeat_<Aktionsname>
Über das Attribut wird unabhängig vom globalen Setting für das Autoblind Item festgelegt, ob eine Aktion auch beim erneuten Eintritt in den Status ausgeführt wird oder nicht.
as_delay_<Aktionsname>: True # Aktion wird bei jedem Mal aufs neue ausgeführt
as_delay_<Aktionsname>: False # Aktion wird nur beim ersten Eintritt in den Status ausgeführt
as_order_<Aktionsname>
Die Reihenfolge, in der die Aktionen ausgeführt werden, ist nicht zwingend die Reihenfolge in der die Attribute definiert sind. In den meisten Fällen ist dies kein Problem da die Aktionen voneinander unabhängig sind und daher in beliebiger Reihenfolge ausgeführt werden können. In Einzelfällen kann es jedoch erforderlich sein, mehrere Aktionen in einer bestimmten Reihenfolge auszuführen. Dies kann über das Attribut as_order_<Aktionsname>
erfolgen. Mit diesem Attribut wird der Aktion eine Zahl zugewiesen. Aktionen werden in aufsteigender Reihenfolge der zugewiesenen Zahlen ausgeführt.
Es ist möglich zwei Aktionen die gleiche Zahl zuzuweisen, die Reihenfolge der beiden Aktionen untereinander ist dann wieder undefiniert. Innerhalb der gesamten Aktionen werden die beiden Aktionen jedoch an der angegebenen Position ausgeführt.
Wird für eine Aktion kein Reihenfolgenwert angegeben, wird implizit der Wert 1 verwendet.
Das Attribut "as_order_<Aktionsname>
" verwendet den Datentyp AbValue
Beispiel zur Ausführungsreihenfolge:
beispiel:
automatik:
rules:
<...>
Zustand1:
as_order_aktion1: 3
as_order_aktion2: 2
as_order_aktion3: 1
as_order_aktion4: 2
Die Reihenfolge der Aktionen hier wird wie folgt sein:
- aktion3
- aktion2, aktion4 ODER aktion4, aktion2
- aktion 1
Ist zusätzlich eine aktion5 definiert, die keine Reihenfolge festgelegt hat, wird die Reihenfolge der Aktionen wie folgt sein:
- aktion3, aktion5 ODER aktion5, aktion3
- aktion2, aktion4 ODER aktion4, aktion2
- aktion 1
beispiel:
raffstore:
automatik:
rules:
<...>
as_item_height: beispiel.raffstore1.hoehe
as_mindelta_height: 10
as_item_lamella: beispiel.raffstore1.lamelle
as_mindelta_lamella: 5
Daemmerung:
<...>
as_set_height: value:100
as_set_lamella: value:25
<...>
Nacht:
<...>
as_set_height: value:100
as_set_lamella: value:0
<...>
Nachfuehren:
<...>
as_set_height: value:100
as_set_lamella: eval:autoblind_eval.sun_tracking()
<...>
Sonder:
<...>
as_trigger_logic1: myLogic:42
as_delay_logic1: 10
<...>
Diese Dokumentation orientiert sich am Entwicklungsstand im develop-Zweig.
Startseite der deutschen Dokumentation | Main page of english documentation
- Einstieg
- Installation
- Grundsätzliches
- Konfiguration des Plugins
- Die Grundkonfiguration für eine Automatik: Das Objekt-Item
- Zustände: Das Zustands-Item
- Bedingungen
- Aktionen
- Vorgabezustände verwenden
- Vordefinierte Funktionen
- Variablen
- Besondere Zustände
- Zusätzliche Kommandos für das CLI Plugin
- Vollständiges Beispiel