Rules und Ruletimer Funktionen ohne NTP Zeit-Synchronisierung

  • Rules und Timer Funktionen ohne NTP Zeit

    Nachdem immer wieder mal die Frage nach einer Standalone Lösung ohne WLAN aufkommt, ohne Zeit-Synchronisierung aber keine Rules als auch Timer arbeiten, hier ein kleiner Lifehack wie man das austricksen kann.


    Denn nicht bei jeder Anwendung wird eine korrekte Zeit benötigt und/oder es läßt sich nur schwer eine RTC mit anschließen.


    Der Trick an der Sache besteht darin Tasmota eine Zeit manuell vorzugeben. Die ist zwar dann abweichend von der tatsächlichen Zeit aber zumindest arbeiten dann Rules und Ruletimer etc..

    Eine Uhrzeit/Datum kann Tasmota mit folgendem Befehl übergeben werden:


    time <Unix-Epoche-Time>


    Die aktuelle EPOCHE Zeit bekomme ich z.B. hier: https://www.gaijin.at/de/tools/time-converter


    Aber wie das an Tasmota übergeben, wenn keine Rules ohne Zeit arbeiten?

    Glücklicherweise gibt es auch Rule Befehle die VOR der Zeit-Synchronisierung arbeiten um z.B. das Relais bei einem Reboot schnell zu toggeln oder in den Ursprungszustand zu bringen.

    ON System#Init DO <Befehl> ENDON

    ON Power1#Boot DO <Befehl> ENDON


    Damit läßt sich jetzt bei einem Systemstart auch eine Zeit an Tasmota übergeben:

    ON System#Init DO backlog time <UNIX-EPOCHE-TIME>; <weiterer Befehl>; <weiterer Befehl> ENDON


    Nun arbeiten die Rules auch ohne WLAN bzw. Zeit-Synchronisierung, wenn auch mit einer falschen Uhrzeit.

    Das läßt sich auch redundant verwenden wenn z.B Ruletimer trotz fehlendem Zeit-Sync arbeiten sollen.

    Soll dann bei einer späteren möglichen WLAN Verbindung noch die richtige Zeit vom NTP Server bezogen werden, einfach eine weiter Rule ergänzen:

    ON Wifi#Connected DO Time 0 ENDON


    Ein komplettes Ruleset-Beispiel wäre:

    Code
    Rule1
    ON System#Init DO Time 1625436000 ENDON
    ON Wifi#Connected DO Time 0 ENDON

Teilen

Kommentare 1

  • Hi,


    das klingt ja schon mal sehr gut und vielen Dank für den Hinweis! Das muss ich nämlich unbedingt damit versuchen. Hatte nämlich den Fall, dass das Wifi Signal zu schwach war, mein Tasmota Device hat das Signal verloren und hat einfach den Dienst quittiert. Erst als das System wieder Empfang hatte, hat es weiter gearbeitet. (Auto Thermostat mit einer gemoddeten S20 und DS18B20 mit angepassten Regel von der Tasmota Seite -> Simple Thermostat Example).


    Was mich interessiert bzw. irritiert: Wenn das System startet oder kein WLAN Empfang (mehr) hat, weil z.B. einfach zu schwach, Router ausgefallen oder sonst was, dann hat es doch entweder eine Zeit bekommen oder es hat die UNIX Standardtime mit 0, also 1970-01-01 0:00Uhr. Warum arbeitet das System nicht damit (weiter)?


    Danke schonmal 🙏