Forum: Mikrocontroller und Digitale Elektronik esp8266 sonnenauf/untergang per NTP und winterzeit?


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Max M. (ulfkotte_17)


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.

: Bearbeitet durch User
von Andree S. (amshh)


Lesenswert?

Schau dir mal die Dusk2Dawn Library an.

https://github.com/dmkishi/Dusk2Dawn

von Wolfgang (Gast)


Lesenswert?

Max M. schrieb:
> Wie bestimme ich möglichst einfach sonnenaufgang und sonnenuntergang?

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

Das Thema taucht hier gefühlt alle 4 Wochen auf, z.B.
Beitrag "Solartracker Funktionsmodell"

Funktioniert bei dir die Suchfunktion nicht?

von Max M. (ulfkotte_17)


Lesenswert?

Andree S. schrieb:
> Schau dir mal die Dusk2Dawn Library an.
>
> https://github.com/dmkishi/Dusk2Dawn

Excellenter tip!

von Manfred (Gast)


Lesenswert?

Max M. schrieb:
> winterzeit
..verwenden nur Trottel, es gibt sie nicht.

von Groß- und Kleinschreibung verwenden (Gast)


Lesenswert?

Max M. schrieb:
> Wie mach ich das mit auto winterzeit umschaltung?

Deine Shift-Taste fehlt.
UndbeimirdieLeerteste.

von noiasca (Gast)


Lesenswert?

Max M. schrieb:
> Mit der ntp library für esp8266 / arduino
> #include <NTPClient.h>
>
> Wie mach ich das mit auto winterzeit umschaltung?

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

Sommerzeit-Umschaltung auch. Sind nur 3 Zeilen.

https://werner.rothschopf.net/202011_arduino_esp8266_ntp_en.htm

von Paul (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


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.

von Max M. (ulfkotte_17)


Lesenswert?

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

Das heisst ich kann die ntp lib rausschmeissen und das so machen wie im 
beispiel? Wenn ich das hinbringe mach ich das!

Danke.

von Max M. (ulfkotte_17)


Angehängte Dateien:

Lesenswert?


von Max M. (ulfkotte_17)


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 :)

: Bearbeitet durch User
von 🕵︎ Joachim L. (Gast)


Angehängte Dateien:

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

von Max M. (ulfkotte_17)


Lesenswert?

Geil!

Für die nicht-linuxianer geht auch https://wttr.in/zuerich?format=v2

: Bearbeitet durch User
von 🕵︎ Joachim L. (Gast)


Lesenswert?

Ja, für veraltete OS gibt es:
https://curl.se/windows/

von Max M. (ulfkotte_17)


Lesenswert?

Sonnenauf / untergang
https://wttr.in/zuerich?format=%S+%s
Das ist mit den esp8266 ziemlich einfach.

Und die wetterabhängigen sonnenstunden pro tag?
Oder was bringen meine solarpanels morgen?

: Bearbeitet durch User
von 🕵︎ Joachim L. (Gast)


Angehängte Dateien:

Lesenswert?

Spezifiziere "wetterabhängige Sonnenstunden pro Tag".

von Noch ein Kommentar (Gast)


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.

von noiasca (Gast)


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.

von Max M. (ulfkotte_17)


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.

: Bearbeitet durch User
von Wolfgang (Gast)


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?

von Max M. (ulfkotte_17)


Angehängte Dateien:

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".

: Bearbeitet durch User
von Tobias W. (hacker-tobi)


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.

von Max M. (ulfkotte_17)


Angehängte Dateien:

Lesenswert?

Tobias W. schrieb:
> Vielleicht hilfts dir ja weiter.

Wenn ich das verstehen würde ...
Muss mich erst einarbeiten. Das "DST-Bit" brauch ich!

Immerhin, fast 700W liefert der soyo heute. Und 40 grad warm. Da hat so 
ein idiot (ich) den soyo lüfter falsch rum montiert. :(
Lüfter gedreht, 30 grad.

: Bearbeitet durch User
von Wolfgang (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Hi,

diese info liefert dir die ntp Implementierung der ESP IDF frei Haus

Hier ein beispiel dazu

https://github.com/espressif/esp-idf/blob/master/examples/protocols/sntp/main/sntp_example_main.c

von Wolfgang (Gast)


Lesenswert?

hacker-tobi schrieb:
> diese info liefert dir ...

Info über den Umgang der Grafiken mit fehlenden und doppelten Stunden?
Du sprichst in Rätseln.

p.s.
Du weißt, dass es hier im Forum eine Zitatfunktion gibt?

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


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.

: Bearbeitet durch User
von Bauform B. (bauformb)


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

von Manfred (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

@Wolfgang: Der TO hatte gezielt nach dem DST bit gefragt und die Antwort 
dazu erhalten.

von Max M. (ulfkotte_17)


Angehängte Dateien:

Lesenswert?

Das läuft jetzt ohne die lib, mit dem integrierten NTP.
Wesentlich einfacher als vorher.

Danke an alle hinweisgeber!

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.