Tasmota 8.1.3 - Rules mit IF führt zu Command Unknown

  • Hallole,

    laut Doku unterstützt Tasmota Bedingungen in Rules:

    https://tasmota.github.io/docs/Rules/#conditional-rules

    Wenn ich jedoch Rules mit IF-Bedingungen, egal wie simpel gestrickt, über der Konsole anlege,

    bringen diese bei der Ausführung nur eine {"Command":"Unknown"} Meldung.

    Beispiel von oben für Auto-PowerOff bei Unterschreitung Leistungsschwelle:

    Code
    :: Bei Verbrauch <4W nach 42Sec ausschalten
    Rule1 ON Energy#Power>=4 DO Var1 0 BREAK
          ON Rules#Timer=1   DO IF (1==Var1) Power off;Var1 0 ENDIF BREAK
          ON Energy#Power<4  DO IF (0==Var1) Var1 1;RuleTimer1 42 ENDIF ENDON 

    Konsolen-Ausgabe:

    Code
    10:23:56 RUL: ENERGY#POWER<4  performs "IF (0==Var1) Var1 1;RuleTimer1 42 ENDIF"
    10:23:56 RSL: RESULT = {"Command":"Unknown"}

    Bug oder Feature? :/


    BTW kann man weniger schön aber ohne IF Ähnliches erreichen:

    Code
    :: Bei Verbrauch >=4W 42Sec Timer für PowerOff starten\reseten
    Rule1 ON Energy#Power>=4 DO RuleTimer1 42 BREAK
    ON Rules#Timer=1 DO Power off ENDON
  • Code
    To use it you must compile your build. Add the following to user_config_override.h:
    
    
    #define USE_EXPRESSION         // Add support for expression evaluation in rules (+3k2 code, +64 bytes mem)  
    #define SUPPORT_IF_STATEMENT   // Add support for IF statement in rules (+4k2 code, 

    Die Unterstützung für "IF" muss einkommentiert werden, dann kommt keine Fehlermeldung mehr ;)

  • Passt, jetzt funzt!

    :thumbup: