Ausführungszeitpunkt

Beispiel

Im Beispiel ist ein Item im Zustand 1 namens on_enter_or_stay angelegt. In diesem Item befinden sich diverse Aktionen, die jedes Mal ausgeführt werden, wenn der Zustand aktiv wird oder bleibt.

#items/item.yaml
raffstore1:
    automatik:
        struct: stateengine.general
            rules:
                state1:
                    name: Zustand 1

                    on_enter_or_stay:
                        name: Ausführen immer wenn ein Zustand aktiv ist
                        <... Aktionen ...>

Aktionsausführung

Um festzulegen, wann die Aktionen eines Zustands ausgeführt werden, gibt es vier Ereignisse, denen die Aktionen zugeordnet werden können. Für jedes dieser Ereignisse wird ein Item unterhalb des Zustands-Items angelegt, in dem die jeweiligen Aktionen als Attribute definiert werden.

  • on_enter: Aktionen, die nur beim erstmaligen Aktivieren des Zustands ausgeführt werden

  • on_stay: Aktionen, die nur ausgeführt werden, wenn der Zustand zuvor bereits aktiv war und weiterhin aktiv bleibt.

  • on_enter_or_stay: Aktionen, die ausgeführt werden, wenn der Zustand aktiv ist, unabhängig davon, ob er bereits zuvor aktiv war oder nicht.

  • on_leave: Aktionen, die ausgeführt werden, direkt bevor ein anderer Zustand aktiv wird.

Die Konfiguration von instant_leaveaction bestimmt, ob on_leave Aktionen sofort nach dem Verlassen eines Zustands ausgeführt werden oder erst am Ende der Statusevaluierung. Die Option kann sowohl in der globalen Pluginkonfiguration mittels instant_leaveaction (boolscher Wert True oder False), als auch pro Item mittels se_instant_leaveaction festgelegt werden. Letzteres Attribut kann auch auf ein Item verweisen, dem der Wert -1 = Nutzen des Default Wertes, 0 = False, 1 = True zugewiesen werden kann. Im general struct sind bereits entsprechende Einträge und Items angelegt (mit einem Wert von -1).