Also hier gibt es ein Verständnissproblem.
WebServer :
Zum Einrichten von WLAN, Passwörter, IP Adressen, Port, usw.
Firmwareupdate auch direkt über die Webadresse
Wie gesagt da gibt es genau 2 versionen wie man den WebServer einrichtet.
Beide beispiele habe ich gesehen und habe bis jetzt selber nur die Version genutzt :
/// Webpage MQTT Bereich
client.println( "<form>"
"<form action='/mqtt'>MQTT- Aktivieren: <input type='checkbox' name='MQTTaktiv' ");
if (MQTT_aktiv == true){
client.println( "checked " );}
client.println( ">");
if (MQTT_aktiv == true){
client.println( "<form action='/mqtt'>MQTT- Broker- Topic: <input type='text' name='MQTTBrokerTopic' placeholder='" + MQTT_Broker_Topic + "'>"
"<form action='/mqtt'>MQTT- Broker- IP: <input type='text' name='MQTTBrokerIP' placeholder='" + MQTT_Broker_IP + "'>"
"<form action='/mqtt'>MQTT- Broker- Port: <input type='text' name='MQTTBrokerPort' placeholder='" + MQTT_Broker_Port + "'>" );}
client.println( "<input type='submit' value='MQTT - Speichern'>"
"</form>");
///////////////////////////////////////////////////////////////////////////////////////////////
Wie gesagt das ist nur ein Ausschnitt, mann erkennt aber das ich die gesammte Seite mit client.println
zu den clienten bekomme.
Nun zu den Problem :
Das Firmwareupdate habe ich bis jetzt nur als Bespiel und erklärung der anderen Version des senden der Seite.
Also :
server.on("/", HTTP_GET, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/html", serverIndex);
});
server.on("/serverIndex", HTTP_GET, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/html", serverIndex);
});
/*handling uploading firmware file */
server.on("/update", HTTP_POST, []()
Das sind 2 versionen die Webseite zusammen zu bauen und an den clienten zu übertragen.
Nun ist die Frage (Ich kann wohl beide nicht kombinieren), kann man das HTML OTA
(die Datei wird über den WebBrowser hochgeladen) auf die client.println() Version umbauen.
Sollte man vieleicht direkt auf die :
server.send Version umbauen.
Vernetzt werden sie über meinen MQTT Broker später noch eine Seriele Komunikation (ESP <-> Rauchmelder)
(Erst Später)
Das Problem ist aber das man extrem wenig zu solch komplexen Themen findet .....
Meine Get Befehle nehme ich mit :
void GetZerlegen()
{
long le = GetMSG.length();
long la;
GetMSG = GetMSG.substring(0, (le - 11));
if ( GetMSG.substring(0, 18) == "GET /?MQTTaktiv=on" )
{
MQTT_aktiv = true;
le = GetMSG.length(); // 105
la = GetMSG.indexOf("&MQTTBrokerPort="); // 84
if (le - 16 != la)
{
MQTT_Broker_Port = GetMSG.substring((la + 16), le);
}
GetMSG = GetMSG.substring(0, la);
le = la ; // 84
la = GetMSG.indexOf("&MQTTBrokerIP="); // 55
if (le - 14 != la)
{
MQTT_Broker_IP = GetMSG.substring((la + 14), le);
}
GetMSG = GetMSG.substring(0, la);
le = la ; // 55
if (35 != le)
{
GetMSG = GetMSG.substring(35, le);
while (-1 != GetMSG.indexOf("%2F")) // %2F muss gegen / getauscht werden
{
le = GetMSG.length(); // 20
la = GetMSG.indexOf("%2F");
String m1 = GetMSG.substring(0, la);
m1 = m1 + "/";
GetMSG = m1 + GetMSG.substring((la + 3), le);
}
MQTT_Broker_Topic = GetMSG;
}
}
else if ( GetMSG.substring(0, 18) == "GET /?MQTTBrokerTo" )
{
MQTT_aktiv = false;
}
}
Auseinander und das müsste halt noch gehen oder nur mit geringen aufwand umgebaut werden.
Die Frage was ihr mir empfehlen würdet .....
MfG