Problem: Mqtt Serveradresse in SPIFFS speichern

Mehr
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.
const char* mqtt_server = "192.168.178.60";
  client.setServer(mqtt_server, myinputPort); Funktioniert!
Der Spiffs-Inhalt kommt als String und folgendes sollte gehen:
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.

Powered by Kunena Forum