Tasmotafehler bei Multiplikation vor RuleTimer

  • Über alle bei mir verfügbaren Release 6.7.1 , 9.1, 9.2, 9.4, 9.5 und 9.5.0.9 habe ich den Fehler (oder falsche Rule-Nutzung?) bemerkt!

    anbei Testskripte:


    Rule3 'geht noch - aber so nicht ausreichend :thumbup:

    on POWER1#State do event check=%time% endon

    on event#check>%sunrise% do Backlog Var4 0; Add4 %time%; Sub4 %sunrise%; RuleTimer3 %Var4% endon

    on Rules#Timer=3 do Backlog power1 on; power2 off endon


    Rule3 'geht nicht mehr - berechnet die Verzögerung der Öffnung wenn Sonnenaufgang nach Powerwechsel (Achtung, bei zweiter Nutzung Rechnungsdatenübernahme prüfen) :cursing:

    on POWER1#State do event check=%time% endon

    on event#check>%sunrise% do Backlog Var4 0; Add4 %time%; Sub4 %sunrise%; Mult4 600; RuleTimer3 %Var4% endon

    on Rules#Timer=3 do Backlog power1 on; power2 off endon


    1. Nutzung nach Neustart:

    17:38:50.577 RUL: EVENT#CHECK>%SUNRISE% performs "Backlog Var4 0; Add4 1058; Sub4 441; Mult4 600; RuleTimer3 :!:"

    17:38:50.591 RSL: RESULT = {"Var4":"0"}

    17:38:50.824 RSL: RESULT = {"Add4":"1058.000"}

    17:38:51.046 RSL: RESULT = {"Sub4":"617.000"}

    17:38:51.307 RSL: RESULT = {"Mult4":"370200.000"}

    17:38:51.595 RSL: RESULT = {"T1":58,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}


    2. Nutzung :

    17:40:54.572 RUL: EVENT#CHECK>%SUNRISE% performs "Backlog Var4 0; Add4 1060; Sub4 441; Mult4 600; RuleTimer3 370800.000:thumbdown:"

    17:40:54.650 RSL: RESULT = {"Var4":"0"}

    17:40:54.912 RSL: RESULT = {"Add4":"1060.000"}

    17:40:55.131 RSL: RESULT = {"Sub4":"619.000"}

    17:40:55.354 RSL: RESULT = {"Mult4":"371400.000:thumbup:"}

    17:40:55.602 RSL: RESULT = {"T1":58,"T2":0,"T3":370800:thumbdown:,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}




    Rule3 'Zwischenlösung - aber unschön:X(

    on POWER1#State do event check=%time% endon

    on event#check>%sunrise% do Backlog Var4 0; Add4 %time%; Sub4 %sunrise%; RuleTimer3 %Var4% endon

    on VAR4#state do RuleTimer3 %Var4% endon

    on Rules#Timer=3 do Backlog power1 on; power2 off endon


    # Ist die Programmierung falsch, so nicht machbar oder liegt ein Tasmota-Fehler vor :?:

  • Moin.


    Kurios!


    Was passiert den mit var4 bzw. was gibt die Konsole für nen var4 Wert aus, wenn du die vor dem Ruletimer nochmal mit sich selbst setzt?

    on event#check>%sunrise% do Backlog Var4 0; Add4 %time%; Sub4 %sunrise%; Mult4 600; var4 %var4%; RuleTimer3 %Var4% endon


    Könnte aber auch daran liegen:

    RuleTimer<x> Up to eight timers to be used as countdown event (x = 1..8) 

    0..65535 = set countdown rule timer in seconds

    RuleTimer0 0 = stops and clear all timer simultaneously

    Immerhin versuchst Du einen Ruletimer mit über 102 Stunden also über 4 Tage zu setzen.;)

    Für was man das wohl in ner Sonnenauf/untergang Steuerung brauchen kann?

    Online Compiler


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

    5 Mal editiert, zuletzt von HoerMirAuf ()

  • Danke - 4 Augen sind besser als 2 !

    Ja haben im Testskript mit Mult 600 einen groben Fehler eingebaut - muss 60 sein und dann geht es auch !

    (im 2. setzen über on VAR4#state do RuleTimer3 %Var4% endon geht es dann auch mit großen Zahlen - war aber nicht das Ziel). Problem scheint eine Speicherüberlauf zu sein durch meine Provokation mit 600 !

    Danke - geht mit 60 ! :):thumbup::thumbup: