relativ genaue Uhrzeit von WO?

Gast #5143142
Lesenswert?

Hi,

ich habe einen Microcontroller (Programmiert auf der Arduino IDE). Da 
ich hier "Zeitgesteuerte" tools drauf habe, brauche ich hier irgendwie 
eine Uhrzeit...

meine Idee war, ich gehe zu "www.irgendeinServerDenEsFürImmerGibt.de" 
und hole mir da die Zeit <- z.B. im JSON Format oder sowas...

Hat jemand eine Idee für einen Server und ein "ca. doing".

Ich habe länger nach etwas gesucht, welches mir einfach online ein 
JSON-Format ausspuckt, da vermutlich nur Port 80 & 443 zur verfügung 
stehen :/
Gast #5143168
Lesenswert?

naja... nicht alles ist witzig ^^

also wegen DCF Empfänger <- wozu Geld ausgeben, wenn ich eh Online 
bin...

=> Wegen NTPd im LAN ... müsste da weitgehenst unabhänig vom LAN bleiben 
(das Modul wird an mehreren Orten laufen und nicht jeder Ort hat eine 
Fritzbox oder überhaupt mehr als ein Modem)

die idee mit dem NTP-Server hatte ich auch schon "ein bisschen" ... 
allerdings fehlt mir da das Know-How wie ich mit einem Arduino da drauf 
zugreifen kann... insbesondere, da der meines wissens den UDP-Port 123 
verwendet und ich leider nur 80 und 443 zur verfügung habe (zumindest 
zuverlässig zur verfügung habe).
#5143170
Lesenswert?

baer schrieb:
> die idee mit dem NTP-Server hatte ich auch schon "ein bisschen" ...
> allerdings fehlt mir da das Know-How wie ich mit einem Arduino da drauf
> zugreifen kann... insbesondere, da der meines wissens den UDP-Port 123
> verwendet und ich leider nur 80 und 443 zur verfügung habe (zumindest
> zuverlässig zur verfügung habe).

Gibt es kein NTP-Shield für Arduino?
#5143304
Lesenswert?

baer schrieb:
> also wegen DCF Empfänger <- wozu Geld ausgeben, wenn ich eh Online
> bin...

Also das beißt sich aber irgendwie mit

baer schrieb:
> müsste da weitgehenst unabhänig vom LAN bleiben

Denn das Internet kommt doch heute praktisch nur noch durchs LAN ans 
Endgerät.

Ein DCF77 Empfänger kostet Geld, ja, aber ein Netzwerkshield gibts auch 
nicht kostenlos und so eine Auswertung eines DCF77 kostet einen AVR 
praktisch kaum messbare Leistung während so ein Netzwerkhandle einen AVR 
schon ganz schön stressen kann.
#5143435
Lesenswert?

Hi

Wie genau muß die Uhrzeit denn sein und über welchen Zeitraum?
Seiten wie https://www.uhrzeit.org/ sollte es noch 'n paar Tage lang 
geben.
Hatte zuerst heute.de geschaut, dort fiel mir aber keine Uhr auf.
Vor Jahren habe ich Mal, per Cronjob und Script, die Lottozahlen 
ausgelesen (Das aber auf lotto.de ), man muß 'nur' schauen, daß man die 
gesuchte Stelle aus dem ganzen Datenstrom passend ausschneidet.
War in PHP durchaus lösbar - man musste nur nachschauen, wenn vom Script 
eine Fehler-Mail kam ... da hatte lotto.de dann was umgestellt :)

So kannst Du, je nach Verbindungsqualität, eine sekundengenaue Uhrzeit 
bekommen - da Du eh online bist, sollte Das "für's Erste" doch vll. 
schon reichen.

MfG


... ok ... im http-Header steht's ja auch drin :)
Gast #5143452
Lesenswert?

bingo schrieb:
> Warum diese ganzen Verrenkungen ??? Der TE programmiert mit Arduino IDE,
> hat Netz-Zugriff und es gibt für die Arduino IDE Bibliotheken für NTP
> (s. oben)
>
> bingo !!!

