mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-28 13:46:36 +00:00
Fix syslog dependency on ESP8266
This commit is contained in:
parent
aa244d5cf2
commit
fe50ad1595
@ -424,6 +424,8 @@ static void debugPrintTag(uint8_t tag, Print * _logOutput)
|
||||
|
||||
void debugPrintPrefix(uint8_t tag, int level, Print * _logOutput)
|
||||
{
|
||||
#if HASP_USE_SYSLOG > 0
|
||||
|
||||
if(_logOutput == syslogClient) {
|
||||
syslogClient->beginPacket();
|
||||
|
||||
@ -440,7 +442,7 @@ void debugPrintPrefix(uint8_t tag, int level, Print * _logOutput)
|
||||
|
||||
syslogClient->print(mqttGetNodename());
|
||||
syslogClient->print(' ');
|
||||
syslogClient->print(syslogAppName);
|
||||
debugPrintTag(tag, _logOutput);
|
||||
|
||||
if(debugSyslogProtocol == SYSLOG_PROTO_IETF) {
|
||||
syslogClient->print(F(" - - - \xEF\xBB\xBF")); // include UTF-8 BOM
|
||||
@ -448,6 +450,7 @@ void debugPrintPrefix(uint8_t tag, int level, Print * _logOutput)
|
||||
syslogClient->print(F(": "));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
debugPrintTimestamp(level, _logOutput);
|
||||
debugPrintHaspMemory(level, _logOutput);
|
||||
@ -468,9 +471,11 @@ void debugPrintSuffix(uint8_t tag, int level, Print * _logOutput)
|
||||
_logOutput->println();
|
||||
if(debugAnsiCodes) _logOutput->print(F(TERM_COLOR_MAGENTA));
|
||||
|
||||
#if HASP_USE_SYSLOG > 0
|
||||
if(_logOutput == syslogClient && strlen(debugSyslogHost) > 0) {
|
||||
syslogClient->endPacket();
|
||||
}
|
||||
#endif
|
||||
|
||||
// syslogSend(level, debugOutput);
|
||||
}
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <Wifi.h>
|
||||
#elif defined(ARDUINO_ARCH_ESP8266)
|
||||
#include <ESP8266WiFi.h>
|
||||
#include "user_interface.h" // Wifi Reasons
|
||||
|
||||
static WiFiEventHandler gotIpEventHandler, disconnectedEventHandler;
|
||||
|
||||
@ -52,11 +53,11 @@ void wifiConnected(IPAddress ipaddress)
|
||||
#if defined(STM32F4xx)
|
||||
IPAddress ip;
|
||||
ip = WiFi.localIP();
|
||||
Log.notice(TAG_WIFI,F("Received IP address %d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]);
|
||||
Log.notice(TAG_WIFI, F("Received IP address %d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]);
|
||||
#else
|
||||
Log.notice(TAG_WIFI,F("Received IP address %s"), ipaddress.toString().c_str());
|
||||
Log.notice(TAG_WIFI, F("Received IP address %s"), ipaddress.toString().c_str());
|
||||
#endif
|
||||
Log.verbose(TAG_WIFI,F("Connected = %s"), WiFi.status() == WL_CONNECTED ? PSTR("yes") : PSTR("no"));
|
||||
Log.verbose(TAG_WIFI, F("Connected = %s"), WiFi.status() == WL_CONNECTED ? PSTR("yes") : PSTR("no"));
|
||||
haspProgressVal(255);
|
||||
|
||||
// if(isConnected) {
|
||||
@ -73,15 +74,202 @@ void wifiDisconnected(const char * ssid, uint8_t reason)
|
||||
haspProgressVal(wifiReconnectCounter * 3);
|
||||
haspProgressMsg(F("Wifi Disconnected"));
|
||||
if(wifiReconnectCounter > 33) {
|
||||
Log.error(TAG_WIFI,F("Retries exceed %u: Rebooting..."), wifiReconnectCounter);
|
||||
Log.error(TAG_WIFI, F("Retries exceed %u: Rebooting..."), wifiReconnectCounter);
|
||||
dispatchReboot(false);
|
||||
}
|
||||
Log.warning(TAG_WIFI,F("Disconnected from %s (Reason: %d)"), ssid, reason);
|
||||
|
||||
char buffer[128];
|
||||
|
||||
switch(reason) {
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
case REASON_UNSPECIFIED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("unspecified"));
|
||||
break;
|
||||
case REASON_AUTH_EXPIRE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("authentication expired"));
|
||||
break;
|
||||
case REASON_AUTH_LEAVE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("authentication leave"));
|
||||
break;
|
||||
case REASON_ASSOC_EXPIRE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("association expired"));
|
||||
break;
|
||||
case REASON_ASSOC_TOOMANY:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("too many associations"));
|
||||
break;
|
||||
case REASON_NOT_AUTHED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("not authenticated"));
|
||||
break;
|
||||
case REASON_NOT_ASSOCED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("not associated"));
|
||||
break;
|
||||
case REASON_ASSOC_LEAVE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("associaction leave"));
|
||||
break;
|
||||
case REASON_ASSOC_NOT_AUTHED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("association not authenticated"));
|
||||
break;
|
||||
case REASON_DISASSOC_PWRCAP_BAD:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
|
||||
break;
|
||||
case REASON_DISASSOC_SUPCHAN_BAD:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("bad supchan"));
|
||||
break;
|
||||
case REASON_IE_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("ie invalid"));
|
||||
break;
|
||||
case REASON_MIC_FAILURE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("mic failure"));
|
||||
break;
|
||||
case REASON_4WAY_HANDSHAKE_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("handshake timeout"));
|
||||
break;
|
||||
case REASON_GROUP_KEY_UPDATE_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("key update timeout"));
|
||||
break;
|
||||
case REASON_IE_IN_4WAY_DIFFERS:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("ie handshake differs"));
|
||||
break;
|
||||
case REASON_GROUP_CIPHER_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("group cipher invalid"));
|
||||
break;
|
||||
case REASON_PAIRWISE_CIPHER_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("pairwise cipher invalid"));
|
||||
break;
|
||||
case REASON_AKMP_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("akmp invalid"));
|
||||
break;
|
||||
case REASON_UNSUPP_RSN_IE_VERSION:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
|
||||
break;
|
||||
case REASON_INVALID_RSN_IE_CAP:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("INVALID_RSN_IE_CAP"));
|
||||
break;
|
||||
case REASON_802_1X_AUTH_FAILED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("802.1x auth failed"));
|
||||
break;
|
||||
case REASON_CIPHER_SUITE_REJECTED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("cipher suite rejected"));
|
||||
break;
|
||||
|
||||
case REASON_BEACON_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("beacon timeout"));
|
||||
break;
|
||||
case REASON_NO_AP_FOUND:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("no AP found"));
|
||||
break;
|
||||
case REASON_AUTH_FAIL:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("auth failed"));
|
||||
break;
|
||||
case REASON_ASSOC_FAIL:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("assoc failed"));
|
||||
break;
|
||||
case REASON_HANDSHAKE_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("handshake timeout"));
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
case WIFI_REASON_UNSPECIFIED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("unspecified"));
|
||||
break;
|
||||
case WIFI_REASON_AUTH_EXPIRE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("authentication expired"));
|
||||
break;
|
||||
case WIFI_REASON_AUTH_LEAVE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("authentication leave"));
|
||||
break;
|
||||
case WIFI_REASON_ASSOC_EXPIRE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("association expired"));
|
||||
break;
|
||||
case WIFI_REASON_ASSOC_TOOMANY:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("too many associations"));
|
||||
break;
|
||||
case WIFI_REASON_NOT_AUTHED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("not authenticated"));
|
||||
break;
|
||||
case WIFI_REASON_NOT_ASSOCED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("not associated"));
|
||||
break;
|
||||
case WIFI_REASON_ASSOC_LEAVE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("associaction leave"));
|
||||
break;
|
||||
case WIFI_REASON_ASSOC_NOT_AUTHED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("association not authenticated"));
|
||||
break;
|
||||
case WIFI_REASON_DISASSOC_PWRCAP_BAD:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
|
||||
break;
|
||||
case WIFI_REASON_DISASSOC_SUPCHAN_BAD:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("bad supchan"));
|
||||
break;
|
||||
case WIFI_REASON_IE_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("ie invalid"));
|
||||
break;
|
||||
case WIFI_REASON_MIC_FAILURE:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("mic failure"));
|
||||
break;
|
||||
case WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("handshake timeout"));
|
||||
break;
|
||||
case WIFI_REASON_GROUP_KEY_UPDATE_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("key update timeout"));
|
||||
break;
|
||||
case WIFI_REASON_IE_IN_4WAY_DIFFERS:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("ie handshake differs"));
|
||||
break;
|
||||
case WIFI_REASON_GROUP_CIPHER_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("group cipher invalid"));
|
||||
break;
|
||||
case WIFI_REASON_PAIRWISE_CIPHER_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("pairwise cipher invalid"));
|
||||
break;
|
||||
case WIFI_REASON_AKMP_INVALID:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("akmp invalid"));
|
||||
break;
|
||||
case WIFI_REASON_UNSUPP_RSN_IE_VERSION:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
|
||||
break;
|
||||
case WIFI_REASON_INVALID_RSN_IE_CAP:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("INVALID_RSN_IE_CAP"));
|
||||
break;
|
||||
case WIFI_REASON_802_1X_AUTH_FAILED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("802.1x auth failed"));
|
||||
break;
|
||||
case WIFI_REASON_CIPHER_SUITE_REJECTED:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("cipher suite rejected"));
|
||||
break;
|
||||
|
||||
case WIFI_REASON_BEACON_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("beacon timeout"));
|
||||
break;
|
||||
case WIFI_REASON_NO_AP_FOUND:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("no AP found"));
|
||||
break;
|
||||
case WIFI_REASON_AUTH_FAIL:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("auth powercap"));
|
||||
break;
|
||||
case WIFI_REASON_ASSOC_FAIL:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("assoc failed"));
|
||||
break;
|
||||
case WIFI_REASON_HANDSHAKE_TIMEOUT:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("handshake failed"));
|
||||
break;
|
||||
case WIFI_REASON_CONNECTION_FAIL:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("connection failed"));
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("unknown"));
|
||||
}
|
||||
|
||||
Log.warning(TAG_WIFI, F("Disconnected from %s (Reason: %s [%d])"), ssid, buffer, reason);
|
||||
}
|
||||
|
||||
void wifiSsidConnected(const char * ssid)
|
||||
{
|
||||
Log.notice(TAG_WIFI,F("Connected to SSID %s. Requesting IP..."), ssid);
|
||||
Log.notice(TAG_WIFI, F("Connected to SSID %s. Requesting IP..."), ssid);
|
||||
wifiReconnectCounter = 0;
|
||||
}
|
||||
|
||||
@ -138,7 +326,7 @@ bool wifiShowAP(char * ssid, char * pass)
|
||||
sprintf_P(ssid, PSTR("HASP-%02x%02x%02x"), mac[3], mac[4], mac[5]);
|
||||
sprintf_P(pass, PSTR("haspadmin"));
|
||||
#if defined(STM32F4xx)
|
||||
Log.warning(TAG_WIFI,F("We should setup Temporary Access Point %s password: %s"), ssid, pass);
|
||||
Log.warning(TAG_WIFI, F("We should setup Temporary Access Point %s password: %s"), ssid, pass);
|
||||
#else
|
||||
WiFi.softAP(ssid, pass);
|
||||
|
||||
@ -146,8 +334,8 @@ bool wifiShowAP(char * ssid, char * pass)
|
||||
// dnsServer.setErrorReplyCode(DNSReplyCode::NoError);
|
||||
// dnsServer.start(DNS_PORT, "*", apIP);
|
||||
|
||||
Log.warning(TAG_WIFI,F("Temporary Access Point %s password: %s"), ssid, pass);
|
||||
Log.warning(TAG_WIFI,F("AP IP address : %s"), WiFi.softAPIP().toString().c_str());
|
||||
Log.warning(TAG_WIFI, F("Temporary Access Point %s password: %s"), ssid, pass);
|
||||
Log.warning(TAG_WIFI, F("AP IP address : %s"), WiFi.softAPIP().toString().c_str());
|
||||
// httpReconnect();}
|
||||
#endif
|
||||
return true;
|
||||
@ -180,23 +368,25 @@ void wifiSetup()
|
||||
WiFiSpi.init(ESPSPI_CS, 8000000, &espSPI);
|
||||
|
||||
// check for the presence of the shield:
|
||||
if (WiFiSpi.status() == WL_NO_SHIELD) {
|
||||
Log.notice(TAG_WIFI,F("WiFi shield not present"));
|
||||
if(WiFiSpi.status() == WL_NO_SHIELD) {
|
||||
Log.notice(TAG_WIFI, F("WiFi shield not present"));
|
||||
// don't continue:
|
||||
while (true);
|
||||
while(true)
|
||||
;
|
||||
}
|
||||
|
||||
if (!WiFiSpi.checkProtocolVersion()) {
|
||||
Log.notice(TAG_WIFI,F("Protocol version mismatch. Please upgrade the firmware"));
|
||||
if(!WiFiSpi.checkProtocolVersion()) {
|
||||
Log.notice(TAG_WIFI, F("Protocol version mismatch. Please upgrade the firmware"));
|
||||
// don't continue:
|
||||
while (true);
|
||||
while(true)
|
||||
;
|
||||
}
|
||||
|
||||
// attempt to connect to Wifi network
|
||||
// int status = WL_IDLE_STATUS; // the Wifi radio's status
|
||||
if(!wifiShowAP()) {
|
||||
// while (status != WL_CONNECTED) {
|
||||
Log.notice(TAG_WIFI,F("Connecting to : %s"), wifiSsid);
|
||||
Log.notice(TAG_WIFI, F("Connecting to : %s"), wifiSsid);
|
||||
// Connect to WPA/WPA2 network
|
||||
// status = WiFi.begin(wifiSsid, wifiPassword);
|
||||
WiFi.begin(wifiSsid, wifiPassword);
|
||||
@ -220,7 +410,7 @@ void wifiSetup()
|
||||
#endif
|
||||
|
||||
wifiReconnect();
|
||||
Log.notice(TAG_WIFI,F("Connecting to : %s"), wifiSsid);
|
||||
Log.notice(TAG_WIFI, F("Connecting to : %s"), wifiSsid);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -240,10 +430,10 @@ bool wifiEvery5Seconds()
|
||||
} else {
|
||||
wifiReconnectCounter++;
|
||||
if(wifiReconnectCounter > 45) {
|
||||
Log.error(TAG_WIFI,F("Retries exceed %u: Rebooting..."), wifiReconnectCounter);
|
||||
Log.error(TAG_WIFI, F("Retries exceed %u: Rebooting..."), wifiReconnectCounter);
|
||||
dispatchReboot(false);
|
||||
}
|
||||
Log.warning(TAG_WIFI,F("No Connection... retry %u"), wifiReconnectCounter);
|
||||
Log.warning(TAG_WIFI, F("No Connection... retry %u"), wifiReconnectCounter);
|
||||
if(wifiReconnectCounter % 6 == 0) {
|
||||
wifiReconnect();
|
||||
}
|
||||
@ -300,21 +490,21 @@ bool wifiTestConnection()
|
||||
IPAddress ip;
|
||||
ip = WiFi.localIP();
|
||||
char espIp[16];
|
||||
memset(espIp, 0 ,sizeof(espIp));
|
||||
memset(espIp, 0, sizeof(espIp));
|
||||
snprintf_P(espIp, sizeof(espIp), PSTR("%d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]);
|
||||
while(attempt < 10 && (WiFi.status() != WL_CONNECTED || String(espIp) == F("0.0.0.0"))) {
|
||||
#else
|
||||
while(attempt < 10 && (WiFi.status() != WL_CONNECTED || WiFi.localIP().toString() == F("0.0.0.0"))) {
|
||||
#endif
|
||||
attempt++;
|
||||
Log.verbose(TAG_WIFI,F("Trying to connect to %s... %u"), wifiSsid, attempt);
|
||||
Log.verbose(TAG_WIFI, F("Trying to connect to %s... %u"), wifiSsid, attempt);
|
||||
delay(1000);
|
||||
}
|
||||
#if defined(STM32F4xx)
|
||||
Log.verbose(TAG_WIFI,F("Received IP addres %s"), espIp);
|
||||
Log.verbose(TAG_WIFI, F("Received IP addres %s"), espIp);
|
||||
if((WiFi.status() == WL_CONNECTED && String(espIp) != F("0.0.0.0"))) return true;
|
||||
#else
|
||||
Log.verbose(TAG_WIFI,F("Received IP addres %s"), WiFi.localIP().toString().c_str());
|
||||
Log.verbose(TAG_WIFI, F("Received IP addres %s"), WiFi.localIP().toString().c_str());
|
||||
if((WiFi.status() == WL_CONNECTED && WiFi.localIP().toString() != F("0.0.0.0"))) return true;
|
||||
#endif
|
||||
WiFi.disconnect();
|
||||
@ -328,7 +518,7 @@ void wifiStop()
|
||||
#if !defined(STM32F4xx)
|
||||
WiFi.mode(WIFI_OFF);
|
||||
#endif
|
||||
Log.warning(TAG_WIFI,F("Stopped"));
|
||||
Log.warning(TAG_WIFI, F("Stopped"));
|
||||
}
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user