eval und eval_trigger
Ein Attribut eval enthält eine Zeile Python die genau einen Wert zurückliefert. Es ist quasi eine Einzeilenfunktion. Der Syntax entspricht einer Python conditional expression.
Wenn in dieser Funktion Werte von Items genutzt werden sollen, dann müssen die Aufrufe die Form sh….<Item-Name>() haben. Sollte man sh. am Anfang vergessen funktioniert es genauso wenig, wie wenn man die Klammern am Ende wegläßt.
Ein Attribut eval_trigger ist nur eine Auflistung von Itemnamen, diese werden jedoch ohne sh. am Anfang aufgeführt.
eval Syntax
Ein Beispiel für einen eval Ausdruck:
eval=value if value>0 else 0
Achtung: Ein if-Statement in einem eval-Ausdruck muss auch einen else-Zweig haben.
Beispiele
Richtig:
myitem:
eval: sh.my.value()
eval_trigger: my.value|my.other.value
Falsch:
myitem:
eval: sh.my.value
eval_trigger: sh.my.value|sh.my.other.value)
08.04.2018: Ergänzt um Informationen aus einem Wiki Beitrag von henfri.
0 Kommentare