[SYS] Remove unnecessaries ESP8266 ESP32 macros (#1931)
This commit is contained in:
1 parent
2065d57e11
commit
2645928dbd
11 files changed
+324
-505
No files matched your search
+1
-1
@@ -1748,4 +1748,4 @@ build_flags =
|
||||
'-DLED_SEND_RECEIVE_ON=0'
|
||||
'-DGateway_Name="OMG_ESP32_BLE"'
|
||||
'-DUSE_BLUFI=1'
|
||||
custom_description = Regular BLE gateway with adaptive scanning activated, automatically adapts the scan parameters depending on your devices
|
||||
custom_description = Regular BLE gateway based on esp-idf with adaptive scanning activated, automatically adapts the scan parameters depending on your devices
|
||||
+8
-10
@@ -71,32 +71,30 @@ bool validFrequency(float mhz) {
|
||||
int currentReceiver = ACTIVE_NONE;
|
||||
|
||||
# if !defined(ZgatewayRFM69) && !defined(ZactuatorSomfy)
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
// Check if a receiver is available
|
||||
bool validReceiver(int receiver) {
|
||||
switch (receiver) {
|
||||
# ifdef ZgatewayPilight
|
||||
# ifdef ZgatewayPilight
|
||||
case ACTIVE_PILIGHT:
|
||||
return true;
|
||||
# endif
|
||||
# ifdef ZgatewayRF
|
||||
# endif
|
||||
# ifdef ZgatewayRF
|
||||
case ACTIVE_RF:
|
||||
return true;
|
||||
# endif
|
||||
# ifdef ZgatewayRTL_433
|
||||
# endif
|
||||
# ifdef ZgatewayRTL_433
|
||||
case ACTIVE_RTL:
|
||||
return true;
|
||||
# endif
|
||||
# ifdef ZgatewayRF2
|
||||
# endif
|
||||
# ifdef ZgatewayRF2
|
||||
case ACTIVE_RF2:
|
||||
return true;
|
||||
# endif
|
||||
# endif
|
||||
default:
|
||||
Log.error(F("ERROR: stored receiver %d not available" CR), receiver);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
|
||||
void disableCurrentReceiver() {
|
||||
|
||||
+194
-276
File diff suppressed because it is too large.
Load diff
@@ -66,7 +66,6 @@ uint32_t gc_checksum() {
|
||||
return checksum;
|
||||
}
|
||||
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
void eeprom_setup() {
|
||||
EEPROM.begin(4096);
|
||||
pGC = (struct _GLOBAL_CONFIG*)EEPROM.getDataPtr();
|
||||
@@ -84,14 +83,11 @@ void eeprom_setup() {
|
||||
EEPROM.commit();
|
||||
}
|
||||
}
|
||||
# endif
|
||||
|
||||
RFM69 radio;
|
||||
|
||||
void setupRFM69(void) {
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
eeprom_setup();
|
||||
# endif
|
||||
int freq;
|
||||
static const char PROGMEM JSONtemplate[] =
|
||||
R"({"msgType":"config","freq":%d,"rfm69hcw":%d,"netid":%d,"power":%d})";
|
||||
|
||||
@@ -30,12 +30,7 @@
|
||||
WeatherStationDataRx wsdr(RF_WS_RECEIVER_GPIO, true);
|
||||
|
||||
void PairedDeviceAdded(byte newID) {
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
Serial.printf("ZgatewayWeatherStation: New device paired %d\r\n", newID);
|
||||
# else
|
||||
Serial.print("ZgatewayWeatherStation: New device paired ");
|
||||
Serial.println(newID, DEC);
|
||||
# endif
|
||||
StaticJsonDocument<JSON_MSG_BUFFER> RFdataBuffer;
|
||||
JsonObject RFdata = RFdataBuffer.to<JsonObject>();
|
||||
RFdata["sensor"] = newID;
|
||||
|
||||
@@ -480,7 +480,6 @@ void pubMqttDiscovery() {
|
||||
"", "", "", "", false, // device name, device manufacturer, device model, device ID, retain
|
||||
stateClassMeasurement //State Class
|
||||
);
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
createDiscovery("sensor", //set Type
|
||||
subjectSYStoMQTT, "SYS: Free memory", (char*)getUniqueId("freemem", "").c_str(), //set state_topic,name,uniqueId
|
||||
will_Topic, "data_size", "{{ value_json.freemem }}", //set availability_topic,device_class,value_template,
|
||||
@@ -519,7 +518,7 @@ void pubMqttDiscovery() {
|
||||
stateClassNone, //State Class
|
||||
"false", "true" //state_off, state_on
|
||||
);
|
||||
# ifdef RGB_INDICATORS
|
||||
# ifdef RGB_INDICATORS
|
||||
createDiscovery("number", //set Type
|
||||
subjectSYStoMQTT, "SYS: LED Brightness", (char*)getUniqueId("rgbb", "").c_str(), //set state_topic,name,uniqueId
|
||||
will_Topic, "", "{{ (value_json.rgbb/2.55) | round(0) }}", //set availability_topic,device_class,value_template,
|
||||
@@ -529,9 +528,9 @@ void pubMqttDiscovery() {
|
||||
"", "", "", "", false, // device name, device manufacturer, device model, device ID, retain,
|
||||
stateClassNone //State Class
|
||||
);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef ZdisplaySSD1306
|
||||
# ifdef ZdisplaySSD1306
|
||||
createDiscovery("switch", //set Type
|
||||
subjectSSD1306toMQTT, "SSD1306: Control", (char*)getUniqueId("onstate", "").c_str(), //set state_topic,name,uniqueId
|
||||
will_Topic, "", "{{ value_json.onstate }}", //set availability_topic,device_class,value_template,
|
||||
@@ -561,9 +560,9 @@ void pubMqttDiscovery() {
|
||||
"", "", "", "", false, // device name, device manufacturer, device model, device ID, retain
|
||||
stateClassNone //State Class
|
||||
);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef ESP32_ETHERNET
|
||||
# ifndef ESP32_ETHERNET
|
||||
createDiscovery("sensor", //set Type
|
||||
subjectSYStoMQTT, "SYS: RSSI", (char*)getUniqueId("rssi", "").c_str(), //set state_topic,name,uniqueId
|
||||
will_Topic, "signal_strength", "{{ value_json.rssi }}", //set availability_topic,device_class,value_template,
|
||||
@@ -573,7 +572,6 @@ void pubMqttDiscovery() {
|
||||
"", "", "", "", false, // device name, device manufacturer, device model, device ID, retain
|
||||
stateClassNone //State Class
|
||||
);
|
||||
# endif
|
||||
# endif
|
||||
# if defined(ESP32) && !defined(NO_INT_TEMP_READING)
|
||||
createDiscovery("sensor", //set Type
|
||||
|
||||
@@ -49,12 +49,8 @@
|
||||
BME280 mySensor;
|
||||
|
||||
void setupZsensorBME280() {
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
// Allow custom pins on ESP Platforms
|
||||
Wire.begin(BME280_PIN_SDA, BME280_PIN_SCL);
|
||||
# else
|
||||
Wire.begin();
|
||||
# endif
|
||||
|
||||
mySensor.settings.commInterface = I2C_MODE;
|
||||
mySensor.settings.I2CAddress = BME280_i2c_addr;
|
||||
|
||||
@@ -57,9 +57,7 @@ void MeasureGPIOInput() {
|
||||
if ((millis() - lastDebounceTime) > GPIOInputDebounceDelay) {
|
||||
// whatever the reading is at, it's been there for longer than the debounce
|
||||
// delay, so take it as the actual current state:
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
yield();
|
||||
# endif
|
||||
# if defined(TRIGGER_GPIO) && INPUT_GPIO == TRIGGER_GPIO && !defined(ESPWifiManualSetup)
|
||||
if (reading == LOW) {
|
||||
if (resetTime == 0) {
|
||||
|
||||
@@ -49,9 +49,7 @@ void MeasureGPIOKeyCode() {
|
||||
{
|
||||
// whatever the reading is at, it's been there for longer than the debounce
|
||||
// delay, so take it as the actual current state:
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
yield();
|
||||
# endif
|
||||
// if the Input state has changed:
|
||||
if (latch > 0 && lastLatchStateGPIOKeyCode != latch) {
|
||||
int reading = digitalRead(GPIOKeyCode_D0_GPIO) | (digitalRead(GPIOKeyCode_D1_GPIO) << 1) | (digitalRead(GPIOKeyCode_D2_GPIO) << 2);
|
||||
|
||||
@@ -45,9 +45,7 @@ void MeasureHCSR501() {
|
||||
JsonObject HCSR501data = HCSR501dataBuffer.to<JsonObject>();
|
||||
static int pirState = LOW;
|
||||
int PresenceValue = digitalRead(HCSR501_GPIO);
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
yield();
|
||||
# endif
|
||||
if (PresenceValue == HIGH) {
|
||||
if (pirState == LOW) {
|
||||
//turned on
|
||||
|
||||
+116
-192
@@ -245,7 +245,6 @@ int failure_number_mqtt = 0; // number of failure connecting to MQTT
|
||||
unsigned long timer_led_measures = 0;
|
||||
static void* eClient = nullptr;
|
||||
static unsigned long last_ota_activity_millis = 0;
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
// Global struct to store live SYS configuration data
|
||||
SYSConfig_s SYSConfig;
|
||||
|
||||
@@ -255,7 +254,6 @@ static bool mqtt_cert_validate = MQTT_CERT_VALIDATE_DEFAULT;
|
||||
static uint8_t mqtt_ss_index = MQTT_SECURE_SELF_SIGNED_INDEX_DEFAULT;
|
||||
static String mqtt_cert = "";
|
||||
static String ota_server_cert = "";
|
||||
#endif
|
||||
|
||||
#ifdef ESP32
|
||||
# include <ArduinoOTA.h>
|
||||
@@ -546,14 +544,11 @@ void pub(const char* topicori, const char* payload, bool retainFlag) {
|
||||
void pub(const char* topicori, JsonObject& data) {
|
||||
String dataAsString = "";
|
||||
bool ret = sensor_Retain;
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
# if message_UTCtimestamp == true
|
||||
#if message_UTCtimestamp == true
|
||||
data["UTCtime"] = UTCtimestamp();
|
||||
# endif
|
||||
# if message_unixtimestamp == true
|
||||
#endif
|
||||
#if message_unixtimestamp == true
|
||||
data["unixtime"] = unixtimestamp();
|
||||
# endif
|
||||
#endif
|
||||
if (data.containsKey("retain") && data["retain"].is<bool>()) {
|
||||
ret = data["retain"];
|
||||
@@ -760,26 +755,20 @@ bool cmpToMainTopic(const char* topicOri, const char* toAdd) {
|
||||
}
|
||||
|
||||
void delayWithOTA(long waitMillis) {
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
long waitStep = 100;
|
||||
for (long waitedMillis = 0; waitedMillis < waitMillis; waitedMillis += waitStep) {
|
||||
# ifndef ESPWifiManualSetup
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
#ifndef ESPWifiManualSetup
|
||||
checkButton(); // check if a reset of wifi/mqtt settings is asked
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
ArduinoOTA.handle();
|
||||
# if defined(ZwebUI) && defined(ESP32)
|
||||
#if defined(ZwebUI) && defined(ESP32)
|
||||
WebUILoop();
|
||||
# endif
|
||||
# ifdef ESP32
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
//esp_task_wdt_reset();
|
||||
# endif
|
||||
#endif
|
||||
delay(waitStep);
|
||||
}
|
||||
#else
|
||||
delay(waitMillis);
|
||||
#endif
|
||||
}
|
||||
|
||||
void SYSConfig_init() {
|
||||
@@ -831,9 +820,7 @@ void SYSConfig_load() {}
|
||||
|
||||
void connectMQTT() {
|
||||
#ifndef ESPWifiManualSetup
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
checkButton(); // check if a reset of wifi/mqtt settings is asked
|
||||
# endif
|
||||
#endif
|
||||
|
||||
Log.warning(F("MQTT connection..." CR));
|
||||
@@ -898,9 +885,7 @@ void connectMQTT() {
|
||||
// ... We consider that OTA might be still active, and we sleep for a while, and giving
|
||||
// OTA chance to proceed (ArduinoOTA.handle())
|
||||
Log.warning(F("OTA might be still active (activity %d ms ago)" CR), millis_since_last_ota);
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
ArduinoOTA.handle();
|
||||
#endif
|
||||
delay(100);
|
||||
}
|
||||
ESPRestart(1);
|
||||
@@ -1035,15 +1020,14 @@ void setup() {
|
||||
SetupIndicatorInfo();
|
||||
SetupIndicators(); // For RGB Leds
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
# ifdef ESP8266
|
||||
# ifndef ZgatewaySRFB // if we are not in sonoff rf bridge case we apply the ESP8266 GPIO optimization
|
||||
#ifdef ESP8266
|
||||
# ifndef ZgatewaySRFB // if we are not in sonoff rf bridge case we apply the ESP8266 GPIO optimization
|
||||
Serial.end();
|
||||
Serial.begin(SERIAL_BAUD, SERIAL_8N1, SERIAL_TX_ONLY); // enable on ESP8266 to free some pin
|
||||
# endif
|
||||
# elif ESP32
|
||||
# endif
|
||||
#elif ESP32
|
||||
xQueueMutex = xSemaphoreCreateMutex();
|
||||
# if DEFAULT_LOW_POWER_MODE != -1 // don't check preferences value if low power mode is not activated
|
||||
# if DEFAULT_LOW_POWER_MODE != -1 // don't check preferences value if low power mode is not activated
|
||||
preferences.begin(Gateway_Short_Name, false);
|
||||
if (preferences.isKey("lowpowermode")) {
|
||||
lowpowermode = preferences.getUInt("lowpowermode", DEFAULT_LOW_POWER_MODE);
|
||||
@@ -1051,15 +1035,15 @@ void setup() {
|
||||
Log.notice(F("No lowpowermode config to load" CR));
|
||||
}
|
||||
preferences.end();
|
||||
# endif
|
||||
# if defined(ZboardM5STICKC) || defined(ZboardM5STICKCP) || defined(ZboardM5STACK) || defined(ZboardM5TOUGH)
|
||||
# endif
|
||||
# if defined(ZboardM5STICKC) || defined(ZboardM5STICKCP) || defined(ZboardM5STACK) || defined(ZboardM5TOUGH)
|
||||
setupM5();
|
||||
# endif
|
||||
# if defined(ZdisplaySSD1306)
|
||||
# endif
|
||||
# if defined(ZdisplaySSD1306)
|
||||
setupSSD1306();
|
||||
modules.add(ZdisplaySSD1306);
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
Log.notice(F("OpenMQTTGateway Version: " OMG_VERSION CR));
|
||||
|
||||
@@ -1067,82 +1051,74 @@ void setup() {
|
||||
* Deep-sleep for the ESP8266 & ESP32 we need some form of indicator that we have posted the measurements and am ready to deep sleep.
|
||||
* When woken set back to false.
|
||||
*/
|
||||
# if defined(DEEP_SLEEP_IN_US) || defined(ESP32_EXT0_WAKE_PIN)
|
||||
#if defined(DEEP_SLEEP_IN_US) || defined(ESP32_EXT0_WAKE_PIN)
|
||||
ready_to_sleep = false;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
# ifdef DEEP_SLEEP_IN_US
|
||||
# ifdef ESP8266
|
||||
#ifdef DEEP_SLEEP_IN_US
|
||||
# ifdef ESP8266
|
||||
Log.notice(F("Setting wake pin for deep sleep." CR));
|
||||
pinMode(ESP8266_DEEP_SLEEP_WAKE_PIN, WAKEUP_PULLUP);
|
||||
# endif
|
||||
# ifdef ESP32
|
||||
# endif
|
||||
# ifdef ESP32
|
||||
Log.notice(F("Setting duration for deep sleep." CR));
|
||||
if (esp_sleep_enable_timer_wakeup(DEEP_SLEEP_IN_US) != ESP_OK) {
|
||||
Log.error(F("Failed to set deep sleep duration." CR));
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
# ifdef ESP32_EXT0_WAKE_PIN
|
||||
#ifdef ESP32_EXT0_WAKE_PIN
|
||||
Log.notice(F("Setting EXT0 Wakeup for deep sleep." CR));
|
||||
if (esp_sleep_enable_ext0_wakeup(ESP32_EXT0_WAKE_PIN, ESP32_EXT0_WAKE_PIN_STATE) != ESP_OK) {
|
||||
Log.error(F("Failed to set deep sleep EXT0 Wakeup." CR));
|
||||
}
|
||||
# endif
|
||||
# ifdef ESP32
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
//esp_task_wdt_init(GeneralTimeOut, true); //enable panic so ESP32 restarts
|
||||
# endif
|
||||
#endif
|
||||
/*
|
||||
The 2 modules below are not connection dependent so start them before the connectivity functions
|
||||
Note that the ONOFF module need to start after the RN8209 so that the overCurrent function is launched after the setup of the sensor
|
||||
*/
|
||||
# ifdef ZsensorRN8209
|
||||
#ifdef ZsensorRN8209
|
||||
setupRN8209();
|
||||
modules.add(ZsensorRN8209);
|
||||
# endif
|
||||
# ifdef ZactuatorONOFF
|
||||
#endif
|
||||
#ifdef ZactuatorONOFF
|
||||
setupONOFF();
|
||||
modules.add(ZactuatorONOFF);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
# if defined(ESPWifiManualSetup)
|
||||
#if defined(ESPWifiManualSetup)
|
||||
setup_wifi();
|
||||
# else
|
||||
#else
|
||||
if (loadConfigFromFlash()) {
|
||||
Log.notice(F("Config loaded from flash" CR));
|
||||
# ifdef ESP32_ETHERNET
|
||||
# ifdef ESP32_ETHERNET
|
||||
setup_ethernet_esp32();
|
||||
# endif
|
||||
# endif
|
||||
if (!failSafeMode && !ethConnected) setupwifi(false);
|
||||
} else {
|
||||
# ifdef ESP32_ETHERNET
|
||||
# ifdef ESP32_ETHERNET
|
||||
setup_ethernet_esp32();
|
||||
# endif
|
||||
# endif
|
||||
Log.notice(F("No config in flash, launching wifi manager" CR));
|
||||
// In failSafeMode we don't want to setup wifi manager as it has already been done before
|
||||
if (!failSafeMode) setupwifi(false);
|
||||
}
|
||||
|
||||
# endif
|
||||
#endif
|
||||
Log.trace(F("OpenMQTTGateway mac: %s" CR), WiFi.macAddress().c_str());
|
||||
Log.trace(F("OpenMQTTGateway ip: %s" CR), WiFi.localIP().toString().c_str());
|
||||
|
||||
setOTA();
|
||||
#else // In case of arduino platform
|
||||
|
||||
//Launch serial for debugging purposes
|
||||
Serial.begin(SERIAL_BAUD);
|
||||
//Begining ethernet connection in case of Arduino + W5100
|
||||
setup_ethernet();
|
||||
#endif
|
||||
|
||||
#if defined(ZwebUI) && defined(ESP32)
|
||||
WebUISetup();
|
||||
modules.add(ZwebUI);
|
||||
#endif
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
if (mqtt_secure) {
|
||||
eClient = new WiFiClientSecure;
|
||||
if (mqtt_cert_validate) {
|
||||
@@ -1154,12 +1130,9 @@ void setup() {
|
||||
} else {
|
||||
eClient = new WiFiClient;
|
||||
}
|
||||
#else
|
||||
eClient = new EthernetClient;
|
||||
#endif
|
||||
client.setClient(*(Client*)eClient);
|
||||
|
||||
#if defined(MDNS_SD) && (defined(ESP8266) || defined(ESP32))
|
||||
#if defined(MDNS_SD)
|
||||
Log.trace(F("Connecting to MQTT by mDNS without MQTT hostname" CR));
|
||||
connectMQTTmdns();
|
||||
#else
|
||||
@@ -1336,28 +1309,27 @@ void setup() {
|
||||
Log.notice(F("************** Setup OpenMQTTGateway end **************" CR));
|
||||
}
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
// Bypass for ESP not reconnecting automaticaly the second time https://github.com/espressif/arduino-esp32/issues/2501
|
||||
bool wifi_reconnect_bypass() {
|
||||
# if defined(ESP32) && defined(USE_BLUFI)
|
||||
#if defined(ESP32) && defined(USE_BLUFI)
|
||||
extern bool omg_blufi_ble_connected;
|
||||
if (omg_blufi_ble_connected) {
|
||||
Log.notice(F("BLUFI is connected, bypassing wifi reconnect" CR));
|
||||
return true;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
uint8_t wifi_autoreconnect_cnt = 0;
|
||||
# ifdef ESP32
|
||||
#ifdef ESP32
|
||||
while (WiFi.status() != WL_CONNECTED && wifi_autoreconnect_cnt < maxConnectionRetryNetwork) {
|
||||
# else
|
||||
#else
|
||||
while (WiFi.waitForConnectResult() != WL_CONNECTED && wifi_autoreconnect_cnt < maxConnectionRetryNetwork) {
|
||||
# endif
|
||||
#endif
|
||||
Log.notice(F("Attempting Wifi connection with saved AP: %d" CR), wifi_autoreconnect_cnt);
|
||||
|
||||
WiFi.begin();
|
||||
# if (defined(ESP8266) || defined(ESP32)) && (defined(WifiGMode) || defined(WifiPower))
|
||||
#if defined(WifiGMode) || defined(WifiPower)
|
||||
setESPWifiProtocolTxPower();
|
||||
# endif
|
||||
#endif
|
||||
delay(1000);
|
||||
wifi_autoreconnect_cnt++;
|
||||
}
|
||||
@@ -1383,12 +1355,12 @@ void setOTA() {
|
||||
ErrorIndicatorON();
|
||||
SendReceiveIndicatorON();
|
||||
last_ota_activity_millis = millis();
|
||||
# ifdef ESP32
|
||||
#ifdef ESP32
|
||||
ProcessLock = true;
|
||||
# ifdef ZgatewayBT
|
||||
# ifdef ZgatewayBT
|
||||
stopProcessing();
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
lpDisplayPrint("OTA in progress");
|
||||
});
|
||||
ArduinoOTA.onEnd([]() {
|
||||
@@ -1401,9 +1373,9 @@ void setOTA() {
|
||||
});
|
||||
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
|
||||
Log.trace(F("Progress: %u%%\r" CR), (progress / (total / 100)));
|
||||
# ifdef ESP32
|
||||
#ifdef ESP32
|
||||
//esp_task_wdt_reset();
|
||||
# endif
|
||||
#endif
|
||||
last_ota_activity_millis = millis();
|
||||
});
|
||||
ArduinoOTA.onError([](ota_error_t error) {
|
||||
@@ -1429,25 +1401,25 @@ void setOTA() {
|
||||
void setupTLS(bool self_signed, uint8_t index) {
|
||||
configTime(0, 0, NTP_SERVER);
|
||||
WiFiClientSecure* sClient = (WiFiClientSecure*)eClient;
|
||||
# if MQTT_SECURE_SELF_SIGNED
|
||||
#if MQTT_SECURE_SELF_SIGNED
|
||||
if (self_signed) {
|
||||
Log.notice(F("Using self signed cert index %u" CR), index);
|
||||
# if defined(ESP32)
|
||||
# if defined(ESP32)
|
||||
sClient->setCACert(certs_array[index].server_cert);
|
||||
# if AWS_IOT
|
||||
# if AWS_IOT
|
||||
if (strcmp(mqtt_port, "443") == 0) {
|
||||
sClient->setAlpnProtocols(alpnProtocols);
|
||||
}
|
||||
# endif
|
||||
# if MQTT_SECURE_SELF_SIGNED_CLIENT
|
||||
# endif
|
||||
# if MQTT_SECURE_SELF_SIGNED_CLIENT
|
||||
sClient->setCertificate(certs_array[index].client_cert);
|
||||
sClient->setPrivateKey(certs_array[index].client_key);
|
||||
# endif
|
||||
# elif defined(ESP8266)
|
||||
# endif
|
||||
# elif defined(ESP8266)
|
||||
caCert.append(certs_array[index].server_cert);
|
||||
sClient->setTrustAnchors(&caCert);
|
||||
sClient->setBufferSizes(512, 512);
|
||||
# if MQTT_SECURE_SELF_SIGNED_CLIENT
|
||||
# if MQTT_SECURE_SELF_SIGNED_CLIENT
|
||||
if (pClCert != nullptr) {
|
||||
delete pClCert;
|
||||
}
|
||||
@@ -1457,32 +1429,27 @@ void setupTLS(bool self_signed, uint8_t index) {
|
||||
pClCert = new X509List(certs_array[index].client_cert);
|
||||
pClKey = new PrivateKey(certs_array[index].client_key);
|
||||
sClient->setClientRSACert(pClCert, pClKey);
|
||||
# endif
|
||||
# endif
|
||||
} else
|
||||
# endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
if (mqtt_cert.length() > 0) {
|
||||
# if defined(ESP32)
|
||||
#if defined(ESP32)
|
||||
sClient->setCACert(mqtt_cert.c_str());
|
||||
} else {
|
||||
sClient->setCACert(certificate);
|
||||
}
|
||||
# elif defined(ESP8266)
|
||||
#elif defined(ESP8266)
|
||||
caCert.append(mqtt_cert.c_str());
|
||||
} else {
|
||||
caCert.append(certificate);
|
||||
}
|
||||
sClient->setTrustAnchors(&caCert);
|
||||
sClient->setBufferSizes(512, 512);
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#else
|
||||
bool wifi_reconnect_bypass() {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
Reboot for Reason Codes
|
||||
@@ -1495,7 +1462,6 @@ bool wifi_reconnect_bypass() {
|
||||
7 - Parameters changed
|
||||
8 - not enough memory to pursue
|
||||
*/
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
void ESPRestart(byte reason) {
|
||||
delay(1000);
|
||||
StaticJsonDocument<128> jsonBuffer;
|
||||
@@ -1505,15 +1471,12 @@ void ESPRestart(byte reason) {
|
||||
jsondata["uptime"] = uptime();
|
||||
pub(subjectLOGtoMQTT, jsondata);
|
||||
Log.warning(F("Rebooting for reason code %d" CR), reason);
|
||||
# if defined(ESP32)
|
||||
#if defined(ESP32)
|
||||
ESP.restart();
|
||||
# elif defined(ESP8266)
|
||||
#elif defined(ESP8266)
|
||||
ESP.reset();
|
||||
# endif
|
||||
}
|
||||
#else
|
||||
void ESPRestart(byte reason) {}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(ESPWifiManualSetup)
|
||||
void setup_wifi() {
|
||||
@@ -1568,7 +1531,7 @@ void setup_wifi() {
|
||||
displayPrint("Wifi connected");
|
||||
}
|
||||
|
||||
#elif defined(ESP8266) || defined(ESP32)
|
||||
#else
|
||||
|
||||
WiFiManager wifiManager;
|
||||
|
||||
@@ -1983,33 +1946,9 @@ void WiFiEvent(WiFiEvent_t event) {
|
||||
}
|
||||
}
|
||||
# endif
|
||||
#else // Arduino case
|
||||
void setup_ethernet() {
|
||||
# ifdef NetworkAdvancedSetup
|
||||
IPAddress ip_adress;
|
||||
IPAddress gateway_adress;
|
||||
IPAddress subnet_adress;
|
||||
IPAddress dns_adress;
|
||||
ip.fromString(NET_IP);
|
||||
gateway.fromString(NET_GW);
|
||||
subnet.fromString(NET_MASK);
|
||||
Dns.fromString(NET_DNS);
|
||||
|
||||
Log.trace(F("Adv eth cfg" CR));
|
||||
Ethernet.begin(mac, ip, Dns, gateway, subnet);
|
||||
# else
|
||||
Log.trace(F("Spl eth cfg" CR));
|
||||
Ethernet.begin(mac, ip);
|
||||
# endif
|
||||
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
|
||||
Log.error(F("Ethernet shield was not found." CR));
|
||||
} else {
|
||||
Log.trace(F("ip: %s " CR), Ethernet.localIP());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(MDNS_SD) && (defined(ESP8266) || defined(ESP32))
|
||||
#if defined(MDNS_SD)
|
||||
void connectMQTTmdns() {
|
||||
Log.trace(F("Browsing for MQTT service" CR));
|
||||
int n = MDNS.queryService("mqtt", "tcp");
|
||||
@@ -2033,9 +1972,7 @@ void connectMQTTmdns() {
|
||||
|
||||
void loop() {
|
||||
#ifndef ESPWifiManualSetup
|
||||
# if defined(ESP8266) || defined(ESP32)
|
||||
checkButton(); // check if a reset of wifi/mqtt settings is asked
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef ESP32
|
||||
@@ -2051,15 +1988,11 @@ void loop() {
|
||||
SendReceiveIndicatorOFF();
|
||||
}
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
if (ethConnected || WiFi.status() == WL_CONNECTED) {
|
||||
if (ethConnected && WiFi.status() == WL_CONNECTED) {
|
||||
WiFi.disconnect(); // we disconnect the wifi as we are connected to ethernet
|
||||
}
|
||||
ArduinoOTA.handle();
|
||||
#else
|
||||
if ((Ethernet.hardwareStatus() != EthernetW5100 && Ethernet.linkStatus() == LinkON) || (Ethernet.hardwareStatus() == EthernetW5100)) { //we are able to detect disconnection only on w5200 and w5500
|
||||
#endif
|
||||
failure_number_ntwk = 0;
|
||||
#if defined(ZwebUI) && defined(ESP32)
|
||||
WebUILoop();
|
||||
@@ -2105,10 +2038,8 @@ void loop() {
|
||||
#endif
|
||||
}
|
||||
if (now > (timer_sys_checks + (TimeBetweenCheckingSYS * 1000)) || !timer_sys_checks) {
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
# if message_UTCtimestamp || message_unixtimestamp
|
||||
#if message_UTCtimestamp || message_unixtimestamp
|
||||
syncNTP();
|
||||
# endif
|
||||
#endif
|
||||
if (!timer_sys_checks) { // Update check at start up only
|
||||
#if defined(ESP32) && defined(MQTT_HTTPS_FW_UPDATE)
|
||||
@@ -2324,7 +2255,6 @@ float intTemperatureRead() {
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
void syncNTP() {
|
||||
configTime(0, 0, NTP_SERVER);
|
||||
time_t now = time(nullptr);
|
||||
@@ -2359,21 +2289,19 @@ String UTCtimestamp() {
|
||||
void eraseAndRestart() {
|
||||
Log.trace(F("Formatting requested, result: %d" CR), SPIFFS.format());
|
||||
|
||||
# if defined(ESP8266)
|
||||
#if defined(ESP8266)
|
||||
WiFi.disconnect(true);
|
||||
# ifndef ESPWifiManualSetup
|
||||
# ifndef ESPWifiManualSetup
|
||||
wifiManager.resetSettings();
|
||||
# endif
|
||||
# endif
|
||||
delay(5000);
|
||||
ESP.reset();
|
||||
# else
|
||||
#else
|
||||
//esp_task_wdt_delete(NULL);
|
||||
nvs_flash_erase();
|
||||
ESP.restart();
|
||||
# endif
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
String stateMeasures() {
|
||||
StaticJsonDocument<JSON_MSG_BUFFER> SYSdata;
|
||||
@@ -2388,41 +2316,40 @@ String stateMeasures() {
|
||||
SYSdata["disc"] = SYSConfig.discovery;
|
||||
SYSdata["ohdisc"] = SYSConfig.ohdiscovery;
|
||||
#endif
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
SYSdata["env"] = ENV_NAME;
|
||||
uint32_t freeMem;
|
||||
uint32_t minFreeMem;
|
||||
freeMem = ESP.getFreeHeap();
|
||||
# ifdef ZgatewayRTL_433
|
||||
#ifdef ZgatewayRTL_433
|
||||
// Some RTL_433 decoders have memory leak, this is a temporary workaround
|
||||
if (freeMem < MinimumMemory) {
|
||||
Log.error(F("Not enough memory %d, restarting" CR), freeMem);
|
||||
ESPRestart(8);
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
SYSdata["freemem"] = freeMem;
|
||||
SYSdata["mqttp"] = mqtt_port;
|
||||
SYSdata["mqtts"] = mqtt_secure;
|
||||
SYSdata["msgprc"] = queueLengthSum;
|
||||
SYSdata["msgblck"] = blockedMessages;
|
||||
SYSdata["maxq"] = maxQueueLength;
|
||||
# ifdef ESP32
|
||||
#ifdef ESP32
|
||||
minFreeMem = ESP.getMinFreeHeap();
|
||||
SYSdata["minmem"] = minFreeMem;
|
||||
# ifndef NO_INT_TEMP_READING
|
||||
# ifndef NO_INT_TEMP_READING
|
||||
SYSdata["tempc"] = round2(intTemperatureRead());
|
||||
# endif
|
||||
SYSdata["freestck"] = uxTaskGetStackHighWaterMark(NULL);
|
||||
# endif
|
||||
SYSdata["freestck"] = uxTaskGetStackHighWaterMark(NULL);
|
||||
#endif
|
||||
|
||||
SYSdata["eth"] = ethConnected;
|
||||
if (ethConnected) {
|
||||
# ifdef ESP32_ETHERNET
|
||||
#ifdef ESP32_ETHERNET
|
||||
SYSdata["mac"] = (char*)ETH.macAddress().c_str();
|
||||
SYSdata["ip"] = ip2CharArray(ETH.localIP());
|
||||
ETH.fullDuplex() ? SYSdata["fd"] = (bool)"true" : SYSdata["fd"] = (bool)"false";
|
||||
SYSdata["linkspeed"] = (int)ETH.linkSpeed();
|
||||
# endif
|
||||
#endif
|
||||
} else {
|
||||
SYSdata["rssi"] = (long)WiFi.RSSI();
|
||||
SYSdata["SSID"] = (char*)WiFi.SSID().c_str();
|
||||
@@ -2431,7 +2358,6 @@ String stateMeasures() {
|
||||
SYSdata["mac"] = (char*)WiFi.macAddress().c_str();
|
||||
}
|
||||
|
||||
#endif
|
||||
#ifdef ZgatewayBT
|
||||
# ifdef ESP32
|
||||
SYSdata["lowpowermode"] = (int)lowpowermode;
|
||||
@@ -2860,50 +2786,49 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
if (cmpToMainTopic(topicOri, subjectMQTTtoSYSset)) {
|
||||
bool restartESP = false;
|
||||
Log.trace(F("MQTTtoSYS json" CR));
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
if (SYSdata.containsKey("cmd")) {
|
||||
const char* cmd = SYSdata["cmd"];
|
||||
Log.notice(F("Command: %s" CR), cmd);
|
||||
if (strstr(cmd, restartCmd) != NULL) { //restart
|
||||
ESPRestart(5);
|
||||
} else if (strstr(cmd, eraseCmd) != NULL) { //erase and restart
|
||||
# ifndef ESPWifiManualSetup
|
||||
#ifndef ESPWifiManualSetup
|
||||
setupwifi(true);
|
||||
# endif
|
||||
#endif
|
||||
} else if (strstr(cmd, statusCmd) != NULL) { //erase and restart
|
||||
stateMeasures();
|
||||
}
|
||||
}
|
||||
# ifdef RGB_INDICATORS
|
||||
#ifdef RGB_INDICATORS
|
||||
if (SYSdata.containsKey("rgbb") && SYSdata["rgbb"].is<float>()) {
|
||||
if (SYSdata["rgbb"] >= 0 && SYSdata["rgbb"] <= 255) {
|
||||
SYSConfig.rgbbrightness = round2(SYSdata["rgbb"]);
|
||||
leds.setBrightness(SYSConfig.rgbbrightness);
|
||||
leds.show();
|
||||
# ifdef ZactuatorONOFF
|
||||
# ifdef ZactuatorONOFF
|
||||
updatePowerIndicator();
|
||||
# endif
|
||||
# endif
|
||||
Log.notice(F("RGB brightness: %d" CR), SYSConfig.rgbbrightness);
|
||||
stateMeasures();
|
||||
} else {
|
||||
Log.error(F("RGB brightness value invalid - ignoring command" CR));
|
||||
}
|
||||
}
|
||||
# endif
|
||||
# ifdef ZmqttDiscovery
|
||||
#endif
|
||||
#ifdef ZmqttDiscovery
|
||||
if (SYSdata.containsKey("ohdisc") && SYSdata["ohdisc"].is<bool>()) {
|
||||
SYSConfig.ohdiscovery = SYSdata["ohdisc"];
|
||||
Log.notice(F("OpenHAB discovery: %T" CR), SYSConfig.ohdiscovery);
|
||||
stateMeasures();
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
if (SYSdata.containsKey("wifi_ssid") && SYSdata.containsKey("wifi_pass")) {
|
||||
# ifdef ESP32
|
||||
#ifdef ESP32
|
||||
ProcessLock = true;
|
||||
# ifdef ZgatewayBT
|
||||
# ifdef ZgatewayBT
|
||||
stopProcessing();
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
String prev_ssid = WiFi.SSID();
|
||||
String prev_pass = WiFi.psk();
|
||||
client.disconnect();
|
||||
@@ -2911,18 +2836,18 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
|
||||
Log.warning(F("Attempting connection to new AP %s" CR), (const char*)SYSdata["wifi_ssid"]);
|
||||
WiFi.begin((const char*)SYSdata["wifi_ssid"], (const char*)SYSdata["wifi_pass"]);
|
||||
# if (defined(ESP8266) || defined(ESP32)) && (defined(WifiGMode) || defined(WifiPower))
|
||||
#if defined(WifiGMode) || defined(WifiPower)
|
||||
setESPWifiProtocolTxPower();
|
||||
# endif
|
||||
#endif
|
||||
WiFi.waitForConnectResult(WiFi_TimeOut * 1000);
|
||||
|
||||
if (WiFi.status() != WL_CONNECTED) {
|
||||
Log.error(F("Failed to connect to new AP; falling back" CR));
|
||||
WiFi.disconnect(true);
|
||||
WiFi.begin(prev_ssid.c_str(), prev_pass.c_str());
|
||||
# if (defined(ESP8266) || defined(ESP32)) && (defined(WifiGMode) || defined(WifiPower))
|
||||
#if defined(WifiGMode) || defined(WifiPower)
|
||||
setESPWifiProtocolTxPower();
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
restartESP = true;
|
||||
}
|
||||
@@ -2940,13 +2865,13 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
strncpy(ota_pass, SYSdata["gw_pass"], parameters_size);
|
||||
restartESP = true;
|
||||
}
|
||||
# ifndef ESPWifiManualSetup
|
||||
#ifndef ESPWifiManualSetup
|
||||
saveConfig();
|
||||
# endif
|
||||
#endif
|
||||
disconnectClient = true; // trigger reconnect in loop using the new topic/name
|
||||
}
|
||||
|
||||
# ifdef MQTTsetMQTT
|
||||
#ifdef MQTTsetMQTT
|
||||
if (SYSdata.containsKey("mqtt_user") && SYSdata.containsKey("mqtt_pass")) {
|
||||
bool update_server = false;
|
||||
bool secure_connect = SYSdata["mqtt_secure"].as<bool>();
|
||||
@@ -2959,7 +2884,7 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
Log.error(F("mqtt_server provided without mqtt_secure defined - ignoring command" CR));
|
||||
return;
|
||||
}
|
||||
# if MQTT_SECURE_SELF_SIGNED
|
||||
# if MQTT_SECURE_SELF_SIGNED
|
||||
if (use_ss_cert) {
|
||||
cert_index = SYSdata["mqtt_cert_index"].as<uint8_t>();
|
||||
if (cert_index >= sizeof(certs_array) / sizeof(ss_certs)) {
|
||||
@@ -2967,14 +2892,14 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
return;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef ESP32
|
||||
# ifdef ESP32
|
||||
ProcessLock = true;
|
||||
# ifdef ZgatewayBT
|
||||
# ifdef ZgatewayBT
|
||||
stopProcessing();
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
disconnectClient = false;
|
||||
client.disconnect();
|
||||
update_server = true;
|
||||
@@ -2996,12 +2921,12 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
|
||||
client.setServer(SYSdata["mqtt_server"].as<const char*>(), SYSdata["mqtt_port"].as<unsigned int>());
|
||||
} else {
|
||||
# ifdef ESP32
|
||||
# ifdef ESP32
|
||||
ProcessLock = true;
|
||||
# ifdef ZgatewayBT
|
||||
# ifdef ZgatewayBT
|
||||
stopProcessing();
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
disconnectClient = false;
|
||||
client.disconnect();
|
||||
}
|
||||
@@ -3023,9 +2948,9 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
delete prev_client;
|
||||
}
|
||||
}
|
||||
# ifndef ESPWifiManualSetup
|
||||
# ifndef ESPWifiManualSetup
|
||||
saveConfig();
|
||||
# endif
|
||||
# endif
|
||||
} else {
|
||||
if (update_server) {
|
||||
if (prev_client != nullptr) {
|
||||
@@ -3045,12 +2970,11 @@ void MQTTtoSYS(char* topicOri, JsonObject& SYSdata) { // json object decoding
|
||||
}
|
||||
restartESP = true;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
if (disconnectClient) {
|
||||
client.disconnect();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ZmqttDiscovery
|
||||
if (SYSdata.containsKey("disc")) {
|
||||
@@ -3116,4 +3040,4 @@ String toString(uint32_t input) {
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
Reference in new issue
Block a user