Einschaltverzögerung und Zeitplan

  • Kann man eine Einschaltverzögerung mit dem Zeitplan zusammen bringen?

    Die Einschaltverzögerung soll nach einem Stromausfall 10 min mit dem Einschalten warten aber das zu schaltende Gerät unterliegt auch einem Zeitplan.

    Jetzt ist es so das mein Gerät immer eingeschaltet wird wenn tasmota bootet auch wenn das Gerät laut Zeitplan nicht eingeschaltet werden soll.

    Wie löse ich das Problem?

    So nutze ich die Einschaltverzögerung

    Code
    rule on system#boot do ruletimer1 600 endon on Rules#Timer=1 do power on endon
  • Kannst du den "Zeitplan" als Rule abbilden ? Dann zwei Rules verwenden, die eine für den Zeitplan und die andere für die Einschaltverzögerung. Die Einschaltverzögerung enabled erst die Rule vom Zeitplan. Und das Einschalten nach Spannungswiederkehr jedenfalls ausschalten.

  • 2. Variantenansatz:

    Nach Stromausfall sind Variablen immer = 0

    Start mit 0 und nach Ablaufzeit 600 um VAR1 = 1

    Wenn Timer16 Zeit eintrifft stellt VAR1 auf 2 hoch

    hüte dich vor Kommentaren in der Rule - müssen weg !


    Rule1

    on Time#Initialized do Backlog VAR1 0; ruletime1 600 endon ' Var1 0 - nicht nötig!!

    on Button1#State do ADD1 1 endon ' wenn manueller per Button Start erfolgt (Normalbetrieb)

    on Clock#Timer=16 do ADD1 1 endon ' Timerzeit setzt VAR1 hoch

    on Rules#Timer=1 do ADD1 1 endon ' Wartezeit setzt VAR1 hoch

    on VAR1#State>3 do Backlog Power1 0; VAR1 0 endon 'Ausschalten möglich

    on VAR1#State==2 do Backlog Power1 1 endon ' UND-Verknüpfung Clock + 600 Sekunden

    PS:

    Wenn der Spannungsausfall in die ClockTimer-Zeit fällt funzt es nicht !

    Nach einem Nachstarten des ClockTimers nach Boot suche ich noch.

    Bild Timer16 Einstellung

    3 Mal editiert, zuletzt von karoCB (27. Februar 2023 um 09:09)

  • Moin

    Jetzt ist es so das mein Gerät immer eingeschaltet wird wenn tasmota bootet auch wenn das Gerät laut Zeitplan nicht eingeschaltet werden soll.

    Wenn das Gerät beim booten IMMER aus sein soll, dann würde ich den Poweronstate als erstes mal auf 0 setzten

    Poweronstate 0

    Danach greifen ganz normal die zukünftigen timer.

    Sollte ein Timer den power1 zum Zeitpunkt des Stromausfalls geschaltet haben, würde ich einfach den Powerstate in dauerhafte Variable einlesen und nach ablauf der Einschaltverzögerung einfach den letzten Powerstate annehmen lassen:

    Code
    rule1 
    on power1#state do mem1 %value% endon
    on system#boot do ruletimer1 600 endon
    on rules#timer=1 do power1 %mem1% endon

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    Einmal editiert, zuletzt von HoerMirAuf (27. Februar 2023 um 08:21)

  • Leider ist die Einbindung des ClockTimer-Panels für Standarduser aus meiner Sicht nicht sicher lösbar und würde doch die Lösung von Noschvie anstreben.

    z.B. 7-10 Uhr ein und 17-20 Uhr ein kann viele Fehlerzustände erwarten lassen.

    Spannungsausfall von 6-21 Uhr, wie 6-8 Uhr oder 15 -16 Uhr usw. das kann alles so nicht sicher abgedeckt werden.

  • Leider ist die Einbindung des ClockTimer-Panels für Standarduser aus meiner Sicht nicht sicher lösbar

    Da geb' ich dir recht.

    Denn Clocktimer Auslösungen, die während eines Stromausfalls aktiv werden würden, können so nicht berücksichtigt werden.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Poweronstate 0 ist Grundbedingung - das nehmen wir von HoerMirAuf mit.

    die Umsetzung der Idee von Noschvie bleibt als Notlösung

    hier eine mögliche Lösung ohne Test - was macht diese in deinem Sinne ?

    Rule1

    ON Time#Initialized DO Backlog event checktime=%time%; RuleTimer1 60 ENDON

    on Button1#State do ADD1 1 endon

    on Rules#Timer=1 do Backlog VAR2 1; ADD1 1 endon

    ON Clock#Timer DO event checktime=%time% ENDON

    ON event#checktime>=%timer1% DO Backlog var1 1; ADD1 %VAR2% ENDON

    ON event#checktime>=%timer2% DO var1 0 ENDON

    ON event#checktime>=%timer3% DO Backlog var1 1; ADD1 %VAR2% ENDON

    ON event#checktime>=%timer4% DO var1 0 ENDON

    rule2

    ON VAR1#state<2 DO Power1 0 ENDON

    ON VAR1#state==2 DO Power1 1 ENDON

    ON VAR1#state>2 DO Backlog Power1 0; VAR1 0 ENDON

  • Oh wow, jetzt bin ich erschlagen von soviel information. Erstmal herzlichen Dank das ihr euch überhaupt deshalb Gedanken macht.

    Leider verstehe ich nur die hälfte von dem was ihr vorgeschlagen habt. Als erstes werde ich mal in meiner Kiste nach eine ESP01 mit Relais suchen um was zum gefahrlosen testen zu haben :)

  • So - jetzt auf die Zielvorgabe gesundgeschrumpft !

    und für dich dokumentiert (Achtung - Kommentare nicht in die Rule übernehmen)

    z.B. 7-10 Uhr ein und 17-20 Uhr

    Rule1

    ' Wenn die Zeit synchron läuft RuleTimer laden mit 10 Minuten

    ON Time#Initialized DO RuleTimer1 600 ENDON

    'wenn Timer1 aktiviert event aktivieren mit Zeitdaten

    on Rules#Timer=1 do Backlog event checktime=%time% endon

    'Variable auf 0 stellen

    ON event#checktime DO %var1% 0 ENDON

    'Wenn Zeit vom Timer 1 kleiner als aktuelle Zeit dann 1 (ein)

    ON event#checktime>=%timer1% DO var1 1 ENDON

    'Wenn Zeit vom Timer 2 kleiner als aktuelle Zeit dann aus

    ON event#checktime>=%timer2% DO var1 0 ENDON

    'Wenn Zeit vom Timer 3 kleiner als aktuelle Zeit dann ein

    ON event#checktime>=%timer3% DO var1 1 ENDON

    'Wenn Zeit vom Timer 4 kleiner als aktuelle Zeit dann aus

    ON event#checktime>=%timer4% DO var1 0 ENDON

    'event immer auslösen Power setzen entsprechend Variableninhalt

    ON event#checktime DO Power1 %var1% ENDON


    Zeiten im Wechsel on/off setzen !

    2 Mal editiert, zuletzt von karoCB (27. Februar 2023 um 19:55)