rule Problem

  • Hi

    ich möchte beim schliessen von Kontakt 1 folgende Rule starten:

    Rule1
    on power1#state=1 do ruletimer1 18 endon
    on rules#timer=1 do Backlog Power1 1; delay 90; ruletimer1 0 endon

    power 1 wenn geschlossen (für 1 Sekunden mit Pulsetime) soll er in 18 sekunden nochmal geschlossen werden und dann fertig sein.

    leider ist dies eine endlosschleife verstehe aber nicht warum. Sieht jemand meinen Fehler ?

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Zur hilfreichsten Antwort springen
    • Offizieller Beitrag

    Hi

    die rule

    on power1#state=1 do ruletimer1 18 endon

    wird immerzu nachgetriggert und damit der ruletimer neu gestartet.

    Kann man verhindern mit rule1 5 (ONCE) dann triggert die rule erst wieder wenn der power1#state sich ändert, also mal 0 war und wieder auf 1 geht. (es müsste dann aber der ruletimer in ein anderes ruleset "rule2" ausgelagert werden)

    Aber macht er das nicht, weil warum solltest du dann nach 18 sekunden erneut ausschalten?

  • mit ruletimer1 0 wollte ich das verhindern, geht aber wohl nicht

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Aber macht er das nicht, weil warum solltest du dann nach 18 sekunden erneut ausschalten?

    nicht erneut aus sondern ein.

    Sinn der Sache ich starte eine Sprachansage mit einem Impuls, diese Ansage wird nur mit einem zweiten Impuls (nach 18 Sekunden) wieder beendet. und startet dann wieder bei einem 3. Impuls u.s.w.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    • Offizieller Beitrag

    Sinn der Sache ich starte eine Sprachansage mit einem Impuls, diese Ansage wird nur mit einem zweiten Impuls (nach 18 Sekunden) wieder beendet.

    Wozu dann der Pulsetime mir 1 Sekunde?

    • Hilfreichste Antwort
    • Offizieller Beitrag

    Ach ich versteh zum Impulse Erzeugen.

    Ich würde einen Zähler (var1) einbauen damit nicht beim einschalten durch den Timer getriggert wird:

    Code
    rule1
    on system#boot do var1 0 endon
    on power1#state=1 do add1 1 endon
    on var1#state==1 do ruletimer1 18 endon
    on rules#timer=1 do backlog power1 1; var1 0 endon
  • Das war wohl die Lösung. DANKE!

    verstehe aber nicht warum in meiner Lösung der Befehls im backlog ruletimer1 0 nicht beachtet wird, obwohl laut Konsole ausgeführt wurde.

    Auf die Idee mit dem Zähler bin ich gar nicht gekommen, war zusehr in meine Variante versteift :(

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • mafrei 11. Juni 2025 um 16:19

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.
    • Offizieller Beitrag

    verstehe aber nicht warum in meiner Lösung der Befehls im backlog ruletimer1 0 nicht beachtet wird

    Weil die Bedingung für das deaktivieren des timers ja das auslösen deselbigen ist.

    Und jedesmal wenn er auslöst wird er durch power1 neu aktiviert .... und das innerhalb der Rule Laufzeiten --> Dauerschleife !!