Ankündigung

Einklappen
Keine Ankündigung bisher.

kurze Frage zum eval mit Bedingungen

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

    kurze Frage zum eval mit Bedingungen

    Hallo,
    bei diesem eval Aufruf kommt folgende Fehlerbeldung. Was mache ich falsch? Ich möchte den Zähler inkrementieren wenn a oder b wahr ist.

    Code:
    [bewaesserung]
        [[counter]]
            type = num
            sqlite = yes
            cache = yes
            enforce_updates = yes
            eval = sh.bewaesserung.counter() + 1 if (sh.bewaesserung.a() == True | sh.bewaesserung.b() == True)
            cycle = 60 = 1
    Code:
    2016-06-28 21:26:20 WARNING  bewaesserung.counter-eval Item bewaesserung.counter: problem evaluating ['sh.bewaesserung.counter() + 1 if (sh.bewaesserung.a() == True', 'sh.bewaesserung.b() == True)']: eval() arg 1 must be a string, bytes or code object
    Gruß

    Sprocky

    #2
    es fehlt das else, probiere mal:
    PHP-Code:
      sh.bewaesserung.counter() + if (sh.bewaesserung.a() == True sh.bewaesserung.b() == True) else None 

    Kommentar


      #3
      Hi,

      Du hast gleich 2 Fehler in einem : Es ist das Zeichen |.
      1. In python heißt oder ganz einfach or
      2. In sh.py bedeutet das Zeichen | einen Listen-Trenner, wodurch Du aus dem eval-Eintrag eine Liste gemacht hast, die der eval so nicht erwartet und deswegen nicht auswerten kann.
      Ersetze das | durch ein or und gut ist...

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        #4
        Super Danke!

        Kommentar

        Lädt...
        X