esp8266 sonnenauf/untergang per NTP und winterzeit?

OP #7324804
Lesenswert?

Mit der ntp library für esp8266 / arduino #include <NTPClient.h>

Wie mach ich das mit auto winterzeit umschaltung? Wie bestimme ich möglichst einfach sonnenaufgang und sonnenuntergang?

setup ist so:

1
#if defined has_ntp
2
  timeClient.begin();
3
  timeClient.setTimeOffset(ntptimeoffset); // in sec
4
  timeClient.setUpdateInterval(43200000UL); // in ms 12h
5
  timeClient.update();
6
  if (timeClient.isTimeSet())
7
  {
8
    Serial.print("NTP time");
9
    Serial.println(timeClient.getFormattedTime());
10
  }
11
#endif

abfrage

1
    actHour = timeClient.getHours();

Das soll zur abspeicherung von solardaten dienen, minutengenau reicht völlig.

Gast #7325306
Lesenswert?

Paul schrieb:

Es gibt keine Sommerzeit, Winterzeit ist die 'Normalzeit', die Stunde verschiebung im Sommer ist künstlich.

Auch die Normalzeit ist künstlich und per Gesetz verordnet. Mit dem Sonnenstand hat auch die nichts zu tun. Sowohl wahre als auch mittlere Sonnenzeit sind abhängig vom Längengrad und nicht von irgendwelchen Ländergrenzen.

OP #7327125
Lesenswert?

noiasca schrieb:

für NTP am ESP8266 braucht es keine externe Library. Das klappt seit einigen Jahren mit dem ESP Core.

Welches intervall hat das lesen über enet denn?

Mit der lib kann ich einstellen wie oft beim server nachgefragt werden soll, bei espcore finde ich aber keinerlei angabe.

Ich will nicht dass der esp dann jede sekunde oder jede minute traffic generiert. Höchstens jede stunde mal, besser 1 mal pro tag.

Und wie kann ich feststellen ob die ntp time up ist? Will ja sonnenaufgang nicht falsch berechnen :)

Gast #7327265
Lesenswert?

Oder auch über wttr.in /Sourcecode https://github.com/chubin/wttr.in Realisation auf dem Arduino mit HTTP Requests, analog zu: https://arduinogetstarted.com/tutorials/arduino-http-request

Zur Kontrolle die (LINUX) Kommandozeile: einfach eintippen und Enter

curl wttr.in/Waldshut?format=v2 bzw. als png wget wttr.in/Waldshut_format=v2.png siehe Anlage

und obige Infos als Einzeiler:

curl wttr.in/Waldshut?format=%D+%S+%z+%s+%d 07:29:16 08:03:48 12:39:03 17:15:00 17:49:33

Angehängte Dateien:
Gast #7327326
Lesenswert?

Indem du dich von der Zeitumschaltung verabschiedest und konsequent UTC verwendest.

Stimmt. Nur wenn du die Zeiten für uns Menschen ausgibst, die Zeiten in die Zeitzone des Benutzers umrechnen.

ESP - Wlan - Internet? Falls du Benutzer aus Australien bekommen wirst - die haben Sommerzeit im Winter.

Gast #7327362
Lesenswert?

Max M. schrieb:

Welches intervall hat das lesen über enet denn? Mit der lib kann ich einstellen wie oft beim server nachgefragt werden soll, bei espcore finde ich aber keinerlei angabe.

Ich will nicht dass der esp dann jede sekunde oder jede minute traffic generiert. Höchstens jede stunde mal, besser 1 mal pro tag.

Steht auch auf der Seite: Another standard value is the NTP polling interval. The default value is 60 minutes. This value can also be changed.

OP #7327374
Lesenswert?

noiasca schrieb:

Another standard value is the NTP polling interval. The default value is 60 minutes. This value can also be changed.

Klappt. Supi TY

Wobei warum man dafür einen callback definieren muss und nicht eine funktion aufruft ist mir unangenehm. Da brauch ich eine serial.print im callback sonst glaub ich das nicht. Ansonsten, 12h update interval, der typ denkt wie ich.

Gast #7327416
Lesenswert?

Noch ein Kommentar schrieb:

Falls du Benutzer aus Australien bekommen wirst - die haben Sommerzeit im Winter.

Quatsch - auch die Australier haben Sommerzeit im Sommer. Dort heißt sie allerdings Daylight Saving Time (DST) ;-) Mit MESZ wird dein australischer Besucher jedenfalls meist nicht sonderlich viel anfangen könnten und der Sonne ist die Sommerzeit sowieso egal. Wer weiß schon, was der TO vorhat?