oder einfach mal genau lesen

> da vermutlich nur Port 80 & 443 zur verfügung
Gast #5143460
Lesenswert?

Peter II schrieb:
> bingo schrieb:
>> Warum diese ganzen Verrenkungen ??? Der TE programmiert mit Arduino IDE,
>> hat Netz-Zugriff und es gibt für die Arduino IDE Bibliotheken für NTP
>> (s. oben)
>>
>> bingo !!!
>
> oder einfach mal genau lesen
>
>> da vermutlich nur Port 80 & 443 zur verfügung
......^^^^^^^^^^

Probieren geht über theorieren. Warum nur diese beiden Ports ??, der TE 
schreibt selbst, dass er an wechselnden Orten arbeiten will. NTP ist ein 
Standard-Protokoll, das viele Rechner (Windows/Mac/Linux) brauchen, um 
Rechner synchron zu halten. Warum sollte man das blockieren?
Gast #5143492
Lesenswert?

Die Seite mit der aktuellen Uhrzeit und Datum bei jedem Aufruf, mit 
wenig Overhead die ich gefunden habe ist die:
https://www.timeanddate.com/worldclock/fullscreen.html?n=37

Siehe Quelltext von der Seite.
Die Zeit steht auch immer an der gleichen Position.
Brauchst nur die Zeile auswerten:
1
<div id=rs1><div>Local time in Berlin</div><div id=i_date>Donnerstag, 14. September 2017</div><div id=i_time>19:28:54</div>
Gast #5143837
Lesenswert?

haha, lustige ideen dabei :) ...
> das problem wie google oder so ist einfach die Datenmenge welche ich verarbeiten 
muss...

ich habe mir schon selbst überlegt einfach ne PHP auf einen webserver 
von mir zu legen und einfach nur einen timestamp auszugeben... aber mein 
server existiert halt evtl. übernächstes jahr nicht mehr... die Module 
(welche ich Kunden anbieten möchte) allerdings schon...

NTP fällt flach, weil z.B. einige Mobilfunk Modems (mit M2M Sektor) 
ports nur gegen Geld freischalten ... und wieso mehr freischalten als 
man WIRKLICH braucht...

LAN also "LOCAL AREA NETWORK" hat keine "Notwendigkeit" selbst im 
Internet zu sein...

Ich habe nie was von Arduino geschrieben sondern lediglich, dass ich 
mich der IDE bediene... die Module bestehen zu 95% aus einem extrem 
günstigen ESP8266 und die Gesamtkosten inkl Netzteil belaufen sich auf 
keine 3€ ... ein Zusätzliches Modul wie GPS oder ein WTC oder was auch 
immer, wenns auch nur 20ct kostet ist es einfach zu teuer <- und noch 
schlimmer, es verbaucht Strom ^^

Soooo genau muss die Zeit nicht sein, ich werde die einmal am Tag 
Syncronisieren, und das reicht auch... hier geht es darum, dass z.B. 
diverse tätigkeiten nicht zu "Nachtstunden" ausgeführt werden sollen... 
und ob das jetzt um 21:00:00,0000 ist oder um 21:05 ist völlig rille...

also brauch ich also weniger technische ideen als eher links bei welchen 
man die zeit bekommt (und nicht komplette homepages) <- 
selbstverständlich müsste man wenigstens 5 jahre in Zukunft davon 
"ausgehen können" dass die seite exisitiert...
Gast #5143851
Lesenswert?

baer schrieb:
> problem wie google oder so ist einfach die Datenmenge

Deswegen schrieb ich: HEAD - Request, nicht GET. Da kommen nur ein paar 
Zeilen und fertig.

Wenn dein Kopfloses Framework kein HEAD kann:

GET http://www.google.de/falsche/url/ich_will_eine_fehlerseite_sehen

Mit der 404 Fehlerantwort kommt auch die aktuelle Zeit + ca. 1.5kb HTML.

Warum google:
Gibt es wohl noch lange & Server haben synchronisierte Uhren & Kurze 
Latenz dank Serverfarmen überall.

