SmartHomeNG - eval

Das eval - Attribut ist für kleine Auswertungen oder Korrekturen gedacht bzw. nützlich. Genauere Infos zu eval findet man hier.
Im Folgenden wird ein mögliches eval-Beispiel aufgeführt.

Ziel / Vorgabe:
Bewegungsmelder im Haus werden über ein Freigabeobjekt aktiviert und deaktiviert ( 1 = aktiv, 0 = gesperrt).
Wenn draußen die Lichtstärke unter 750 Lux fällt (Daten kommen von einer Wetterstation), sollen die Bewegungsmelder aktiviert werden.

Bewegungsmelder Flur EG


---



Bewegungsmelder Flur EG


---



Lösungsweg:
Wir haben einmal ein Item für das Freigabeobjekt der Bewegungsmelder (FreigabeBM.Eingang) und ein Item für die Außen-Lichtstärke (Aussen.Lichtstaerke).
Ein möglicher Lösungsweg könnte so aussehen:

eval ist die Bedingung, die erfüllt oder nicht erfüllt sein soll
eval_trigger definiert die Items, die bei Änderung, die Evaluierung von eval anstoßen.
Der Ausdruck bei diesem eval-Beispiel liefert immer ein bool zurück. Also wenn die Bedingung erfüllt ist True, ansonsten False.

Der letzte Satz ist nicht unwichtig.
Somit ist es natürlich auch möglich, entgegen unserem oben genannten Ziel/Vorgabe, Freigabeobjekte, die bei einer 0 die Freigabe geben, mit diesem eval Attribut zu realisieren.
Hier müssten wir also nur die Bedingung ändern. Also wenn der Lux-Wert größer 750 ist, sende 1. Ansonsten (Wert kleiner 750) sende 0.
Im konkreten Fall würde der eval und eval_trigger Zweig so aussehen: