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 :/
Gibt es vielleicht im LAN einen NTPd? Fritzboxen haben das z.B.
Sonst kann+darf man bei einer Internetverbindung auch meist immer
irgendeinen NTP erreichen.
Netzwerke die sich durch Firewalls, Proxies und DMZ' abschotten haben
eigentlich immer einen NTP im LAN.
> Hat jemand eine Idee für einen Server und ein "ca. doing".
Mikrophon anschließen und die große Glocke des Doms auswerten (DFT).
Hinweis: Big Ben (London) kann z. Z. nicht ausgewertet werden.
Hubble schrieb:> Mikrophon anschließen
Oder eine Kamera und schauen, in welche Richtung die Schatten fallen.
Dazu ggf. mit einem Magnetometer/Kompass o.ä. kombinieren. Nur die
Umstellung Sommer/Winterzeit könnte schwierig werden...
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).
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?
Dann nimm einen eigenen Server (dyndns reicht ja), der die aktuelle
Uhrzeit als JSON-Objekt oder einfach String verschickt, wenn diese
Einschränkungen schon so extrem sind...
Falls kein LAN oder WLAN greifbar böten sich als ICs an DS3231 oder
RV-3029-2 (können beide I2C), das sind temperaturkompensierte Uhrenchips
mit extrem geringen Stromverbrauch im Sleep.
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.
Gerald B. schrieb:> Ein GPS Modul kostet beim freundlichen Chinesen um die 5€ und das> liefert als Abfallprodukt ebenfalls eine sehr genaue Zeit.
Aber nur wenn das Modul nicht im Keller verbaut ist. (oder eine blech
Garage, oder einen Stahlbeton Garage, oder oder oder
baer schrieb:> da vermutlich nur Port 80 & 443 zur verfügung stehen
HEAD http://www.google.de/>HTTP/1.1 200 OK>Date: Thu, 14 Sep 2017 16:31:03 GMT
[... Rest ignorieren ...]
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 :)
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 !!!
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
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?
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:
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...
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.
evtl hilft das:
https://github.com/PaulStoffregen/Time
und das
http://tf.nist.gov/tf-cgi/servers.cgi
Wenn man Online ist, dann ist DCF77 doch mal sowas von unnötig :-)
Nur geht dann halt die Uhr nicht mehr wenn der dritte Weltkrieg
ausbricht. Aber ob dann Frankfurt noch existiert, steht auf einem
anderen Blatt ;-)
viel Erfolg
G Ert
wer es IMMER genau will nimmt
NTP, DCF77, RTC3231 & GPS zusammen und einen Controller der die Zeiten
überwacht und abgleicht vor der Zeitweiterleitung.
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.
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.
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 ;)
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...
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 :) ...
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
> 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.
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
Chris F. schrieb:> Es gibt auch Wasserstoff-, Caesium- und Rubidium-Atom-Uhren in> Chipgröße.
Was du so als "Chipgröße" bezeichnest. Die Abmessungen sind dort in Inch
und nicht in 1/100 Inch angegeben ...
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
UTC oder GMT ist zwar nett, aber “voll anstemgend vong Programierumg
her“. :)
Da muss man halt die Zeitumstellung beachten.
Ich wollte das nur mal so in den Raum werfen.
Ist keine Kunst, aber man muss halt dran denken.
> Da muss man halt die Zeitumstellung beachten.
Ich plädiere dafür, diesen Unfug endlich abzuschaffen. Die
Zeitumstellung macht nur Ärger und ist für nichts gut.
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.
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.
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.
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
Stefan U. schrieb:> Falls du Dich nicht mit dem NTP Protokoll auseinandersetzen möchtest,
Wobei volles NTP mit kontinuierlicher und sprungfreier
Zeitsynchronisation bei einem µC möglicherweise unnötig ist. SNTP hat
die gleiche Basis, ist aber als reine Abfrage gedacht und
dementsprechend simpler.
Leroy M. schrieb:> UTC oder GMT ist zwar nett, aber “voll anstemgend vong Programierumg> her“. :)>> Da muss man halt die Zeitumstellung beachten.
Gerade bei UTC muss man NICHT an die Zeitumstellung denken.
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.
> 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.