Brauche Hilfe beim Finish meiner Parola Uhr

Hallo an alle,
Ich habe ein eine 8dig7Segment Uhr gebastelt die sich per Wlan Connected und dann per Ntp den DS3231 aktualisiert. Läuft wunderbar. Das Display wird mit LedControl angesteuert.

Nun habe ich eine weitere Uhr gebastelt mit 24 8x8 Matrixen (2x12 Übereinander).
Dazu habe ich die Parola_Double_Height_v2.ino genommen.
Nun möchte ich diesen Code in mein Sketch einbauen damit die Uhrzeit genauso aktualisiert wird.
LedControl.h hab ich weggelassen, bei TimeLib.h bin ich mir nicht sicher!

Im Serielen Monitor kommt die Korrekte Meldung das das Wlan conected ist und die Uhrzeit gesetzt wurde.
Wobei dann der DS3231 aktualisiert wurde.

Das Display fängt dann aber mit 00:00:00 Uhr an! Holt sich wahrscheinlich die Zeit vom MD_DS3231 die nicht da ist, nicht aktualisiert ist oder nicht ansprechbar?

Problem! Parola benutzt die MD_DS3231.h, ich hab aber die DS3231.h

Kann mir da jemand helfen.

Unten der Sketch als Code, dazu gehört noch die Font, Ntp und Network ino Datei. Falls die Gebraucht wird kann ich die auch noch hochladen.

weg_Double_Height_v2_Robi_imBau.ino

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <DS3231.h>
#include <Wire.h>
#include <TimeLib.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include "Font_Data2.h"

const char *ssid = "Daisy*****";
const char *password ="12345*****";

// NTP Servers:
//IPAddress timeServer(192, 168, 179, 1);  //meine.fritz.box //(192, 168, 179, 1);
IPAddress timeServer(192, 53, 103, 108);  //ptbtime1.ptb.de //(192, 43, 244, 18);

WiFiUDP Udp; // A UDP instance to let us send and receive packets over UDP
unsigned int localPort = 8888;      // local port to listen for UDP packets

const int timeZone = 1;     // Central European Time
//const int timeZone = -5;  // Eastern Standard Time (USA)

//DS3231-Clock
DS3231 Clock;
bool Century=false;
bool h12;
bool PM;

#if USE_GENERIC_HW || USE_PAROLA_HW
#define INVERT_UPPER_ZONE
#endif

// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define MAX_ZONES 2
#define ZONE_SIZE 12
#define MAX_DEVICES (MAX_ZONES * ZONE_SIZE)
//#define MAX_DEVICES 16

#define ZONE_UPPER  1
#define ZONE_LOWER  0

#define CLK_PIN  14 // D6
#define DIN_PIN  13 // D8
#define CS_PIN   15 // D7

#if USE_DS3231
#include <MD_DS3231.h>
#include <Wire.h>
#endif

// Hardware SPI connection / Arbitrary output pins
MD_Parola P = MD_Parola(DIN_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

#define SPEED_TIME  75
#define PAUSE_TIME  0

#define MAX_MESG  10

// ################################# MAX7219 ##########################

// Global variables
char  szTimeL[MAX_MESG];    // mm:ss\0
char  szTimeH[MAX_MESG];

void getTime(char *psz, bool f = true)
// Code for reading clock time

// HH:MM:SS By me !
{
#if USE_DS3231
  RTC.readTime();
  sprintf(psz, "%02d%c%02d%c%02d", RTC.h, (f ? ':' : ' '), RTC.m, (f ? ':' : ' '), RTC.s);
#else
  uint16_t  h, m, s;
  
  m = millis()/1000;
  h = (m/60) % 24;
  m %= 60;
  sprintf(psz, "%02d%c%02d%c%02d", h, (f ? ':' : ' '), m, (f ? ':' : ' '), s);
#endif
}

void createHString(char *pH, char *pL)
{
  for (; *pL != '\0'; pL++)
    *pH++ = *pL | 0x80;   // offset character

  *pH = '\0'; // terminate the string
}

boolean cleared = false;

void setup() {
  //clock
    Wire.begin(); //clock communication
    Serial.begin(115200);
  //display
 
  String errormessage ="";
  
  //scan for networks
  if(scan_for_network(errormessage) == true)
  {
    //network found
    Serial.println("Netzwerk " + String(ssid) + " gefunden");
    //try connecting to network
    if(connect_to_network() == true)
    {
      //connected to network
      Serial.println("Mit Netzwerk " + String(ssid) + " verbunden");
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());

      Serial.println("Starting UDP");
      Udp.begin(localPort);
      Serial.print("Local port: ");
      Serial.println(Udp.localPort());
      
      //set clock
      if(settime()==true)
      {
        //Clock has been set
        WiFi.disconnect();
        Serial.println("Die Uhrzeit wurde gesetzt: " + String(Clock.getHour(h12,PM)) + ":" + String(Clock.getMinute()));
        delay(500);
      }
      else
      {
        Serial.println("Could not set the RTC.");
      }
    }
    else
    {
      Serial.println("Netzwerkname gefunden, es konnte keine Verbindung hergestellt werden. Falsches Passwort?");
    }
  }
  else
  {
     Serial.println(errormessage);
  }
// initialise the LED display
  P.begin(MAX_ZONES);

  // Set up zones for 2 halves of the display
  P.setZone(ZONE_LOWER, 0, ZONE_SIZE - 1);
  P.setZone(ZONE_UPPER, ZONE_SIZE, MAX_DEVICES - 1);
  P.setFont(numeric7SegDouble);
//  P.setFont(BigFontBottom);
  P.setCharSpacing(P.getCharSpacing() * 2); // double height --> double spacing

#ifdef INVERT_UPPER_ZONE
  P.setZoneEffect(ZONE_UPPER, true, PA_FLIP_UD);
  P.setZoneEffect(ZONE_UPPER, true, PA_FLIP_LR);

  P.displayZoneText(ZONE_LOWER, szTimeL, PA_RIGHT, SPEED_TIME, PAUSE_TIME, PA_PRINT, PA_NO_EFFECT);
  P.displayZoneText(ZONE_UPPER, szTimeH, PA_LEFT, SPEED_TIME, PAUSE_TIME, PA_PRINT, PA_NO_EFFECT);
#else
  P.displayZoneText(ZONE_LOWER, szTimeL, PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_PRINT, PA_NO_EFFECT);
  P.displayZoneText(ZONE_UPPER, szTimeH, PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_PRINT, PA_NO_EFFECT);
#endif

#if USE_DS3231
  RTC.control(DS3231_CLOCK_HALT, DS3231_OFF);
  RTC.control(DS3231_12H, DS3231_OFF);
#endif

}

//main loop: show time, add your own code to display it
void loop()
{
  static uint32_t lastTime = 0; // millis() memory
  static bool flasher = false;  // seconds passing flasher

  P.displayAnimate();
  P.setIntensity(1); // Display Intensity
  if (P.getZoneStatus(ZONE_LOWER) && P.getZoneStatus(ZONE_UPPER))
  {
    // Adjust the time string if we have to. It will be adjusted
    // every second at least for the flashing colon separator.
    if (millis() - lastTime >= 1000)
    {
      lastTime = millis();
      getTime(szTimeL, flasher);
      createHString(szTimeH, szTimeL);
      flasher = !flasher;

      P.displayReset();

      // synchronise the start
      P.synchZoneStart();
    }
  }
}