diff --git a/src/HAP.cpp b/src/HAP.cpp index aa161a9..c4b2844 100644 --- a/src/HAP.cpp +++ b/src/HAP.cpp @@ -1262,7 +1262,7 @@ int HAPClient::getStatusURL(){ response+="Boot Time:" + String(homeSpan.webLog.bootTime) + "\n"; response+="Reset Reason Code:" + String(esp_reset_reason()) + "\n"; response+="WiFi Disconnects:" + String(homeSpan.connected/2) + "\n"; - response+="WiFi Signal:" + String(WiFi.RSSI()) + " dDm\n"; + response+="WiFi Signal:" + String(WiFi.RSSI()) + " dBm\n"; response+="WiFi Gateway:" + WiFi.gatewayIP().toString() + "\n"; response+="ESP32 Board:" + String(ARDUINO_BOARD) + "\n"; response+="Arduino-ESP Version:" + String(ARDUINO_ESP_VERSION) + "\n"; diff --git a/src/HomeSpan.cpp b/src/HomeSpan.cpp index acb1ac8..312fe0d 100644 --- a/src/HomeSpan.cpp +++ b/src/HomeSpan.cpp @@ -398,7 +398,7 @@ void Span::checkConnect(){ if(WiFi.status()==WL_CONNECTED) return; - WEBLOG("*** WiFi Connection Lost!"); // losing and re-establishing connection has not been tested + addWebLog(true,"*** WiFi Connection Lost!"); // losing and re-establishing connection has not been tested connected++; waitTime=60000; alarmConnect=0; @@ -420,12 +420,7 @@ void Span::checkConnect(){ Serial.print(". You may type 'W ' to re-configure WiFi, or 'X ' to erase WiFi credentials. Will try connecting again in 60 seconds.\n\n"); waitTime=60000; } else { - WEBLOG("Trying to connect to %s. Waiting %d sec",network.wifiData.ssid,waitTime/1000); - Serial.print("Trying to connect to "); - Serial.print(network.wifiData.ssid); - Serial.print(". Waiting "); - Serial.print(waitTime/1000); - Serial.print(" second(s) for response...\n"); + addWebLog(true,"Trying to connect to %s. Waiting %d sec...",network.wifiData.ssid,waitTime/1000); WiFi.begin(network.wifiData.ssid,network.wifiData.pwd); } @@ -434,14 +429,14 @@ void Span::checkConnect(){ return; } + if(!HAPClient::nAdminControllers()) + statusLED.start(LED_PAIRING_NEEDED); + else + statusLED.on(); + connected++; - WEBLOG("WiFi Connected!"); - Serial.print("Successfully connected to "); - Serial.print(network.wifiData.ssid); - Serial.print("! IP Address: "); - Serial.print(WiFi.localIP()); - Serial.print("\n"); + addWebLog(true,"WiFi Connected! IP Address = %s\n",WiFi.localIP().toString().c_str()); if(connected>1) // Do not initialize everything below if this is only a reconnect return; @@ -565,12 +560,8 @@ void Span::checkConnect(){ Serial.print("\n"); - if(!HAPClient::nAdminControllers()){ + if(!HAPClient::nAdminControllers()) Serial.print("DEVICE NOT YET PAIRED -- PLEASE PAIR WITH HOMEKIT APP\n\n"); - statusLED.start(LED_PAIRING_NEEDED); - } else { - statusLED.on(); - } if(wifiCallback) wifiCallback(); @@ -2052,26 +2043,33 @@ void SpanWebLog::initTime(){ /////////////////////////////// -void SpanWebLog::vLog(const char *fmt, va_list ap){ - if(maxEntries==0) - return; +void SpanWebLog::vLog(boolean sysMsg, const char *fmt, va_list ap){ - int index=nEntries%maxEntries; + char *buf; + vasprintf(&buf,fmt,ap); - log[index].upTime=esp_timer_get_time(); - if(timeInit) - getLocalTime(&log[index].clockTime,10); - else - log[index].clockTime.tm_year=0; + if(sysMsg) + Serial.printf("%s\n",buf); + else if(homeSpan.logLevel>0) + Serial.printf("WEBLOG: %s\n",buf); + + if(maxEntries>0){ + int index=nEntries%maxEntries; + + log[index].upTime=esp_timer_get_time(); + if(timeInit) + getLocalTime(&log[index].clockTime,10); + else + log[index].clockTime.tm_year=0; + + log[index].message=(char *)realloc(log[index].message, strlen(buf) + 1); + strcpy(log[index].message, buf); + + log[index].clientIP=homeSpan.lastClientIP; + nEntries++; + } - free(log[index].message); - vasprintf(&log[index].message,fmt,ap); - - log[index].clientIP=homeSpan.lastClientIP; - nEntries++; - - if(homeSpan.logLevel>0) - Serial.printf("WEBLOG: %s\n",log[index].message); + free(buf); } /////////////////////////////// diff --git a/src/HomeSpan.h b/src/HomeSpan.h index e882978..556f6a0 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -128,7 +128,7 @@ struct SpanWebLog{ // optional web status/log data void init(uint16_t maxEntries, const char *serv, const char *tz, const char *url); void initTime(); - void vLog(const char *fmr, va_list ap); + void vLog(boolean sysMsg, const char *fmr, va_list ap); }; /////////////////////////////// @@ -286,10 +286,10 @@ class Span{ webLog.init(maxEntries, serv, tz, url); } - void addWebLog(const char *fmt, ...){ // add Web Log entry + void addWebLog(boolean sysMsg, const char *fmt, ...){ // add Web Log entry va_list ap; va_start(ap,fmt); - webLog.vLog(fmt,ap); + webLog.vLog(sysMsg,fmt,ap); va_end(ap); } diff --git a/src/Settings.h b/src/Settings.h index 8e5bf25..ba7273d 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -111,7 +111,7 @@ #define LOG1(format,...) if(homeSpan.getLogLevel()>0)Serial.print ##__VA_OPT__(f)(format __VA_OPT__(,) __VA_ARGS__) #define LOG2(format,...) if(homeSpan.getLogLevel()>1)Serial.print ##__VA_OPT__(f)(format __VA_OPT__(,) __VA_ARGS__) -#define WEBLOG(format,...) homeSpan.addWebLog(format __VA_OPT__(,) __VA_ARGS__) +#define WEBLOG(format,...) homeSpan.addWebLog(false, format __VA_OPT__(,) __VA_ARGS__) ////////////////////////////////////////////////////// // Types of Accessory Categories //