Save last used IP and SSID

master
sqfmi 2024-04-02 22:55:19 -04:00
parent fbbcaabbd1
commit bd1657e9c7
1 changed files with 12 additions and 7 deletions

View File

@ -14,6 +14,8 @@ RTC_DATA_ATTR int weatherIntervalCounter = -1;
RTC_DATA_ATTR long gmtOffset = 0; RTC_DATA_ATTR long gmtOffset = 0;
RTC_DATA_ATTR bool alreadyInMenu = true; RTC_DATA_ATTR bool alreadyInMenu = true;
RTC_DATA_ATTR tmElements_t bootTime; RTC_DATA_ATTR tmElements_t bootTime;
RTC_DATA_ATTR uint32_t lastIPAddress;
RTC_DATA_ATTR char lastSSID[30];
void Watchy::init(String datetime) { void Watchy::init(String datetime) {
esp_sleep_wakeup_cause_t wakeup_reason; esp_sleep_wakeup_cause_t wakeup_reason;
@ -337,14 +339,13 @@ void Watchy::showAbout() {
display.print("h"); display.print("h");
display.print(minutes); display.print(minutes);
display.println("m"); display.println("m");
if(connectWiFi()){ if(WIFI_CONFIGURED){
display.print("SSID: "); display.print("SSID: ");
display.println(WiFi.SSID()); display.println(lastSSID);
display.println("IP: "); display.print("IP: ");
display.println(WiFi.localIP()); display.println(IPAddress(lastIPAddress).toString());
WiFi.mode(WIFI_OFF);
}else{ }else{
display.println("WiFi Not Setup"); display.println("WiFi Not Connected");
} }
display.display(false); // full refresh display.display(false); // full refresh
@ -832,11 +833,13 @@ void Watchy::setupWifi() {
display.println("Setup failed &"); display.println("Setup failed &");
display.println("timed out!"); display.println("timed out!");
} else { } else {
display.println("Connected to"); display.println("Connected to:");
display.println(WiFi.SSID()); display.println(WiFi.SSID());
display.println("Local IP:"); display.println("Local IP:");
display.println(WiFi.localIP()); display.println(WiFi.localIP());
weatherIntervalCounter = -1; // Reset to force weather to be read again weatherIntervalCounter = -1; // Reset to force weather to be read again
lastIPAddress = WiFi.localIP();
WiFi.SSID().toCharArray(lastSSID, 30);
} }
display.display(false); // full refresh display.display(false); // full refresh
// turn off radios // turn off radios
@ -871,6 +874,8 @@ bool Watchy::connectWiFi() {
} else { } else {
if (WL_CONNECTED == if (WL_CONNECTED ==
WiFi.waitForConnectResult()) { // attempt to connect for 10s WiFi.waitForConnectResult()) { // attempt to connect for 10s
lastIPAddress = WiFi.localIP();
WiFi.SSID().toCharArray(lastSSID, 30);
WIFI_CONFIGURED = true; WIFI_CONFIGURED = true;
} else { // connection failed, time out } else { // connection failed, time out
WIFI_CONFIGURED = false; WIFI_CONFIGURED = false;