Ankündigung

Einklappen
Keine Ankündigung bisher.

Count oder sowas in der Art in eval

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cannon
    antwortet
    Danke!

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von Cannon Beitrag anzeigen
    Mir fehlt der Bezug zur Übergabe der Items.

    eval: avg

    Die zusätzlichen Funktionen, die smarthome.py implementiert hat (and, or, sum, avg, min, max) bestimmen die entsprechenden Werte aus den Item Werten aller Trigger des Items mit dem eval Ausdruck. Andere Möglichkeiten sind nicht implementiert. Die Angabe ersetzt allerdings den Python Ausdruck. Du kannst Daher in dem Item nicht weiter mit dem avg, sum, ... rechnen. Dazu müsstest Du ein weiteres Item anlegen, welches mit dem Wert dann weiter rechnen kann.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Das verstehe ich. Aber gibt es eine einfachere Möglichkeit, ohne jedes item da reinzutragen, also anstatt:

    eval: True if (sh.item1() + sh.item2() + sh.item3() + sh.item4() + sh.item5()) < 3 else False

    Mir fehlt der Bezug zur Übergabe der Items.

    eval: avg

    würde ja Beispielsweise den Mittelwert geben. Denn irgendwo holt er sich ja die Item-Werte her. Aber das wird ja so nicht gehen, nehme ich mal an:

    eval: True if avg < 0.6 else False

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Eval benutzt den Python Parser. Eval Ausdrücke sind reine Python Expressions.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Je nachdem, wie das ausgewertet wird, kannst du die einfach addieren. In Python sind bool eigentlich int, und True === 1, also ist True + True + True = 3.

    Probiers mal aus... hängt vom Parser des eval ab. In Python geht es.

    Einen Kommentar schreiben:


  • Cannon
    hat ein Thema erstellt Count oder sowas in der Art in eval.

    Count oder sowas in der Art in eval

    Ich nutze eval und eval_trigger in einem item. Das trigge rbeinhaltet eine Liste mit einigen Einträgen:

    eval_trigger:
    - item1
    - item2
    - item3
    - ...

    Die Items sind entweder False or True und ich möchte ermitteln, ob z.B. 2 von den 10 Items True sind. Also irgendwas in der Art. Es würde mir auch in Prozent reichen, also 10% sind True oder so. Gibt es da was, was ich in eval verwenden kann, ohne jedes Item mit if abzufragen?
Lädt...
X