OP #7327521
Lesenswert?

Wolfgang schrieb:

Wer weiß schon, was der TO vorhat?

Max M. schrieb:

Das soll zur abspeicherung von solardaten dienen, minutengenau reicht völlig.

Ziel ist bei der graphik im bild eine zeitskala zu haben, und das gerät mit sonnenauf/niedergang ein/aus zu schalten.

Was auch die sommerzeit umschaltung erklärt. Sonst fragt jeder "die zeit stimmt aber nicht".

Angehängte Dateien:
#7327626
Lesenswert?

Hi,

basierend auf den ESP Core libs in Verbindung mit NTP hab ich die Berechnung des Sonnenauf- und Untergangs basierend auf einer Idee aus einem anderen Forum mal realisiert:

https://sourceforge.net/p/toiswitch/code/ci/master/tree/stable/common_files/util.c

Funktion "get_sun_times()"

Ob Sommer- oder Winterzeit, sagt dir DST-Bit.

TOISWITCH verwendet die Funktion genau für das, was du auch vor hast: Das Ein- und Ausschalten in Abhängigkeit von Sonnenauf- oder Untergang.

Vielleicht hilfts dir ja weiter.

Gast #7328036
Lesenswert?

Max M. schrieb:

Ziel ist bei der graphik im bild eine zeitskala zu haben, und das gerät mit sonnenauf/niedergang ein/aus zu schalten.

Dann lass dir schonmal etwas einfallen, wie du mit fehlenden und doppelten Stunden umgehen willst. Die meisten Grafiken tun sich da etwas schwer.

(Firma: Q3) #7328168
Lesenswert?

Paul schrieb:

Manfred schrieb:

Max M. schrieb:

winterzeit

..verwenden nur Trottel, es gibt sie nicht.

Mal wieder der übliche Unsinn hier. Es gibt keine Sommerzeit, Winterzeit ist die 'Normalzeit', die Stunde verschiebung im Sommer ist künstlich. Aber Hauptsache beleidigen.

Kein Unsinn.

Die "künstliche" Verschiebung in den Sommermonaten wird offiziell tatsächlich "Sommerzeit" genannt. Das andere ist die MEZ (mitteleuropäische Zeit). Der Ausdruck "Winterzeit" verbreitet sich zwar zunehmend im "Volksmund", ist aber keine offizielle Bezeichnung. Es ist die lokale Normalzeit, unabhängig von Sommer oder Winter.

#7328197
Lesenswert?

Max M. schrieb:

Ziel ist bei der graphik im bild eine zeitskala zu haben, und das gerät mit sonnenauf/niedergang ein/aus zu schalten.

Was auch die sommerzeit umschaltung erklärt. Sonst fragt jeder "die zeit stimmt aber nicht".

Die Wetterfrösche kennen einen Trick. Man beachte die X-Achse oben, im Winter fangen die Tage um 01:00 an, im Sommer um 02:00 :)

https://wetterstationen.meteomedia.de/?station=094460&wahl=vorhersage

Gast #7328221
Lesenswert?

Frank E. schrieb:

winterzeit

..verwenden nur Trottel, es gibt sie nicht.

Mal wieder der übliche Unsinn hier. Es gibt keine Sommerzeit, Winterzeit ist die 'Normalzeit', die Stunde verschiebung im Sommer ist künstlich. Aber Hauptsache beleidigen.

Kein Unsinn.

Die "künstliche" Verschiebung in den Sommermonaten wird offiziell tatsächlich "Sommerzeit" genannt. Das andere ist die MEZ (mitteleuropäische Zeit). Der Ausdruck "Winterzeit" verbreitet sich zwar zunehmend im "Volksmund", ist aber keine offizielle Bezeichnung. Es ist die lokale Normalzeit, unabhängig von Sommer oder Winter.

Danke, dass Du es nochmal erläutert hast!

Dazu am Rande: Auch der Betreiber von dcf77logs.de hatte in seinen Logfiles "Winterzeit" stehen. Ich hatte ihn mal angemailt, war ein sehr netter Kontakt - seitdem steht nun dort MEZ bzw. Normalzeit.

Ich rege mich noch immer auf, wenn Zeitungsschmierer oder Rundfunkreduckteure "Winterzeit" schreiben oder sagen, ich hasse diese Zeitverdreherei.

Zu allem Überfluß macht sie Ärger, wenn man PC-Dateien zwischen verschiedenen Dateisystemen synchronisieren will.

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