Forum: Mikrocontroller und Digitale Elektronik Uhrzeit und Datum ermitteln


von ESP8266 (Gast)


Lesenswert?

Hallo,

ich würde gerne einem Gerät das mit einem ESP Modul ausgestattet ist die 
Möglichkeit geben, die aktuelle Uhrzeit aus dem Web zu beziehen.

Gibt es eine Seite, von der man die Uhrzeit und das Datum garantiert und 
immer auch in Zukunft in immer exakt der gleichen Codierung auslesen 
kann und zwar ohne dort Megabyteweise Datentraffic zu generieren und 
kann man den eigenen Standort dort irgendwie ebenfalls mit verifizieren, 
damit man "die richtige" Uhrzeit erfährt?

Vielleicht gibt es ja ein Projekt, welches sich dieser Aufgabe 
angenommen hat und eine entsprechende Standardisierung vorgenommen hat?

von Peter II (Gast)


Lesenswert?

ESP8266 schrieb:
> Vielleicht gibt es ja ein Projekt, welches sich dieser Aufgabe
> angenommen hat und eine entsprechende Standardisierung vorgenommen hat?

https://de.wikipedia.org/wiki/Network_Time_Protocol
http://www.pool.ntp.org/zone/de

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Offset zu UTC (GMT+1) und Umschaltung Sommer-/Winterzeit nicht 
vergessen.

von Werner (Gast)


Lesenswert?

ESP8266 schrieb:
> Gibt es eine Seite, von der man die Uhrzeit und das Datum garantiert und
> immer auch in Zukunft in immer exakt der gleichen Codierung auslesen
> kann

in der Absolutheit sicher nicht, früher dachte man auch das es immer 
Nachtwächter geben wird die die Zeit ansagen.

von Εrnst B. (ernst)


Lesenswert?

Je nach Framework das du für deinen ESP verwendest, und deiner 
Netzwerk-Umgebung reicht ein "sntp.sync()".

Falls du statt UDP lieber TCP willst, dir das alles eh zu kompliziert 
ist, und du sowieso schon mit HTTP rumwerkelst:
HEAD www.google.com
-->
"Date:"  Header in der Antwort auswerten.

Ist dann aber viel String-geschnippsel, "Date: Wed, 25 Jan 2017 13:49:13 
GMT"

von M.N. (Gast)


Lesenswert?

Ist nicht die PTB in Deutschland für die amtliche Uhrzeit zu ständig?
Ehrlich, die sollten doch auch nen NTP-Server betreiben.

von Εrnst B. (ernst)


Lesenswert?

M.N. schrieb:
> PTB in Deutschland

https://www.ptb.de/cms/ptb/fachabteilungen/abtq/fb-q4/ag-q42/zeitsynchronisation-von-rechnern-mit-hilfe-des-network-time-protocol-ntp.html

ptbtime1.ptb.de
ptbtime2.ptb.de
ptbtime3.ptb.de

die sind aber auch in den entsprechenden Pools drinnen.

von Welle 🧐 S. (w3llschmidt)


Lesenswert?


: Bearbeitet durch User
von posti (Gast)


Lesenswert?

Hi

Oder, Du richtest Dir einen eigenen Server ein, Der Deinen Steinchen im 
fernen Ausland die aktuelle Uhrzeit sagt.

Netter Nebeneffekt: Du kannst direkt Update anbieten ;)
Und wenn Deine Steinchen nicht nach 4 Wochen 'daheim angerufen haben' - 
werden Sie halt ehlendig langsam.

Wer jetzt Parallelen zu einem Betriebssystem aus Redmond sieht - Die 
könnten zumindest die Haus-eigene-Uhrzeit verteilen.

Wie man aber wirklich zukunftssicher immer 'ankommt', ist wohl noch 
nicht raus.

Der Umweg über eine beliebige Suchmaschine nach 'aktuelle Uhrzeit' 
sollte aber auf Länger funktionieren.
Vor Allem, da man ja 'zwischendurch' auch nach Suchmaschinen suchen kann 
- wenn die 'Voreingestellte' nicht erreichbar ist, hat man zumindest 
Alternativen zum Suchen der Uhrzeit.

MfG

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Jeder Webserver liefert beim Abruf einer Webseite im HTTP-Header seine 
lokale Uhrzeit und Datum mit.

Google sollte es z.B. noch ein paar Jahre geben und deren Serverzeit ist 
sicher ziemlich genau.  Mach also einen Request auf google.com und brich 
die Datenübertragung einfach nach dem Header ab ... dürften so um die 
50...100 Bytes pro Request in beiden Richtungen sein.

Der Rest ist etwas Parsing und die Korrektur auf Ortszeit ...

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

Frank E. schrieb:
> Google sollte es z.B. noch ein paar Jahre geben und deren Serverzeit ist
> sicher ziemlich genau.  Mach also einen Request auf google.com und brich
> die Datenübertragung einfach nach dem Header ab ... dürften so um die
> 50...100 Bytes pro Request in beiden Richtungen sein.

