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.

Kategorien: FAQ

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.