INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Timezone in der time.h Library
12.03.2019, 12:59
Beitrag #1
Timezone in der time.h Library
Hallo Kollegen,
ich habe da auch mal ein Problem, und zwar nutze ich auf einem ESP32 (hab's aber hier gepostet weil es ja auch den Arduino wohl betrifft) die time.h nicht die timeLib.h.
Die Uhrzeit&Datum wird per NTP Abfrage von der Fritzbox geliefert die bei "poo.ntp.org" sich wiederum informiert.
An den ESP ist keine Hardwareuhr wie DS3231 etc. angeschlossen d.h. die Zeit wird rein Softwaremäßig am laufen gehalten und alle 10min per NTP Abfrage synchronisiert.
Das lief nun schon Wochenlang perfekt bis zum 10.3.2019 um 2:00 Uhr...dann kam die time.h auf die Idee schon mal auf Sommerzeit zu wechseln und hat fortan eine Stunde addiert.... also am 10.3. war 2:00 noch 2:00 und um 2:10 wurde dann schon 3:10 Uhr ausgegeben...läßt sich in der Datenbank wo ich das aufzeichne nachlesen.
Nach langem nachforschen konnte ich dann mir ausgeben lassen das die Timezone "DST" und "+0200" eingestellt ist. DST bedeutet irgend eine New Yorker Sommerzeitvariante die nachlesbar am 10.3.19 begonnen hat. Soweit so gut.
Dann habe ich mich im Netz suchend auf den Weg gemacht zu erfahren wie man nun der time.h beigringt in welcher Zeitzone man lebt... also wie stelle ich anstelle DST eben CET ein, und hier finde ich nur Codeschnippsel im Netz mit denen ich als Hifsprogrammierer nichts anfangen kann... auch habe ich die time.h Datei schon seziert und auch nichts gefunden wo man hier die Timezone auch öfters als TZ bezeichnet einstellen kann.

Also meine Frage ist nun wie kann ich der time.h die Zeitzone zuweisen ?

Btw. für die timelib.h habe ich gesehen gibt es bei github ein Add On wo dann die timezone einstellbar sein soll. Doch dann müßte ich für 3 ESP's die Libs ersetzen und die Programmierung anpassen. Erste Versuche mit den Beispielprogrammen der timelib.h haben gezeigt das die alle eine Hardware RTC haben wollen ohne die die Beispiele nicht laufen....und die RTC habe ich ja durch die NTP Abfrage ersetzt.

lgbk

P.S. mein Neudeutsch ist leider auch nicht stark genug um instensive Beiträge in Englisch auch richtig zu verstehen.

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2019, 13:05
Beitrag #2
RE: Timezone in der time.h Library
(12.03.2019 12:59)Bitklopfer schrieb:  Also meine Frage ist nun wie kann ich der time.h die Zeitzone zuweisen ?

Code:
setenv("TZ", "CET-1CEST,M3.5.0/02,M10.5.0/03", 1);  // Zeitzone einstellen https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv

Die komplette Funktion.

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2019, 13:18
Beitrag #3
RE: Timezone in der time.h Library
Die ESP haben meines Wissens eine eigene Time.h mit einem eigenen NTP-Handling. Da können Fips und Amithlon mehr dazu sagen.

Die TimeLib von Paul Stoffregen funktioniert problemlos ohne RTC nur mit NTP. Das habe ich im Weihnachtsstern genutzt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2019, 14:02 (Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2019 13:57 von Bitklopfer.)
Beitrag #4
RE: Timezone in der time.h Library
(12.03.2019 13:05)Fips schrieb:  
(12.03.2019 12:59)Bitklopfer schrieb:  Also meine Frage ist nun wie kann ich der time.h die Zeitzone zuweisen ?

Code:
setenv("TZ", "CET-1CEST,M3.5.0/02,M10.5.0/03", 1);  // Zeitzone einstellen https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv

Die komplette Funktion.

Gruß Fips

Hallo Fips,
ich Danke dir recht Herzlich....nun rennt die Uhr wieder richtig und liefert die richtige Uhrzeit und TZ aus:
Tuesday, March 12 2019 CET +0100 13:49:05
und hier stand vorher noch "DST +0200" drin...auch das Flag zur Sommerzeit ist nun wieder auf 0.
Habe nun die "Komplette Funktion" von dir wie vorgeschlagen als Tab integriert...so paar Kleinigkeiten wie doppelte Definitionen oder DEBUG etc. mußte ich für mich anpassen... aber das war vergleichsweise easy gegenüber dem suchen wie dem finden des Weges zur richtigen Zone.
Die nächste Bewährungsprobe ist dann wenn wirklich die unerwünschte Sommerzeit kommt...Big Grin
Also noch mal vielen lieben Dank für die schnelle Hilfe.

..ähm diese Zeilen:
Code:
//  server.on("/zeit", []() {
//    server.send(200, "application/json",  "\"" + (String)localTime() + "\"");
waren dann wohl dazu bestimmt die Datei im SPIFFS zu füttern ?

lgbk

(12.03.2019 13:18)Tommy56 schrieb:  Die ESP haben meines Wissens eine eigene Time.h mit einem eigenen NTP-Handling. Da können Fips und Amithlon mehr dazu sagen.

Die TimeLib von Paul Stoffregen funktioniert problemlos ohne RTC nur mit NTP. Das habe ich im Weihnachtsstern genutzt.

Gruß Tommy
Hi Tommy,
ahja... Dankeschön.. aber du arbeitest da mit der timelib.h...das ist die andere Version...da hätte ich zu viel umhamstern müßen.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2019, 14:18 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2019 14:25 von Fips.)
Beitrag #5
RE: Timezone in der time.h Library
Stell einfach die Zeitzone auf Melbourne Australien.
setenv("TZ", "AEST-10AEDT,M10.1.0,M4.1.0/3", 1);
Serial.println(tm.tm_isdst);