Genau das meinte ich mit:

Εrnst B. schrieb:
> HEAD www.google.com
> -->
> "Date:"  Header in der Antwort auswerten.

Nur dass der HEAD-Request von sich aus den Response-Body unterdrückt, 
und deshalb kein gewaltsamer Verbindungsabbruch nötig ist.

von Matthias T. (mati123)


Lesenswert?

M.N. schrieb:
> Ist nicht die PTB in Deutschland für die amtliche Uhrzeit zu ständig?
> Ehrlich, die sollten doch auch nen NTP-Server betreiben.

Die betreiben doch einen NTP-Server. Und dort kann man schon seit Jahren 
die Zeit beziehen.

von Kolja (Gast)


Lesenswert?

#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const char *ssid     = "****";
const char *password = "****";


WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);



void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while ( WiFi.status() != WL_CONNECTED )
  {
  delay ( 500 );
  Serial.print ( "." );
  }
  Serial.println ( "verbunden" );
  timeClient.begin();
}



void loop() {
  timeClient.update();
  Serial.println(timeClient.getMinutes());
  delay(60000);
}


Sowas?

von Wolfgang (Gast)


Lesenswert?

ESP8266 schrieb:
> Gibt es eine Seite, von der man die Uhrzeit und das Datum garantiert und
> immer auch in Zukunft in immer exakt der gleichen Codierung auslesen
> kann und zwar ohne dort Megabyteweise Datentraffic zu generieren und
> kann man den eigenen Standort dort irgendwie ebenfalls mit verifizieren,
> damit man "die richtige" Uhrzeit erfährt?

Ja, stellt dir einen eigenen Server hin, der seine Uhr mit einem 
Zeitserver synchronisiert und sie deinen Clients zur Verfügung stellt. 
Dann weisst du wenigstens, wen du in den Ar..h treten musst, wenn es 
nicht klappt.

Falls du ganz sicher gehen willst, dass dein Server immer eine halbwegs 
aktuelle Zeit hat, bietet sich als Fall-Back bei Internetausfall ein 
Rubidium Frequenznormal (FE-5680A o.ä. für unter 200€) an.

von alter endianer (Gast)


Lesenswert?

Primitiver und deprecated : rdate nach RFC-868

von Jimmy C. (jimmyo)


Lesenswert?

Hallo,

Ich weiß, der Artikel ist schon etwas älter.
Aber ich stelle gerade von NTP auf
http://worldtimeapi.org/api/ip
oder
https://ip-api.com/
um ...
 Muss ich erst mal vergleichen, und ein paar andere gibts auch noch.

Da habe ich die Systemzeit + Localtime Info + Timezone und mehr.
So kann ich meine Locale Zeit anzeigen lassen, aber intern mit der 
Systemzeit arbeiten.

von UKW (Gast)


Lesenswert?

> bei Internetausfall ein  Rubidium Frequenznormal

Wenn es wirklich einigermassen genau sein soll,
waere ein Wasserstoff-Maser eindeutig die bessere Quelle!

Aber natuerlich nicht
> für unter 200€

Sparbroetchen nehmen einen gut abgeglichenen OCXO.

Aber selbst (Router-)Consumertechnik schafft < 2 sec in 7 Tagen.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich nutze inzwischen GPS-Module, gibs für Arduino o.ä. (RS232) ab ca. 
8,-
Funzt auch ohne Internet und liefert sogar den Ort für die Timezone ...

von Wolfgang (Gast)


Lesenswert?

Frank E. schrieb:
> Funzt auch ohne Internet und liefert sogar den Ort für die Timezone ...

Die Bestimmung der Zonenzeit ist damit aber nicht gelöst, weil sich 
sowohl Zeitzone als auch gesetzliche Zeit per Abstimmung in Brüssel oder 
auf Grund anderer Entwicklungen jederzeit ändern können.

(Soviel zum Thema "... garantiert und immer auch in Zukunft")

von DAB+ (Gast)


Lesenswert?

> für Arduino o.ä. (RS232) ab ca. 8,-

Wenn es nicht fuer "Arduino" sein muss, auch fuer weniger als die 
Haelfte.

Das ist wohl wie mit Internetshops, die bei einem detektierten Mac
auf die Preise 100% automatisch aufschlagen.

Further so!

von Onkel Ted (Gast)


Lesenswert?

Wolfgang schrieb:
> ESP8266 schrieb:
>
>> Gibt es eine Seite, von der man die Uhrzeit und das Datum garantiert und
>> immer auch in Zukunft in immer exakt der gleichen Codierung auslesen
>> kann und zwar ohne dort Megabyteweise Datentraffic zu generieren und
>> kann man den eigenen Standort dort irgendwie ebenfalls mit verifizieren,
>> damit man "die richtige" Uhrzeit erfährt?
>
> Ja, stellt dir einen eigenen Server hin, der seine Uhr mit einem
> Zeitserver synchronisiert und sie deinen Clients zur Verfügung stellt.
> Dann weisst du wenigstens, wen du in den Ar..h treten musst, wenn es
> nicht klappt.
> Falls du ganz sicher gehen willst, dass dein Server immer eine halbwegs
> aktuelle Zeit hat, bietet sich als Fall-Back bei Internetausfall ein
> Rubidium Frequenznormal (FE-5680A o.ä. für unter 200€) an.

