Ankündigung

Einklappen
Keine Ankündigung bisher.

if statement in on_update

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

    if statement in on_update

    Hallo,
    ich möchte bei Änderung vom item "AufAb" in Abhängigkeit des Wertes vom item "TempSchutzJ" diesem den Wert 4 zuweisen.
    Da bekomme ich einen Systaxfehler.

    Code:
    Item Wohnung.OG.Bad.Jalousie.AufAb: 'on_change' item-value='False' problem evaluating 4 (if sh.Wohnung.OG.Bad.Jalousie.TempSchutzJ() != 3) else None: invalid syntax (<string>, line 1)
    Code:
    #struct.yaml
    Jalousie:
       AufAb:
          type: bool
          knx_dpt: 1
          enforce_updates: true
         [B] on_change: ..TempSchutzJ = 4 if sh...TempSchutzJ() != 3 else None[/B]
      TempSchutzJ:
          type: num
          initial_value: 4
          cycle: 1m
          enforce_updates: true
    Wie müßte das richtig heißen?

    Vielen Dank
    Andreas

    #2
    Die Spezialform des Ausdrucks, die ein else None unterstützt ist kein Standard und wurde bei SmartHomeNG nur bei eval hinzu implememntiert.
    Bei on_change bzw. on_update. werden nur Python Expressions ohne diese Erweiterung unterstützt.

    Siehe dazu auch folgende Seite der Dokumentation.

    Das erklärt aber noch nicht Deinen Syntax Error. Der kommt vermutlich aus der Klammersetzung, die Du in der Fehlermeldung siehst. Ich habe bei der von Dir geposteten Item Definition allerdings keine Idee, wie die Klammern in die Fehlermeldung kommen:


    'on_change' item-value='False' problem evaluating 4 (if sh.Wohnung.OG.Bad.Jalousie.TempSchutzJ() != 3) else None: invalid syntax (<string>, line 1)

    Die Klammer auf müsste hinter das if, oder die Klammern müssten komplett wergelassen werden.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar

    Lädt...
    X