Allgemein

Wichtig

Es ist nicht empfehlenswert, das stateengine Plugin für sicherheitsrelevante Zustände, wie zum Beispiel das Hochfahren von Jalousien bei zu viel Wind, zu verwenden. Sicherheitsrelevante Funktionen müssen so einfach wie möglich aufgebaut sein. Es wird daher dringend dazu geraten, solche Funktionen unabhängig von smarthomeNG und dem stateengine Plugin zu realisieren. Für das Hochfahren von Jalousien bei Windalarm beispielsweise sollte die Sperrfunktionalität verwendet werden, über die alle aktuellen Jalousieaktoren verfügen!

Einführung

Als Einstieg in das Plugin empfiehlt es sich, den Blogeintrag auf der SmarthomeNG Seite zu lesen!

Funktionalität

Über zusätzliche Items in den items/*.yaml Dateien können für beliebige Items Zustandsautomaten implementiert werden. Jeder Zustand kann Sets von Einstiegsbedingungen haben und diverse Aktionen auslösen, wenn der Zustand aktiv wird.

In regelmäßigen Intervallen werden die Zustände für jedes Objekt der angegebenen Reihe nach geprüft. Der erste Zustand, bei dem eine Gruppe Einstiegsbedingungen vollständig erfüllt ist, wird zum aktuellen Zustand. Die Aktionen, die für diesen Zustand definiert sind, werden ausgeführt.

Wenn kein passender Zustand gefunden wird, passiert nichts, das Objekt verbleibt im vorherigen Zustand. Dies kann in manchen Fällen Sinn machen, meist bietet es sich aber an, einen Standardzustand ohne Eingangsbedingungen ganz am Ende der Hierarchie festzulegen.

Die folgenden Bedingungen können Teil der Bedingungsgruppen sein:

  • Tageszeit (Minimum, Maximum, Wert)
  • Wochentag (Minimum, Maximum, Wert)
  • Azimut der Sonne (Minimum, Maximum, Wert)
  • Altitude der Sonne (Minimum, Maximum, Wert)
  • Alter des aktuellen Zustands (Minimum, Maximum, Wert)
  • Zufallszahl (Minimum, Maximum, Wert)
  • Vorheriger Zustand (Wert)
  • Trigger-Objekt, das die Zustandsermittlung ausgelöst hat

Zusätzlich können beliebige Items (z.B. Temperatur) als Bedingungen geprüft werden (Minimum, Maximum oder Wert)

Umstieg von Autblind

Das Autoblind Plugin von i-am-offline wurde für SmarthomeNG 1.6 ins offizielle Repo übernommen und dabei erweitert und optimiert. Für einen Umstieg ist es wichtig, die Attribute as durch se zu ersetzen. Im Pluginverzeichnis befindet sich ein Bash- Script, das diesen Prozess deutlich vereinfacht und nicht nur die Attrinbute in den items/*.yaml Dateien ersetzt, sondern auch die Cachefiles umbenennt.

Webinterface

Über das Webinterface lässt sich auf einen Blick erkennen, welche State Engine sich in welchem Zustand befindet. Zusätzlich ist es möglich, durch Klick auf einen Eintrag die komplette State Engine visuell zu betrachten. Dabei ist folgende Farbkodierung zu beachten: - grau: wurde nicht evaluiert (weil bereits ein höher rangiger Zustand eingenommen wurde) - grün: aktueller Zustand / ausgeführte Aktion - rot: Bedingungen nicht erfüllt

Bei den Aktionen sind die einzelnen Zeilen unter Umständen ebenfalls farbkodiert: - schwarz: Aktion normal ausgeführt - weiß: Aktion nicht ausgeführt, da Bedingungen nicht erfüllt - grau: Aktion wird erst mit Verzögerung ausgeführt - rot: Fehler in der Konfiguration