ESP32/ESP8266 falsches Datum

Hallo Zusammen!

Ich habe da ein Problem, das ich nicht behalten sondern lösen möchte, aber durch längeres Suchen bisher keinen Hinweis auf die Ursache finden konnte. Und zwar wird das Datum falsch berechnet, nach dem 30.09.2024 kommt der 31.09.2024 anstatt der 01.10.2024. Das lässt sich mit einem kleinen simplen Programm reproduzieren. Bei mir tritt das sowohl auf ESP32- als auch ESP8266-Controllern gleichermaßen auf, scheint also nicht am Board zu hängen.

für Test verwendetes :

  • Hardware: AZ-Delivery ESP8266 MOD 12 F (D1 Mini)
  • In IDE ausgewählt: ESP8266 LOLIN(WEMOS) D1 R2 & mini
  • Arduino IDE 2.3.3 und alle Librarys/Boards aktualisiert
#include <Arduino.h>
#include <time.h>
#include <sys/time.h>


int xmillis = 0;

void setup(void)
{
	Serial.begin(115220);

	struct tm gmt;
	gmt.tm_mday = 30; 
	gmt.tm_mon = 9; 
	gmt.tm_year = 2024 - 1900, 
	gmt.tm_hour = 23; 
	gmt.tm_min = 59;
	gmt.tm_sec = 57; 
	gmt.tm_isdst = 0;
	timeval tv = { mktime(&gmt), 0 };
	settimeofday(&tv, nullptr);
}

void loop(void)
{
	if((millis() - xmillis) >= 1000)
	{
		char txt[50];
		time_t tmpZeit;
		struct tm *gmt;
		time(&tmpZeit);
		gmt = localtime(&tmpZeit);

		memset(txt, 0, sizeof(txt));
		sprintf(txt, "%02d.%02d.%04d %02d:%02d:%02d", gmt->tm_mday, gmt->tm_mon, gmt->tm_year + 1900, gmt->tm_hour, gmt->tm_min, gmt->tm_sec);			
		Serial.println(txt);
		
		xmillis = millis();
	}
}

Ausgabe:

grafik

Für hilfreiche Hinweise wäre ich sehr dankbar!

Du hast Dir Elektronik von einem Paralelluniversum andrehen lassen. :wink:
Grüße Uwe

Der Oktober hat 31 Tage. Du wendest das Monat falsch an. Das beginnt mit Jänner = 0

Siehe auch hier
https://werner.rothschopf.net/202011_arduino_esp8266_ntp_en.htm

1 Like

Ok, klingt logisch, werde ich mal testen....

Problem ist gelöst, lag tatsächlich nur am fehlenden Offset beim Monat.

Danke für Rückmeldung, kannst als Erledigt markieren neben Post vom noiasca, hat ja die Ursache gefunden :wink:

1 Like

Schade, kein Beweis für ein Paralelluniversum. :sob:

Grüße Uwe

Doch, das Paralleluniversum gibt es, bei der ESP32Cam, die funktionieren alle irgendwie anders..... :joy:

Ne, man muss nur wissen was man hat, ist ja bei allen Sachen so :wink:

Und woran machst du das fest ?
Auch da ist ein ESP32 verbaut.

Ahh, ok. Man muss natürlich die Kamera berücksichtigen.

ich habe just vor einer Woche erst schmerzlich festgestellt, dass der gleiche Sketch auf unterschiedlichen ESP32Cam auch unterschiedliche Bilder liefert, mal war es plötzlich um 90 Grad nach links, beim andern um 90 Grad nach rechts oder gar um 180 Grad zum Ursprungs-Board gedreht. Hat mich etwas Zeit gekostet, eine Kombination aus Kamera-Modul und Board zu finden, die a) grundsätzlich zusammen funktionierte und b) das Bild in der gewünschten Perspektive lieferte....

Das ist der Grund, der in Post #8 als Hinweis gefehlt hat.
Unterschiedliche Bauformen können natürlich auch unterschiedliche Steuercodes erfordern.