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:
Kommentare 1
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
soma
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 🙏