Kannst natürlich auch itunes.com oder twitter.com (Vorsicht, Zensur in 
manchen Ländern) oder bild.de oder wen du auch sonst mit unnützen 
Anfragen belasten willst verwenden.
#5145330
Lesenswert?

baer schrieb:
> ich habe mir schon selbst überlegt einfach ne PHP auf einen webserver
> von mir zu legen und einfach nur einen timestamp auszugeben... aber mein
> server existiert halt evtl. übernächstes jahr nicht mehr... die Module
> (welche ich Kunden anbieten möchte) allerdings schon...

Kommerziell anbieten, aber noch nicht einmal sicherstellen könnne, einen 
primitiven Server nachhaltig zu betreiben?

Du solltest dein Geschäftsmodell noch einmal überdenken oder alternativ 
die Identität deiner Firma hier veröffentlichen, damit man vor dir 
gewarnt ist.

Ernsthaft: einen Server fährt man prinzipiell mit NTP und da dann die 
Zeit als JSON-Datensatz auszugeben ist so primitiv, daß man das selbst 
mit einem billigsten virtuellen Server realisieren kann. Eine eigene 
Domain ist ebenfalls preislich zu vernachlässigen.

Es ist also kein Problem, für sehr wenig Geld so einen Service 
nachhaltig bereitzustellen, wenn man es wirklich will. Du solltest 
darüber nachdenken, wieviel dir deine Kunden (und dein Ruf ...) wert 
sind.

Und so etwas wie http://time.doeblitz.net/time kostet nun wirklich kaum 
Ressourcen, das hat man auf einem Webserver eigentlich immer über.
Gast #5145337
Lesenswert?

Ich glaube ihr driftet langsam ab. Asiatische Händler bietet sehr 
preisgünstige RTC Module an, die man notfalls genau bekommt, indem man 
den Quarz auswechselt oder einen Kondensator durch einen Trimmer 
auswechselt.

Abgesehen davon könnten die spottbilligen (ab 1,50 Euro) Mikrocontroller 
Module mit STM32F103RBT8 von interesse sein. Denn die enthalten einen 
Timer mit 32kHz Quarz, der im Standby Modus weiter laufen kann und mit 
Pufferbatterie betrreibbar ist. Die dazu nötige Erweiterung der Arduino 
IDE heisst STM32Duino.

Wenn man von einer ständigen Internet Anbindung ausgehen kann, würde ich 
mir die Ubhrzeit natürlich aus dem Netz holen.
#5145399
Lesenswert?

Ich würde es so machen:
1) Eigener Server, der NTP-Zeit per HTTP ausgibt
2) Fallback: pool.ntp.org
3) Zeit einstellbar per GET/POST-Request + kleines HTML-File oder 
Programm, dass die aktuelle Systemzeit an das Modul übermittelt (mit 
Passwort, nicht ins Netz übertragener ID-Nummer/etc gegen Missbrauch 
gesichert)

Eventuell kann man Punkt 3) heutzutage bereits mit irgendwelchen 
Fancy-Technologien wie WebSockets realisieren, um das Modul im LAN 
automatisch zu
erkennen.

Dadurch wäre die Langlebigkeit deines Produktes sichergestellt.   Du 
könntest das Produkt aber auch nach definitivem Produktions- und 
Vertriebsende einfach  Opensource machen.

VPS gibt es ab 3 EUR.  Oder du hostest das Projekt bei Google App 
Engine, da gibt es auch ein Gratis-Angebot (Always Free Tier):
https://cloud.google.com/free/docs/always-free-usage-limits

Glaube nicht dass das über Nacht eingestellt wird, ich habe immer noch 
mein Gratis-Google-Apps (Gmail mit eigener Domain) aus 2008 ;)
Gast #5145414
Lesenswert?

baer schrieb:
> ich habe einen Microcontroller (Programmiert auf der Arduino IDE). Da
> ich hier "Zeitgesteuerte" tools drauf habe, brauche ich hier irgendwie
> eine Uhrzeit...

