Tasmota-Steckdose als Universal Timer

  • Hallo, ich hatte gestern so eine Idee und frage euch ob so etwas mit Tasmota Rule möglich ist.

    Es soll eine belibige Steckdose auf der Tasmota läuft als Timer benutzt werden.

    Ein Druck auf den Taster soll die Dose einschalten und ein späterer Druck die Dose wieder ausschalten. ( so wie das üblich ist )

    Drückt man aber kurz nach dem einschalten ( ich sage Mal inerhalb 10 Sekunden )mehrfach auf den Taster soll entsprechend der Anzahl der Tastendrücke ein Ruletimer aktiviert werden der erst nach Ablauf die Dose wieder ausschaltet.

    z.B. 5Mal drücken setzt den Timer auf 5 Minuten (5x 1 Minute) oder 4x drücken setzt den Timer auf 1Stunde(4x15 Minuten), die entsprechnede Zeiteinheit muss natürlich vorher in der Rule festgelegt werden.

    Ich habe mit Rule nur Grundkenntnisse und Frage ob es möglich wäre und wie die Rule gestaltet werden müsste. Oder muss man bei solchen Aufgaben besser auf das Tasmota Script gehen?


    Grüße Ronald

  • Das aktivieren des Timers über den Taster finde ich als elegantere Lösung. So können auch Personen ohne Zugriff auf die WebUI der Dose den imer einschalten.

    Man könnte den Timer dann als Sicherheitsabschaltung für einen vergessenen Lötkolben der Bügeleisen verwenden.

  • Wie oben schon geschrieben habe ich nur Gundkennstnissse im Bereich Rule.

    Wie müsste eine Rule aussehen die in den ersten 10 Sekunden nach dem 1. Tastendruck die Anzahl der Tastendrücke zählt und in eine Variable schreibt, welche dann multipliziert mit der jeweiligen Zeiteinheit den Ruleteimer startet?


    Schonmal vielen Dank für die Hilfe

  • Hallo, ich habe mir nun zur Lösung die folgende Rule zusammen gesetzt.

    Die Rule läuft aber nicht sauber durch.

    Rule1
    ON button1#state=10 DO Backlog Power1 on; RuleTimer1 10; add1 1 ENDON
    ON Rules#Timer1=1 DO RuleTimer2 %Mult1 10% ENDON
    ON Rules#Timer2=1 DO Backlog Power2 off, var1 0 ENDON
    ON button1#state=3 DO Backlog var1 0; Power1 0 ENDON
    Rule1 1


    Was geht ist:

    -1 Tastendruck schaltet das Relais ein, der Timer 1 startet, weitere Tastendücke zählen die Variable sauber hoch,

    die addierte Variable kann über die Konsole abgefragt werden. Ein langer Tastendruck schaltet das Relais wieder aus.

    Was nicht geht ist:

    -nach Ablauf des Timers1 wird Timer2 nicht gestartet ( auch wenn ich die Rule auf "ON Rules#Timer1=1 DO RuleTimer2 600 ENDON "

    ändere wird der Timer nicht gestartet. Die Variable 1 wird mit %Mult1 10% nicht multipliziert.


    Wo liegt hier der Fehler???

  • Auch wenn ich auf 2 Rule aufteile wird der 2. Timer nicht gestartet

    Rule1
    ON button1#state=10 DO Backlog Power1 1; RuleTimer1 10; add1 1 ENDON
    ON button1#state=3 DO Backlog var1 0; Power1 0 ENDON
    Rule1 1

    Rule2
    ON Rules#Timer1=1 DO RuleTimer2 %Mult1 10% ENDON
    ON Rules#Timer2=1 DO Backlog Power2 off; var1 0 ENDON
    Rule2 1

  • Syntaxfehler [Rules#Time=2] - aber nicht die Lösung, da Ergebnisse nicht in der selben Rule verarbeitet werden !

    Rule1
    ON button1#state=10 DO Backlog Power1 1; RuleTimer1 10; add1 1 ENDON
    ON button1#state=3 DO Backlog var1 0; Power1 0 ENDON

    Rule2
    ON Rules#Timer=1 DO RuleTimer2 %Mult1 10% ENDON
    ON Rules#Timer=2 DO Backlog Power2 off; var1 0 ENDON

    Power 2??

  • dein Problem - eine halbe Lösung !

    Rule1
    ON button1#state>9 DO Backlog VAR1 %value%; Mult1 10; Power1 1; Var2 1 ENDON
    ON button1#state=3 DO Backlog var1 0; Power1 0 ENDON

    Rule2
    ON VAR2#State>0 do RuleTimer2 %VAR1%; var2 0 endon
    ON Rules#Timer=2 DO Backlog Power1 0; var1 0 ENDON

    Einmal editiert, zuletzt von karoCB (1. Juni 2024 um 17:22)