- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Codebesprechung
- Problem: Mqtt Serveradresse in SPIFFS speichern
Problem: Mqtt Serveradresse in SPIFFS speichern
- Jo
- Autor
- Offline
- New Member
Weniger
Mehr
- Beiträge: 3
- Dank erhalten: 0
20 Jan 2021 08:36 - 20 Jan 2021 16:28 #726
von Jo
Jo erstellte das Thema Problem: Mqtt Serveradresse in SPIFFS speichern
Hallo ich verzweifle an folgendem Problem:
Um den MQTT-Server zu wechseln habe ich eine kleine Webseite für meinen ESP8266 geschrieben. Dort kann der Zugang geändert und ins Spiffs geschrieben werden. Das funktioniert auch grudsätzlich.
Der PubSubClient weigert sich aber die aus Spiffs gelesene Serveradresse zu akzeptieren.Der Spiffs-Inhalt kommt als String und folgendes sollte gehen:
Auch etliche anderen Varianten akzeptiert der PubSubClient nicht.
Hier meine Read und Write Routinen:
EDIT:
Das war es!
Um den MQTT-Server zu wechseln habe ich eine kleine Webseite für meinen ESP8266 geschrieben. Dort kann der Zugang geändert und ins Spiffs geschrieben werden. Das funktioniert auch grudsätzlich.
Der PubSubClient weigert sich aber die aus Spiffs gelesene Serveradresse zu akzeptieren.
const char* mqtt_server = "192.168.178.60";
client.setServer(mqtt_server, myinputPort); Funktioniert!
String mqtt_server = readFile(SPIFFS, "/inputServer.txt");
client.setServer(mqtt_server.c_str(), myinputPort); Funktioniert nicht!
Auch etliche anderen Varianten akzeptiert der PubSubClient nicht.
Hier meine Read und Write Routinen:
String readFile(fs::FS &fs, const char * path){
Serial.printf("Reading file: %s\r\n", path);
File file = fs.open(path, "r");
if(!file){
Serial.println("- empty file or failed to open file");
return String();
}
String fileContent;
while(file.available()){
fileContent+=String((char)file.read());
}
return fileContent;
}
void writeFile(fs::FS &fs, const char * path, const char * message){
Serial.printf("Writing file: %s\r\n", path);
File file = fs.open(path, "w");
if(!file){
Serial.println("- failed to open file for writing");
return;
}
if(file.print(message)){
Serial.println("- file written");
} else {
Serial.println("- write failed");
}
}
EDIT:
IPAddress mqtt_server;
if (mqtt_server.fromString(myinputServer)) {
client.setServer(mqtt_server, myinputPort);
client.setCallback(callback);
}
Das war es!
Letzte Änderung: 20 Jan 2021 16:28 von Jo.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Aktuelle Seite:
- Startseite
- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Codebesprechung
- Problem: Mqtt Serveradresse in SPIFFS speichern