Das ist ja so ziemlich der teuerste Ratschlag den man geben kann, du 
verkaufst wohl Server Hardware und Internetleitungen.

Du brauchst für so etwas eine redundante Internetanbindung, 
ausfallsichere Server mit Notstromversorgung und das für einen popeligen 
NTP Server wovon es im Internet bereits tausende gibt. Mit Wartung hast 
du da gerade einen Posten von mehreren Tausend Euro pro Monat erzeugt. 
Da würde ich einfach ein paar von z.B. Universitäten, dem PTB oder auch 
großer Linux Distributionen verwenden und fertig. Sogar die Hersteller 
von GPS Uhren haben teils derartige Server bzw rüsten Universitäten 
damit aus.

Alternativ kann man unter Linux auch einfach GPS Module anbinden, bis 
zur Sekunde hin ist das mittlerweile geschenkt. DCF77 wäre je nach Markt 
auch eine Option.

von Frage (Gast)


Lesenswert?

Quelle?

von my2ct (Gast)


Lesenswert?

Onkel Ted schrieb:
> Alternativ kann man unter Linux auch einfach GPS Module anbinden, bis
> zur Sekunde hin ist das mittlerweile geschenkt. DCF77 wäre je nach Markt
> auch eine Option.

Wer weiss, ob der TO überhaupt ausreichend guten GPS-Empfang in seinem 
Schaltschrank (oder wo auch immer) hat.

von Manfred (Gast)


Lesenswert?

my2ct schrieb:
>> Alternativ kann man unter Linux auch einfach GPS Module anbinden, bis
>> zur Sekunde hin ist das mittlerweile geschenkt. DCF77 wäre je nach Markt
>> auch eine Option.
>
> Wer weiss, ob der TO überhaupt ausreichend guten GPS-Empfang in seinem
> Schaltschrank (oder wo auch immer) hat.

So ist das, GPS lehne ich generell ab, weil es eine Außenantenne 
benötigt. DCF hat auch seine Fallen, aber ist im Haus nur selten 
problematisch.

Es bleibt eine sinnlose Leichnfledderung:
ESP8266 schrieb:
> 25.01.2017 14:29

von Kurt (Gast)


Lesenswert?

NTP liefert UTC. Würde problemlos über jede erdenkliche 
Software-Lebensdauer als Zeitstempel und Referenz funktionieren, wenn 
schlechte Programmierung nicht mit Schaltsekunden in üble Konflikte 
käme.

Nur weil Programmierer-Nerds nicht mit real-world-Problemen belästigt 
werden möchten, (Haben wir fast alle erlebt: Die Zeitrechnung war mit 
1999 nicht vorbei...) sollen die Schaltsekunden abgeschafft werden. 
Selbst Menschen mit etwas weiterem Horizont (war das die 
heise-Redaktion?) kamen schon mit solchem Unsinn daher.

Ein paar international vereinbarte Regeln für's Handling könnten in 
einer kleinen pseudo-code-bib zusammengefasst werden, die auch an 20 
Jahre alter Rechner-Hardware nicht scheitern dürfte. Nur an schlechten 
kurzsichtigen Programmierern.

von (prx) A. K. (prx)


Lesenswert?

Es gibt sogar noch das in Klartext (notfalls per Telnet) abfragbare 
Daytime-Protocol aus den Anfängen von TCP/IP. Allerdings muss man den 
Service üblicherweise serverseitig explizit einschalten. Bei Windows 
steckt das in den optionalen "Simple TCP/IP Services".

https://de.wikipedia.org/wiki/Daytime

: Bearbeitet durch User
von Jimmy C. (jimmyo)


Lesenswert?

Hallo,

danke allen für eure Komentare.
Mein Ziel war es, die "Systemzeit"
und Zeitzone / Lokale Zeit zu erhalten.
Meine daten speichere ich mit der Systemzeit + Lokalen offset.
Anzeigen tue ich die Lokale Zeit.
Bisher hatte ich auf einen Server ein eigenes Programm laufen, das diese 
Info lieferte. Aber damit kann ich mir das sparen.
Synkronisieren der Zeit braucht nicht so genau sein, deshalb reicht mir 
das.
Sonst kann man noch immer auf NTP setzen. Und aus der worldtimeapi hole 
ich mir gelegtlicht die anderen Info. Das ganze setze ich auf einen 
ESP32 + Display ein.

von Gerald K. (geku)


Lesenswert?


: Bearbeitet durch User
von Jimmy C. (jimmyo)


Lesenswert?

Schade das NTP keine Zusatzfelder wie Offset zur Systemzeit hat.
Weil eine FritzBox kann auch NTP server spielen, und die wüsste auch die 
Zeitzone + Offset.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.