DCF77 ist zuverlässig, günstig und funktioniert meist auch im Keller.
Dazu einen 0815-Uhrenchip mit Batteriepufferung und alles wird gut. 
Minderwertige Quarze und hohen Temperaturdrift kann man per Software 
rauskompensieren...
#5145455
Lesenswert?

baer schrieb:
> Ich habe nie was von Arduino geschrieben sondern lediglich,

Fandest du dich ganz toll als du die Leute mit deiner Geheimnistuerei in 
die Irre geführt hast?

> dass ich
> mich der IDE bediene... die Module bestehen zu 95% aus einem extrem
> günstigen ESP8266

Und was ist der Rest?

> NTP fällt flach, weil z.B. einige Mobilfunk Modems (mit M2M Sektor)
> ports nur gegen Geld freischalten ... und wieso mehr freischalten als
> man WIRKLICH braucht...

Handelt es sich bei den verheimlichten magischen 5% zufällig um ein 
GSM-Modem?

Dann wäre die Lösung bei vielen Modems und GSM-Netzen nämlich

AT#NITZ=1,1
...
AT+CCLK?

> LAN also "LOCAL AREA NETWORK" hat keine "Notwendigkeit" selbst im
> Internet zu sein...

Langsam drehtst du ab, oder? Du fragst nach Webseiten im Internet und 
behauptest jetzt, dass dein magisches Gerät nicht mit dem Internet 
verbunden ist?

> also brauch ich also weniger technische ideen als eher links bei welchen
> man die zeit bekommt (und nicht komplette homepages) <-
> selbstverständlich müsste man wenigstens 5 jahre in Zukunft davon
> "ausgehen können" dass die seite exisitiert...

Ja, klar ... Irgendwas Non-Standard, im Internet, dass fünf Jahre in der 
Zukunft noch da ist ...

Ich würde mal vorschlagen du überdenkst dein Konzept, statt sich über 
Leute zu beschweren die dir helfen wollen.

> haha, lustige ideen dabei :) ...
Gast #5145871
Lesenswert?

TU S. schrieb:
> 2) Fallback: pool.ntp.org

Ich empfehle

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

Im Zeitgesetz von 1978 wird die Physikalisch-Technische Bundesanstalt 
mit der Verbreitung der gesetzlichen Zeit in Deutschland beauftragt.
- Wikipedia

Genauer bekommst unsere Deutsche Zeit wirklich nicht ;-)

baer schrieb:
> LAN also "LOCAL AREA NETWORK" hat keine "Notwendigkeit" selbst im
> Internet zu sein...

Liest du eigentlich was du selbst schreibst?

baer schrieb:
> meine Idee war, ich gehe zu "www.irgendeinServerDenEsFürImmerGibt.de"
> und hole mir da die Zeit <- z.B. im JSON Format oder sowas...

Grüße
pelzfrucht
Gast #5146024
Lesenswert?

> meine Idee war, ich gehe zu "www.irgendeinServerDenEsFürImmerGibt.de"
> und hole mir da die Zeit <- z.B. im JSON Format oder sowas...

Falls du Dich nicht mit dem NTP Protokoll auseinandersetzen möchtest, 
rufe einfach die Startseite der PTB auf: http://ptb.de/

Dann erhälst du einen Header, der so aussieht:

Date: Sun, 17 Sep 2017 07:32:47 GMT

Manchmal muss man sich einfach dumm stellen und mal was ausprobieren. 
Übrigens liefern sehr viele Webserver diesen Header, nur ob die Uhr des 
jeweiligen Servers auch synchron läuft weiss wohl nur der Betreiber. Bei 
der PTB darf man sicher davon ausgehen, daß die Uhrzeit stimmt.
Gast #5146414
Lesenswert?

Dra schrieb:
> Seine Aussage ist nicht falsch.

Nicht falsch, aber wiedersprüchlich!

@Stefan Us Tipp ist wohl der sinnvollste. Man erhält hier die Zeit 
simpel per HTTP (auch ohne s am Ende ;) von der PTB die genauste Zeit 
die du erhalten kannst auf diesem Wege.

