ESP32 mit WiFiManager

So hab nun den Sketch vom Link mit dem WiFi Manager erweitert.
Vieleicht hat ja jemand eine Lösung für mich.

#include "WiFi.h"
#include  "WebServer.h"
#include "SPIFFS.h"
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager

#define TRIGGER_PIN 0

// wifimanager can run in a blocking mode or a non blocking mode
// Be sure to know how to process loops with no delay() if using non blocking
bool wm_nonblocking = false; // change to true to use non blocking
WiFiManager wm; // global wm instance
WiFiManagerParameter custom_field; // global param ( for non blocking w params )


//const char* ssid = "????";                 // Network name.
//const char* password = "12345";        // Password network.
uint32_t altzeit;
uint32_t wert1, wert2, wert3, wert4, wert5;

char lcdData1[16] = {0x64, 0x69, 0x65, 0x73, 0x20, 0x69, 0x73, 0x74, 0x20, 0x65, 0x69, 0x6E, 0x20, 0x54 , 0x65, 0x78}; //Beispiel Daten "dies ist ein Text!"

byte ledpin1 = 23;
byte ledpin2 = 22;
byte ledpin3 = 19;
bool btnstate1;   // Status des HTLM Butons
bool btnstate2;
bool btnstate3;

// Server Instanz erstellen
WebServer server(80);

void setup() 
{
  Serial.begin(115200);
  #ifdef DEBUG
  Serial.println("start Manager");
  #endif

  WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP  

  pinMode(TRIGGER_PIN, INPUT);

  if(wm_nonblocking) wm.setConfigPortalBlocking(false);

  // test custom html(radio)
  const char* custom_radio_str = "<br/><label for='customfieldid'>Custom Field Label</label><input type='radio' name='customfieldid' value='1' checked> One<br><input type='radio' name='customfieldid' value='2'> Two<br><input type='radio' name='customfieldid' value='3'> Three";
  new (&custom_field) WiFiManagerParameter(custom_radio_str); // custom html input
  
  wm.addParameter(&custom_field);
  wm.setSaveParamsCallback(saveParamCallback);

  std::vector<const char *> menu = {"wifi","info","restart","exit"};
  wm.setMenu(menu);

  // set dark theme
  wm.setClass("invert");


  //set static ip
  // wm.setSTAStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); // set static ip,gw,sn
  // wm.setShowStaticFields(true); // force show static ip fields
  // wm.setShowDnsFields(true);    // force show dns field always

  // wm.setConnectTimeout(20); // how long to try to connect for before continuing
  wm.setConfigPortalTimeout(60); // auto close configportal after n seconds

  bool res;
  // res = wm.autoConnect(); // auto generated AP name from chipid
  // res = wm.autoConnect("AutoConnectAP"); // anonymous ap
  res = wm.autoConnect("AutoConnectAP","password"); // password protected ap

  if(!res) {
    Serial.println("Failed to connect or hit timeout");
    // ESP.restart();
  } 
  else {
    //if you get here you have connected to the WiFi    
    Serial.println("connected...yeey :)");
  }
  
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  } 
  Serial.print("Connected to ");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  SPIFFS.begin(); // Filesystem starten

  // --Server Handle einrichten---
  server.serveStatic("/", SPIFFS, "/index.html");
  server.serveStatic("/style.css", SPIFFS, "/style.css", "text/css");
  server.on("/daten", sendeDaten);
  //server.onNotFound(handleNotFound);   // Fehler bearbeiten

  server.begin();
  Serial.println("HTTP server started");
  
  char lcdData1[16] = {0x64, 0x69, 0x65, 0x73, 0x20, 0x69, 0x73, 0x74, 0x20, 0x65, 0x69, 0x6E, 0x20, 0x54 , 0x65, 0x78};
}

void checkButton(){
  // check for button press
  if ( digitalRead(TRIGGER_PIN) == LOW ) {
    // poor mans debounce/press-hold, code not ideal for production
    delay(50);
    if( digitalRead(TRIGGER_PIN) == LOW ){
      Serial.println("Button Pressed");
      // still holding button for 3000 ms, reset settings, code not ideaa for production
      delay(3000); // reset delay hold
      if( digitalRead(TRIGGER_PIN) == LOW ){
        Serial.println("Button Held");
        Serial.println("Erasing Config, restarting");
        wm.resetSettings();
        ESP.restart();
      }
      
      // start portal w delay
      Serial.println("Starting config portal");
      wm.setConfigPortalTimeout(120);
      
      if (!wm.startConfigPortal("OnDemandAP","password")) {
        Serial.println("failed to connect or hit timeout");
        delay(3000);
        // ESP.restart();
      } else {
        //if you get here you have connected to the WiFi
        Serial.println("connected...yeey :)");
      }
    }
  }
}


String getParam(String name){
  //read parameter from server, for customhmtl input
  String value;
  if(wm.server->hasArg(name)) {
    value = wm.server->arg(name);
  }
  return value;
}

void saveParamCallback(){
  Serial.println("[CALLBACK] saveParamCallback fired");
  Serial.println("PARAM customfieldid = " + getParam("customfieldid"));
}


void loop() 
{
  server.handleClient();// hier passiert sonst nichts

  if(wm_nonblocking) wm.process(); // avoid delays() in loop when non-blocking and other long running code  
  checkButton();
  
    //Beispiel m Werte auf Internetseite zu simulieren
  if (millis() - altzeit >= 400) { // Messwerte simulieren 400ms
    altzeit = millis();
    wert1++;
    if (wert1 > 2000)
    {
      wert1 = 0;
      wert5++;
    }
    wert2 = millis() / 1000;
    wert3 = 50.0 + random(10) / 5.0;
    wert4 = (wert2 + wert1);  
  }
}

void Datenzeigen() 
{
  String message = "Daten angekommen\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) 
  {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
 
  Serial.println(message);
}

void sendeDaten() 
{
  char sendbuffer[60];

 // JSON String als Array anlegen ["20.0","572.6","24.0"]
//  sprintf(sendbuffer, "[\"%4.1f\",\"%4.1f\",\"%4.1f\",\"%1u\",\"%1u\",\"%1u\"]",
//          wert1, wert2, wert3, wert4, wert5);
   sprintf(sendbuffer, "[\"%4d\",\"%4d\",\"%4d\",\"%4d\",\"%4d\",\"%16c\"]",    //Formatierung mit sprintf
                          wert1, wert2, wert3, wert4, wert5, lcdData1);        
  server.send(200, "application/json", sendbuffer);
  #ifdef DEBUG
  Serial.print(sendbuffer);
  Serial.println(strlen(sendbuffer));
  #endif
}