[GH-ISSUE #1427] Custom parameters box getting added each time after running code #1219

Closed
opened 2026-02-28 01:29:05 +03:00 by kerem · 3 comments
Owner

Originally created by @rudro101 on GitHub (Jun 7, 2022).
Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1427

Sketch

#define ESP_DRD_USE_SPIFFS true

#include <WiFi.h>
#include <FS.h>
#include <SPIFFS.h>
#include <WiFiManager.h>
#include <ArduinoJson.h>
#define trigPin 5


#define JSON_CONFIG_FILE "/test_config.json"
 
bool shouldSaveConfig = false;
 
int testNumber1;
int testNumber2;
int testNumber3;
 
WiFiManager wm;
 
void saveConfigFile()
{
  Serial.println(F("Saving configuration..."));
  
  StaticJsonDocument<512> json;
  json["testNumber1"] = testNumber1;
  json["testNumber2"] = testNumber2;
  json["testNumber3"] = testNumber3;
 
  File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w");
  if (!configFile)
    {
      Serial.println("failed to open config file for writing");
    }
 
  serializeJsonPretty(json, Serial);
  
  if (serializeJson(json, configFile) == 0)
    {
      Serial.println(F("Failed to write to file"));
    }
  configFile.close();
}
 
bool loadConfigFile()
{
 
  Serial.println("Mounting File System...");
 
  if (SPIFFS.begin(false) || SPIFFS.begin(true))
  {
    Serial.println("mounted file system");
    if (SPIFFS.exists(JSON_CONFIG_FILE))
    {
      Serial.println("reading config file");
      File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r");
      if (configFile)
      {
        Serial.println("Opened configuration file");
        StaticJsonDocument<512> json;
        DeserializationError error = deserializeJson(json, configFile);
        serializeJsonPretty(json, Serial);
        if (!error)
        {
          Serial.println("Parsing JSON");
 
          testNumber1 = json["testNumber1"].as<int>();
          testNumber2 = json["testNumber2"].as<int>();
          testNumber3 = json["testNumber3"].as<int>();
          return true;
        }
        else
        {
         
          Serial.println("Failed to load json config");
        }
      }
    }
  }
  else
  {
    Serial.println("Failed to mount FS");
  }
 
  return false;
}
 
 
void saveConfigCallback()
{
  Serial.println("Should save config");
  shouldSaveConfig = true;
}
 
void configModeCallback(WiFiManager *myWiFiManager)
{
  Serial.println("Entered Configuration Mode");
  Serial.print("Config SSID: ");
  Serial.println(myWiFiManager->getConfigPortalSSID());
  Serial.print("Config IP Address: ");
  Serial.println(WiFi.softAPIP());
}
 
void setup()

{
  WiFi.mode(WIFI_STA);
  Serial.begin(115200);
  Serial.println("Start");
  pinMode(trigPin, INPUT_PULLUP); 
}
 
 
 
 
void loop() {
 if (digitalRead(trigPin)==LOW){
 
 bool forceConfig = false;
 
  bool spiffsSetup = loadConfigFile();
  if (!spiffsSetup)
  {
    Serial.println(F("Forcing config mode as there is no saved config"));
    forceConfig = true;
  }
 
 
  wm.resetSettings();
 
  wm.setSaveConfigCallback(saveConfigCallback);
 
  wm.setAPCallback(configModeCallback);
  
  char convertedValue_a[6];
  char convertedValue_b[6];
  char convertedValue_c[6];

  
  sprintf(convertedValue_a, "%d", testNumber1);
  sprintf(convertedValue_b, "%d", testNumber2);
  sprintf(convertedValue_c, "%d", testNumber3); 
  
  WiFiManagerParameter custom_text_box_num1("key_num1", "LED1", convertedValue_a, 7);
  WiFiManagerParameter custom_text_box_num2("key_num2", "LED2", convertedValue_b, 7);
  WiFiManagerParameter custom_text_box_num3("key_num3", "LED3", convertedValue_c, 7); 
 
  wm.addParameter(&custom_text_box_num1);
  wm.addParameter(&custom_text_box_num2);
  wm.addParameter(&custom_text_box_num3);
 
  if (forceConfig)
  {
    if (!wm.startConfigPortal("NEWTEST_AP", "password"))
    {
      Serial.println("failed to connect and hit timeout");
      delay(3000);
      ESP.restart();
      delay(5000);
    }
  }
  else
  {
    if (!wm.autoConnect("NEWTEST_AP", "password"))
    {
      Serial.println("failed to connect and hit timeout");
      delay(3000);
      ESP.restart();
      delay(5000);
    }
  }
 
 
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
 
  testNumber1 = atoi(custom_text_box_num1.getValue());
  Serial.print("testNumber1: ");
  Serial.println(testNumber1);
  
  testNumber2 = atoi(custom_text_box_num2.getValue());
  Serial.print("testNumber2: ");
  Serial.println(testNumber2);
  
  testNumber3 = atoi(custom_text_box_num3.getValue());
  Serial.print("testNumber3: ");
  Serial.println(testNumber3);

  

  
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());
  Serial.print("psk: ");
  Serial.println(WiFi.psk());
 
 
  if (shouldSaveConfig)
  {
    saveConfigFile();
    
  }
}

}


### Debug Messages

messages here



Originally created by @rudro101 on GitHub (Jun 7, 2022). Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1427 ### Sketch ```cpp #define ESP_DRD_USE_SPIFFS true #include <WiFi.h> #include <FS.h> #include <SPIFFS.h> #include <WiFiManager.h> #include <ArduinoJson.h> #define trigPin 5 #define JSON_CONFIG_FILE "/test_config.json" bool shouldSaveConfig = false; int testNumber1; int testNumber2; int testNumber3; WiFiManager wm; void saveConfigFile() { Serial.println(F("Saving configuration...")); StaticJsonDocument<512> json; json["testNumber1"] = testNumber1; json["testNumber2"] = testNumber2; json["testNumber3"] = testNumber3; File configFile = SPIFFS.open(JSON_CONFIG_FILE, "w"); if (!configFile) { Serial.println("failed to open config file for writing"); } serializeJsonPretty(json, Serial); if (serializeJson(json, configFile) == 0) { Serial.println(F("Failed to write to file")); } configFile.close(); } bool loadConfigFile() { Serial.println("Mounting File System..."); if (SPIFFS.begin(false) || SPIFFS.begin(true)) { Serial.println("mounted file system"); if (SPIFFS.exists(JSON_CONFIG_FILE)) { Serial.println("reading config file"); File configFile = SPIFFS.open(JSON_CONFIG_FILE, "r"); if (configFile) { Serial.println("Opened configuration file"); StaticJsonDocument<512> json; DeserializationError error = deserializeJson(json, configFile); serializeJsonPretty(json, Serial); if (!error) { Serial.println("Parsing JSON"); testNumber1 = json["testNumber1"].as<int>(); testNumber2 = json["testNumber2"].as<int>(); testNumber3 = json["testNumber3"].as<int>(); return true; } else { Serial.println("Failed to load json config"); } } } } else { Serial.println("Failed to mount FS"); } return false; } void saveConfigCallback() { Serial.println("Should save config"); shouldSaveConfig = true; } void configModeCallback(WiFiManager *myWiFiManager) { Serial.println("Entered Configuration Mode"); Serial.print("Config SSID: "); Serial.println(myWiFiManager->getConfigPortalSSID()); Serial.print("Config IP Address: "); Serial.println(WiFi.softAPIP()); } void setup() { WiFi.mode(WIFI_STA); Serial.begin(115200); Serial.println("Start"); pinMode(trigPin, INPUT_PULLUP); } void loop() { if (digitalRead(trigPin)==LOW){ bool forceConfig = false; bool spiffsSetup = loadConfigFile(); if (!spiffsSetup) { Serial.println(F("Forcing config mode as there is no saved config")); forceConfig = true; } wm.resetSettings(); wm.setSaveConfigCallback(saveConfigCallback); wm.setAPCallback(configModeCallback); char convertedValue_a[6]; char convertedValue_b[6]; char convertedValue_c[6]; sprintf(convertedValue_a, "%d", testNumber1); sprintf(convertedValue_b, "%d", testNumber2); sprintf(convertedValue_c, "%d", testNumber3); WiFiManagerParameter custom_text_box_num1("key_num1", "LED1", convertedValue_a, 7); WiFiManagerParameter custom_text_box_num2("key_num2", "LED2", convertedValue_b, 7); WiFiManagerParameter custom_text_box_num3("key_num3", "LED3", convertedValue_c, 7); wm.addParameter(&custom_text_box_num1); wm.addParameter(&custom_text_box_num2); wm.addParameter(&custom_text_box_num3); if (forceConfig) { if (!wm.startConfigPortal("NEWTEST_AP", "password")) { Serial.println("failed to connect and hit timeout"); delay(3000); ESP.restart(); delay(5000); } } else { if (!wm.autoConnect("NEWTEST_AP", "password")) { Serial.println("failed to connect and hit timeout"); delay(3000); ESP.restart(); delay(5000); } } Serial.println(""); Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); testNumber1 = atoi(custom_text_box_num1.getValue()); Serial.print("testNumber1: "); Serial.println(testNumber1); testNumber2 = atoi(custom_text_box_num2.getValue()); Serial.print("testNumber2: "); Serial.println(testNumber2); testNumber3 = atoi(custom_text_box_num3.getValue()); Serial.print("testNumber3: "); Serial.println(testNumber3); Serial.print("SSID: "); Serial.println(WiFi.SSID()); Serial.print("psk: "); Serial.println(WiFi.psk()); if (shouldSaveConfig) { saveConfigFile(); } } } ### Debug Messages ``` messages here ```
kerem closed this issue 2026-02-28 01:29:05 +03:00
Author
Owner

@rudro101 commented on GitHub (Jun 7, 2022):

1st time:
WhatsApp Image 2022-06-07 at 10 48 36 PM
2nd time:
WhatsApp Image 2022-06-07 at 10 48 40 PM

<!-- gh-comment-id:1148964618 --> @rudro101 commented on GitHub (Jun 7, 2022): 1st time: ![WhatsApp Image 2022-06-07 at 10 48 36 PM](https://user-images.githubusercontent.com/58129107/172445063-e0571e06-6e33-415a-8d6a-a10feeb862a6.jpeg) 2nd time: ![WhatsApp Image 2022-06-07 at 10 48 40 PM](https://user-images.githubusercontent.com/58129107/172445045-6275ce0f-8ff0-492d-9323-ddcff5a104d7.jpeg)
Author
Owner

@tablatronix commented on GitHub (Jun 13, 2022):

Lol did you figure it out?

<!-- gh-comment-id:1154504280 --> @tablatronix commented on GitHub (Jun 13, 2022): Lol did you figure it out?
Author
Owner

@rudro101 commented on GitHub (Jun 14, 2022):

Yes

On Tue, 14 Jun 2022 at 3:56 AM Shawn A @.***> wrote:

Lol did you figure it out?


Reply to this email directly, view it on GitHub
https://github.com/tzapu/WiFiManager/issues/1427#issuecomment-1154504280,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN3PVU4VWOEVJI47EK2AVDLVO6YPZANCNFSM5YDWGTAQ
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

<!-- gh-comment-id:1154634316 --> @rudro101 commented on GitHub (Jun 14, 2022): Yes On Tue, 14 Jun 2022 at 3:56 AM Shawn A ***@***.***> wrote: > Lol did you figure it out? > > — > Reply to this email directly, view it on GitHub > <https://github.com/tzapu/WiFiManager/issues/1427#issuecomment-1154504280>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AN3PVU4VWOEVJI47EK2AVDLVO6YPZANCNFSM5YDWGTAQ> > . > You are receiving this because you modified the open/close state.Message > ID: ***@***.***> >
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/WiFiManager#1219
No description provided.