Es funktioniert!
Ich verwende den Flag im "Esp32 Sonnen Auf/Untergang Tab".

Die Debug sind nur drin, um den nicht so erfahrenen User die Ausgabe der deutschen Namen zu zeigen.

Die Umstellung habe ich schon Protokolliert!

Hier findest du auch die Html Dateien

Gruß Fips


(12.03.2019 14:02)Bitklopfer schrieb:  
(12.03.2019 13:05)Fips schrieb:  
(12.03.2019 12:59)Bitklopfer schrieb:  Also meine Frage ist nun wie kann ich der time.h die Zeitzone zuweisen ?

Code:
setenv("TZ", "CET-1CEST,M3.5.0/02,M10.5.0/03", 1);  // Zeitzone einstellen https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv

Die komplette Funktion.

Gruß Fips

Hallo Fips,
ich Danke dir recht Herzlich....nun rennt die Uhr wieder richtig und liefert die richtige Uhrzeit und TZ aus:
Tuesday, March 12 2019 CET +0100 13:49:05
und hier stand voher noch "DST +0200" drin...auch das Flag zur Sommerzeit ist nun wieder auf 0.
Habe nun die "Komplette Funktion" von dir wie vorgeschlagen als Tab integriert...so paar Kleinigkeiten wie doppelte Definitionen oder DEBUG etc. mußte ich für mich anpassen... aber das war vergleichsweise easy gegenüber dem suchen wie dem finden des Weges zur richtigen Zone.
Die nächste Bewährungsprobe ist dann wenn wirklich die unerwünschte Sommerzeit kommt...Big Grin
Also noch mal vielen lieben Dank für die schnelle Hilfe.

..ähm diese Zeilen:
Code:
//  server.on("/zeit", []() {
//    server.send(200, "application/json",  "\"" + (String)localTime() + "\"");
waren dann wohl dazu bestimmt die Datei im SPIFFS zu füttern ?

lgbk

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Question Fastled library mit Apa106 nutzen? lynes1 1 120 18.03.2019 22:35
Letzter Beitrag: Fips
  Library einfügen Tellen 9 1.007 22.11.2018 10:53
Letzter Beitrag: Tellen
Question ESP8266 E-Mail Versandt mit Library lakarder 7 2.069 18.03.2018 21:20
Letzter Beitrag: amithlon
  Welche OneWire Library für ESP8266-12E? ardu_arne 7 2.730 30.07.2017 20:21
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste