Einzelwerte aus char

Liebe Arduino - Gemeinde,

Ich möchte mir mit einem ESP32 einen Bewegungsmelder bauen, der nur nachts aktiv ist.

Uhrzeit über WLAN auslesen, funktioniert soweit über:

#include <WiFi.h>
#include "time.h"

const char* ssid       = "*** hier steht das WLAN-NETZ***";
const char* password   = "***hier steht der KEY***";

const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 3600;
const int   daylightOffset_sec = 3600;

void printLocalTime()
{
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)){
    Serial.println("Failed to obtain time");
    return;
  }
  Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}

void setup()
{
  Serial.begin(115200);
  
  //connect to WiFi
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
  }
  Serial.println(" CONNECTED");
  
  //init and get the time
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  printLocalTime();

  //disconnect WiFi as it's no longer needed
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
}

void loop()
{
  delay(1000);
  printLocalTime();
}

Ich stelle es mir aktuell so vor, dass ich dann über eine if - Abfrage mit bspw. t > 20 den Bewegungsmelder erst ab 20 Uhr aktiv werden lasse. Dafür muss ich aber irgendwie an dieses %H aus der Funktion printLocalTime bzw. aus dem struct timeinfo rankommen.
Wie kann man da die Stundenzeit rausziehen und einer Variable int t zuweisen?

Ich freue mich über eure HIlfe?

viele Grüße,
Matthias

Arduino_Matt:
bzw. aus dem struct timeinfo rankommen.

viele Grüße,
Matthias

http://www.cplusplus.com/reference/ctime/tm/

Hallo Matthias,
schon mal danke für dein feedback und den link.
Aber wie kann ich aus dem struct tm diese tm_hour als Wert für die Stunden "rausziehen"?
vg,
Matthias

Arduino_Matt:
Hallo Matthias,
schon mal danke für dein feedback und den link.
Aber wie kann ich aus dem struct tm diese tm_hour als Wert für die Stunden "rausziehen"?
vg,
Matthias

Serial.printf("Stunde %.2d\n",timeinfo.tm_hour);
    char timeStringBuff[50];
    strftime(timeStringBuff, sizeof(timeStringBuff), "%A, %B %d %Y %H:%M:%S", &timeinfo);
    Serial.println(timeStringBuff);

Uhrzeit-Esp32

Gruß Fips

Hallo Fips,

danke.
Mit
th=timeinfo.tm_hour;

hat es jetzt wunderbar funktioniert.

vg,
Matthias