void uhrzeit_konfigurieren() {

  // Starte Time Service.
  configTime(0, 0, ntpServer[1]);                          // NTP Server einstellen (von 0 - 5 aus obiger Liste)
  setenv("TZ", "CET-1CEST,M3.5.0,M10.5.0/3", 0);           // Zeitzone einstellen https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv

  while (!time(nullptr))   // Warten bis eine Zeit empfangen wurde
    yield();

  time_t now = time(nullptr);
  Serial.print("Uhrzeit konfiguriert um: ");
  Serial.println(ctime(&now));
  delay(5000);
}

void uhrzeit()
{
  time_t now = time(nullptr);
  struct tm *timeinfo;               // http://www.cplusplus.com/reference/ctime/tm/
  timeinfo = localtime(&now);

  uint8_t Stunden_Aktuell = timeinfo->tm_hour;
  uint8_t Minuten_Aktuell = timeinfo->tm_min;
  uint8_t Sekunden_Aktuell = timeinfo->tm_sec;

  if ((Stunden_Aktuell == 5) && (Minuten_Aktuell == 00) && (Sekunden_Aktuell == 00))
    status = 2;

  if ((Stunden_Aktuell == 22) && (Minuten_Aktuell == 00) && (Sekunden_Aktuell == 00))
    status = 1;

  // staus 10 = Rollos runtergefahren
  // staus 20 = Rollos raufgefahren

  byte schalt_status = loadConfig();
  
  // sind die Rollos unten oder oben
  if (Stunden_Aktuell < (schalt_status == 20 ? 20 : 4)) // ist er nicht in dem zeitbereich wo die Rollos runter/rauffahren sollen gehe in deepsleep
    initDeepSleep(60);

}
void initDeepSleep(uint16_t sleepS)
{
  delay(20);
  //  sleepCount++;
  //  ESP.rtcUserMemoryWrite(0, &sleepCount, sizeof(sleepCount));
  ESP.deepSleep(sleepS * 60000000);
  delay(100);
}

void saveConfig(byte Daten) {
  // Save configuration from RAM into EEPROM
  EEPROM.begin(512);
  EEPROM.put(Adresse, Daten);
  delay(200);
  EEPROM.commit();                      // Only needed for ESP8266 to get data written
  EEPROM.end();                         // Free RAM copy of structure
}
byte loadConfig() {
  // Loads configuration from EEPROM into RAM
  EEPROM.begin(512);
  EEPROM.get(Adresse, Data);
  EEPROM.end();
  return Data;
}