Gut, rein theoretisch muss der Server Admin der PTB nicht unbedingt auch 
den PTB Zeitserver als Referenzquelle für die Server Zeit konfiguriert 
haben, es ist aber mehr als naheliegend und er dürfte auch die nächsten 
10 Jahre noch erreichbar bleiben.

Grüße
pelzfrucht
Gast #5146967
Lesenswert?

man man man, ich bin beeindruckt war für "nette Menschen" hier unterwegs 
sind ^^

egal, Thema erledigt :)
der HTTP-Header-Abruf hat mir sehr geholfen und wurde genau so 
umgesetzt.

Vielen Dank an alle Konstruktiven Tipps
#5147036
Lesenswert?

Sehe ich genauso.
Von mir auch auch die Sommerzeit, die ja sooo energiesparend ist.

Wobei ich es sinvoller finden würde, einfach den Tagesrythmus 
anzupassen.
Wenn man im Winter um 9 Uhr anfängt, geht man im Sommer halt schon um 8 
Uhr auf die Arbeit, dann hat man genauso viel vom Tag.
#5147055
Lesenswert?

baer schrieb:
> hier geht es darum, dass z.B.
> diverse tätigkeiten nicht zu "Nachtstunden" ausgeführt werden sollen...
> und ob das jetzt um 21:00:00,0000 ist oder um 21:05 ist völlig rille...

Ich hab mal ne einfache Uhr mit AVR, 32kHz Quarz und Goldcap zum Stützen 
aufgebaut. Den Gangfehler habe ich über 3 Monate ermittelt und dann die 
Korrekturrechnung hart reincodiert. Nach ~10 Jahren geht sie <2min vor.
#5147519
Lesenswert?

Leroy M. schrieb:
> UTC oder GMT ist zwar nett, aber “voll anstemgend vong Programierumg
> her“. :)
>
> Da muss man halt die Zeitumstellung beachten.

Das kommt darauf an, was du brauchst. Wenn du einen anständigen time_t 
haben willst, der natürlich auf die Unix-Epoch und UTC bezogen ist, dann 
ist das genau nicht der Fall - so etwass braucht man üblicherweise, wenn 
man z.B. kontinuierliche Aufzeichungen machen will - timestamps, in 
denen die Zeitzone unterschiedlich sind, sind ekelhaft.

Wenn man dagegen die Lokalzeit braucht, OK, dann ist es natürlich 
bequemer, diese auch gleich zu beziehen.

Wichtig ist, das man vorher darüber nachdenkt, was man eigentlich 
braucht.
#5147550
Lesenswert?

baer schrieb:
> Soooo genau muss die Zeit nicht sein, ich werde die einmal am Tag
> Syncronisieren, und das reicht auch... hier geht es darum, dass z.B.
> diverse tätigkeiten nicht zu "Nachtstunden" ausgeführt werden sollen...
> und ob das jetzt um 21:00:00,0000 ist oder um 21:05 ist völlig rille...

dann nehme einen Arduino, eine RTC3231 und die DS1307new LIB

reicht völlig, wenn du eh die Uhr alle paar Monate um 1s nachstellen 
willst
#5148308
Lesenswert?

Un glaublich was hier für ein Gezumpel gemacht wird wo es doch nach nem 
viertel Jahr egal sein soll, ob die Uhr noch genau ist oder 5 Minuten 
daneben liegt. Wie schon gesagt, in diesem Falle würde ich das Problem 
schlicht via DCF77 lösen. Die Sendeanlage wird sicher auch noch in 20 
Jahren in Mainflingen stehen.
Gast #5148372
Lesenswert?

> Wie schon gesagt, in diesem Falle würde ich das Problem
> schlicht via DCF77 lösen. Die Sendeanlage wird sicher auch noch in 20
> Jahren in Mainflingen stehen.

Da würde ich mich nicht drauf verlassen! Die asendeanlage wird da sicher 
noch stehen, aber ob da noch genauu so wie heute die Zeit rauskommt...
Mittelwellenrundfunk war auch einfach so weg!

Aber das Problem wurde ja mittels HTTP Abfrage gelöst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren