Added user config flag to set wifi settings to static value. The flag disables the WiFiManager.

This commit is contained in:
Kai Lauterbach 2022-09-07 15:03:29 +02:00
parent 3cea359c49
commit b2c69868f0
3 changed files with 48 additions and 5 deletions

View file

@ -10,7 +10,7 @@
#define DELAY_LOOP_MS 50
#define POWERSAVING_SLEEP_S 600
#define EMERGENCY_SLEEP_S 172800 // Sleep for 2 days to recover
#define RESET_ESP_TIME_INTERVAL_MS (60*60*3*1000) // (60*60*6*1000) // reset every 3 hours
#define RESET_ESP_TIME_INTERVAL_MS (60*60*12*1000) // reset every 12 hours
#define WIND_SENSOR_MEAS_TIME_S 15
#define INITIAL_WEBSERVER_TIME 20

View file

@ -7,13 +7,16 @@
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h> // WiFiClient
#include <WiFiManager.h> // WiFiManager from bib manager
// Project includes
#include "constants.h"
#include "config.h"
#include "config_user.h"
#ifdef USE_WIFIMANAGER
#include <WiFiManager.h> // WiFiManager from bib manager
#endif
//*************************************************************************//
// check if some settings are correct
@ -36,7 +39,9 @@ uint16_t update_windspeed_exceed_cnt = 0;
boolean validData = false;
#ifdef USE_WIFIMANAGER
WiFiManager wifiManager;
#endif
//*************************************************************************//
@ -141,7 +146,7 @@ void setup()
#ifdef ENABLE_WATCHDOG
// Enable the internal watchdog
ESP.wdtEnable(WATCHDOG_TIMEOUT_MS);
ESP.wdtEnable(WDTO_4S);
#endif
}
@ -150,6 +155,9 @@ void setup()
void wifiConnectionCheck()
{
#ifdef USE_WIFIMANAGER
// Establish WiFi connection
String wifiName = "oko-weather-" + DEVICE_NAME;
@ -161,6 +169,7 @@ void wifiConnectionCheck()
while (!wifiManager.autoConnect(wifiName.c_str(), "DEADBEEF"))
{
debug("WiFi connection failed, try again in 5 seconds...");
// If autoconnect to WLAN failed and no client connected, go to deep sleep
#ifdef SLEEP_IF_NO_WLAN_CONNECTION
@ -173,6 +182,33 @@ void wifiConnectionCheck()
#endif
}
#else // else of USE_WIFIMANAGER
if (WiFi.status() == WL_CONNECTED)
{
return;
}
if (!WiFi.config(local_IP, gateway, subnet))
{
Serial.println("Failed to set IP configuration");
} else {
Serial.println("Successful set IP configuration");
}
WiFi.begin(ssid, password);
Serial.println("Connecting to WLAN");
while (WiFi.status() != WL_CONNECTED)
{
delay(100);
}
Serial.println("WLAN connection OK");
#endif
}
//*************************************************************************//

View file

@ -11,11 +11,14 @@
#include <ESP8266HTTPUpdateServer.h>
#include <WiFiClient.h>
#include <WiFiManager.h> // WiFiManager from bib manager
#include "config.h"
#include "config_user.h"
#ifdef USE_WIFIMANAGER
#include <WiFiManager.h> // WiFiManager from bib manager
#endif
ESP8266WebServer httpServer(WEB_UPDATER_HTTP_PORT);
ESP8266HTTPUpdateServer httpUpdater;
@ -44,7 +47,9 @@ void setupWebUpdater(String device, String ip)
httpUpdater.setup(&httpServer);
httpServer.on("/", showHTMLMain);
#ifdef USE_WIFIMANAGER
httpServer.on("/resetWifiManager", resetWifiManager);
#endif
#ifdef HOMEBRIDGE_WEBSTAT
httpServer.on("/hbWebstat", hb_webstat_send);
#endif
@ -70,7 +75,7 @@ void setSensorData(float sensorValues[])
{
if (sensorValues[i] != 0)
{
wuValidData = true; // at least one value is not zero, the data
wuValidData = true; // at least one value is not zero, the data is valid
}
}
@ -129,6 +134,7 @@ void hb_webstat_send(void)
httpServer.send(200, "text/html", msg);
}
#ifdef USE_WIFIMANAGER
void resetWifiManager()
{
@ -150,6 +156,7 @@ void resetWifiManager()
// manual reset after restart is required
ESP.restart();
}
#endif
void measureWindspeed()
{