Moin,
gerade gefunden:
ESP8266 NTP Abfrage mit Sommerzeit / Winterzeit (NodeMCU, Wemos D1) (ziemlich neue Version)
Vielleicht hilft es dem ein oder anderen.
Grüße
Moin,
gerade gefunden:
ESP8266 NTP Abfrage mit Sommerzeit / Winterzeit (NodeMCU, Wemos D1) (ziemlich neue Version)
Vielleicht hilft es dem ein oder anderen.
Grüße
taximan:
gerade gefunden:
ESP8266 NTP Abfrage mit Sommerzeit / Winterzeit (NodeMCU, Wemos D1) (ziemlich neue Version)Vielleicht hilft es dem ein oder anderen.
Ja, da kann man dem Wener schon mal dankbar sein, das er das für alle bereit stellt.
Ich verwende trotzdem nach wie vor:
#include "TimeLib.h" //by Paul Stoffregen, not included in the Arduino IDE !!!
#include "Timezone.h" //by Jack Christensen, not included in the Arduino IDE !!!
alt bewährt und funktioniert.
Hallo,
auf einem ESP8266 oder ESP32 sehe ich keinerlei Grund mehr nicht die time.h zu nehmen.
Die posix-timelib ist vermutlich älter als Arduino und ich zumindest habe beim ESP-Port da keine Problem gefunden.
Gruß aus Berlin
Michael
Es ist ja nicht so, dass ich vor ESP Core 2.6.0 nicht auch eine andere Variante selber gemacht hätte oder Dritt-Bibliotheken eingebunden hätte, aber wenn das quasi mit dem Arduino-ESP mitgeliefert wird, dann ist es für mich schon Zeit altes zu entrümpeln. Mittlerweise sind wir mindestens auf ESP Core 2.7.4. Kein Grund mehr das Alte mitzuschleppen.
Grundsätzlich kann ich ja nachvollziehen, wenn man vom mitgebrachten IDE Beispiel erschlagen wird, auch wenn es eigentlich nur eine Zeile ist. Man muss sich eben einmal hinsetzen und durcharbeiten, anders ist meine Seite zum NTP bare-minimum auch nicht entstanden. Und Fips hat seine Pattern auch erweitert. Also imho passt das schon.
freddy64:
Ich verwende trotzdem nach wie vor:#include "TimeLib.h" //by Paul Stoffregen, not included in the Arduino IDE !!!
#include "Timezone.h" //by Jack Christensen, not included in the Arduino IDE !!!
alt bewährt und funktioniert.
Ach, ja, der Einbinder!
JQuery für drei Zeilen JS, Bootstrap für 10 Zeilen CSS und zwei extra Libs für die Zeit weil das Esp Framework immer noch zu schlank ist.
Aber Danke das du uns deine Vorlieben nicht vorenthalten hast.
JQuery für drei Zeilen JS, Bootstrap für 10 Zeilen CSS und zwei extra Libs für die Zeit weil das Esp Framework immer noch zu schlank ist.
kann ja sein, dass der TO nur ein Bespiel veröffentlicht hat und auf seinem ESP noch mehrere HTML-Seiten vorhanden sind.
@Derfips
Hast du eine TimeLib mit geringem Speicherbedarf für Datum, Zeit und Zeitzonen?
Die oberen 2 #includes habe ich aus einem Projekt für einen ATtiny85, wo es auf minimalsten Speicherverbrauch ankommt.
Du hast also überhaupt nicht mitbekommen, dass es in diesem Thread um ESP8266 ging und nicht um Attiny 85?
Gruß Tommy
der TO hat einen ESP8266 Artikel verlinkt und wir diskutieren daher den ESP8266.
woher bekommst du am ATtiny85 eine Internet NTP Abfrage? Kannst mal einen Code Posten?
woher bekommst du am ATtiny85 eine Internet NTP Abfrage? Kannst mal einen Code Posten?
Mein Fehler, das Beispiel mit TimeLib.h und Timezone.h war für einen ESP8266 und nicht für einen ATtiny85. Hab mich da im Sketch-Ordner verklickt.
Habe jetzt mal meinen Sketch überarbeitet und wie im Beispiel vom (Fips die time.h eingebunden.
vorher:
Der Sketch verwendet 826378 Bytes (63%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
Globale Variablen verwenden 40112 Bytes (12%) des dynamischen Speichers, 287568 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
nachher:
Der Sketch verwendet 822778 Bytes (62%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
Globale Variablen verwenden 39736 Bytes (12%) des dynamischen Speichers, 287944 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
Da haben die 2 Stunden Arbeit schon mal etwas gebracht.
Einziges Problem:
Wenn NTP gerade nicht verfügbar ist (wegen gerade laufendem Router-Neustart oder sonstigem Internet Verbindungsfehler), was dann?
configTime() stellt die lokale Zeit entweder nach NTP oder aber auf 01.01.1970
Gibt es eine Funktion in der Art isTimeValid(local_time)?
Ich würde dann gerne im loop() alle 5 Minuten eine erneute NTP Abfrage starten, bis die Uhrzeit wieder valid ist.
Wie so oft lautet die Antwort: Schau mal bei Fips. Der hat die Prüfung in einem Beispiel gezeigt.
Gruß Tommy
Und wo genau?
Da wo es um NTP geht (ab Version 2.6.0)? Wer lesen kann, ...
Gruß Tommy
freddy64:
Und wo genau?
In diesem Sketch wird die Abfrage über "sntp_getreachability(Server 0 bis 2)" gemacht.
Mittels CallBack im Tab zum einbinden in das eigene Projekt.
Eine NTP UpdateDemo, die das Update im Seriellen Monitor anzeigt, habe ich gestern zum Nachweis erstellt.
Mit Hilfe dieser Demonstration hoffe ich Zweifler davon zu überzeugen endlich die überflüssigen Libs außen vor zu lassen.
Derfips:
Eine NTP UpdateDemo, die das Update im Seriellen Monitor anzeigt, habe ich gestern zum Nachweis erstellt.
Moin fips,
ist das beabsichtigt, das der Sketch hellgrau auf weissem Grund mit hellgrauem Muster angezeigt wird, während NTP Update Demonstration. NTPUpdateDemo.ino in normal schwarz sind?
Bei mir werden alle Sketche mit schwarzen Hintergurnd dargestellt.
Auch mit offener Konsole (Cache deaktiviert) und neuladen.
Welchen Browser verwendest du?
Derfips:
Bei mir werden alle Sketche mit schwarzen Hintergurnd dargestellt.
Welchen Browser verwendest du?
Aahhh.. da läuft ein js, das auf den Hintergrund einen bg-Frame und den Inhalt farblich umbaut.
Ohne ist es zu hell.
(Mozilla-Engine mit abgespecktem Skripthandling)
Das Syntax-Highlighting wird mit JS erledigt. Händig mit CCS wäre das nicht zu schultern.
Mit Hilfe dieser Demonstration hoffe ich Zweifler davon zu überzeugen endlich die überflüssigen Libs außen vor zu lassen.
....hab ich schon verstanden und alle fremden Libs rausgeschmissen.
Mir geht es nur noch um eine Validierung der NTP Zeit.
Ich habe jetzt so einen kleinen Workaround in meinen Sketch eingebaut.
bool isDateValid(tm ntp_time) {
return (ntp_time.tm_year < 100) ? false : true;
}
Bei false wird NTP nach 1 Minute erneut abgefragt, bei true nach 24 Stunden.
Liest Du eigentlich auch die Antworten, die Du bekommst? Fips hat Dir doch schon in #13 geschrieben, wie es richtig geht.
Gruß Tommy