Timer Regeln und Stromausfall

  • Hi,

    ich habe eine Steckdose mit Tasmota Firmware an einer anderen Steckdose verbaut die regelmäßig keinen Strom hat.

    Ich möchte diese gerne z.B. zwischen 10 und 16 Uhr einschalten.

    Wenn die Steckdose jetzt aber erst um 11 Uhr Strom bekommt würde sie nicht einschalten.

    Wie würdet ihr das lösen.


    Mfg

  • Nur zur Klärung: Meinst du folgendes: Wenn die Grundsteckdose erst nach 10 Uhr einschaltet und die aktuelle Uhrzeit ist größer gleich 10:00 UND kleiner gleich 16:00 Uhr, dann schalte die Tasmota-Steckdose ein (und um 16:00:01 Uhr wieder aus).

  • Ja genau.

    Und das am besten mit unterschiedlichen Zeiten an unterschiedlichen Wochentagen

    So weit ich es überblicke, wird es mit Tasmota Scripting schwierig. Aber damit kenne ich mich nicht aus. Vielleicht kann gemu2015 dazu mal eine Einschätzung abgeben. Ich für meinen Teil würde so etwas mit MQTT und Python machen. Vermutlich geht es auch mit IOBroker und Co. Du solltest erst einmal einen Plan machen, wann was passieren soll und welche Bedingungen dabei erfüllt sein müssen. Dann gibt es vielleicht präzisere Antworten als diese hier.

  • moik

    mit scripting geht das. hier eine einfache aber weniger elegante Lösung


    >S

    if wday==1

    then

    ; Sonntag

    ; zwischen 16 und 18:30 Uhr anschalten

    ; time ist Minuten nach Mitternacht

    if time>16*60

    and time<18*60+30

    then

    ->power1 1

    else

    ->power1 0

    endif

    endif



    etc für alle Wochentage


    Man könnte das auch mit eigenem WebUI machen wäre aber erheblich aufwändiger


    Gruß Gerhard

  • Vielen Dank gemu funktioniert sehr gut.

    Das einzige was mir jetzt noch fehlt ist ein override Button mit dem ich die Zeitschaltung deaktivieren kann.

    Das muss ich mir nochmal genau anschauen. Wenn ich es fertig habe werde ich es natürlich posten.

  • Stelle jetzt schon mal das neue script ein damit andere das auch testen können.


    das funktioniert zur Zeit nur mit dem scripter von meinem Fork und

    zusätzlich dem

    #define SCRIPT_POWER_SECTION


    Man kann jetzt den Timer deaktivieren wie oben


    und zusätzlich wenn er eingeschaltet ist auch überschreiben.


    Wenn man den Button oder per MQTT den Power Befehl schickt wird Power geschaltet und der Timer wird deaktiviert bis es im Timer den

    nächsten Statuswechsel gibt.



    Update neue Version


    Jetzt sollte es kaum noch offene Wünsche geben:


    Zufallszeit, Sunrise, sunset, täglich, Wochenende, Woche


    Die Anzahl der Timer bis 40



    timer_script_neu.txt

  • Ähm, wie bekomme ich Datum und Uhrzeit in der GUI angezeigt und auch die Timmer. Das empfinde ich als sehr hilfreich!

    FB 7590 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly jetzt 2.5;) (OriginalFW) als Rolladenschalter, 2 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 3 x Sonoff SV (Tasmota) als smarte Gartenbewässerung und Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 1 x Frau ;), 1 x Tochter


    Mein Projekt: Smarte Gartenbewässerung

  • Geht nur mit script.

    ist eine eigene Programmiersprache wesentlich mächtiger als rules.

    musst du halt selbst kompilieren da die vorkompilierten "normalen" binaries alle mit rules arbeiten.


    Dieses script erzeugt z.B. die Uhrzeit und Datum wie oben im screenshot


    >D

    res=0

    >B

    ; Monate

    res=is1(0 "Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Okt|Nov|Dez")

    ; Wochentage

    res=is(0 "So|Mo|Di|Mi|Do|Fr|Sa|")



    ; Uhrzeit, Wochentag und Datum anzeigen

    >W

    <center><h1 style="color:green;font-size:40px;">%2.0hours%:%2.0mins%:%2.0secs%</h1>{m}%is[wday]% %0day%-%is1[month]% <br>%0year%

  • Danke, das wäre ja nicht das Problem, Mal eine eigene bin zu erstellen wo Script anstatt Rules eingestellt ist. Dann kann ich aber nicht mehr OTA Flaschen.

    FB 7590 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly jetzt 2.5;) (OriginalFW) als Rolladenschalter, 2 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 3 x Sonoff SV (Tasmota) als smarte Gartenbewässerung und Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 1 x Frau ;), 1 x Tochter


    Mein Projekt: Smarte Gartenbewässerung

  • warum nicht OTA ? Geht ganz problemlos oder meinst du OTA direkt von Tasmota ?


    Ja klar gibt keine fertigen binaries mit scripts. Theo ist der Meinung das Rules erheblich einfacher zu verstehen sind und scripts nur für Spezialisten gedacht sind.

    Ansichtssache. Ich fand rules immer sehr umständlich, selbst für einfache Sachen.


    PS. dann hast du auch eine sehr einfache Lösung für deine Verknüpfung mehrerer Geräte ins Display (anderer Post)


    Globale script Variablen werden auf allen Tasmota Geräten upgedated ohne dass du die iPs kennen musst.


    Wüsste nicht wie man dass mir rules machen könnte.

  • Ja ich meinte OTA direkt von Tasmota. Sorry, war ein wenig unglücklich ausgedrückt.


    Zu deinem PS:


    Verstehe ich das richtig? Wenn ich auf beiden Geräten scipts aktiviert habe und die Temperatur des Außenthermometers in eine Variable des Gerätes A schreibe, dann wird sie automatisch an Gerät B übermittelt und ich kann sie dort verwenden? Das wäre ja einfach, mal abgesehen davon das ich mich dann in scripts einarbeiten müßte. Oder hast du da aus dem stehgreif ein Script z.B. für einen AM2301 Temperatur fürs schreiben und lesen? Das könnte ich dann ja evtl ausbauen....

    FB 7590 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly jetzt 2.5;) (OriginalFW) als Rolladenschalter, 2 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 3 x Sonoff SV (Tasmota) als smarte Gartenbewässerung und Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 1 x Frau ;), 1 x Tochter


    Mein Projekt: Smarte Gartenbewässerung

  • hier ein ganz simples Beispiel für globale Variablen:


    script im "fernen Gerät" (wenn du so willst Sender)

    >D

    ; definiere globale Variable mit Namen temp

    g:temp=0

    >T

    ; setze (und sende) die Variable bei Teleperiod

    temp=BME280#Temperature


    script in Display Gerät

    also Empfänger, obwohl das auch anders herum funktioniert, wenn du hier temp setzt,

    würde es auch in den Empfänger übertragen, also bidirektional und zwar auch an mehrere Geräte

    wenn sie die Variable mit dem gleichen Namen definiert haben

    >D

    ; globale Variable mit demselben Namen

    g:temp=0

    ; lokale Variable

    hum=0


    >B

    ; beim booten display löschen dt=displaytext

    dt [z]


    >T

    ; setze lokale Variable bei Teleperiod

    hum=BME280#Humidity


    >S

    ; jede Sekunde ins Display schreiben

    dt [l1c1]%hum% %%

    dt [l2c1]%temp% C

  • Danke, werde es mal testen. Hab aber auch noch andere Baustellen...

    FB 7590 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly jetzt 2.5;) (OriginalFW) als Rolladenschalter, 2 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 3 x Sonoff SV (Tasmota) als smarte Gartenbewässerung und Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 1 x Frau ;), 1 x Tochter


    Mein Projekt: Smarte Gartenbewässerung