mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 11:59:12 +03:00
wifi reconnection bug fixed
This commit is contained in:
@@ -43,7 +43,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "h4",
|
"type": "h4",
|
||||||
"title": "LittleFS version: 245"
|
"title": "LittleFS version: 246"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "hr"
|
"type": "hr"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
//=================Firmeare=================
|
//=================Firmeare=================
|
||||||
#define FIRMWARE_NAME "esp8266-iotm"
|
#define FIRMWARE_NAME "esp8266-iotm"
|
||||||
#define FIRMWARE_VERSION 245
|
#define FIRMWARE_VERSION 246
|
||||||
#define FLASH_4MB true
|
#define FLASH_4MB true
|
||||||
|
|
||||||
//=================System===================
|
//=================System===================
|
||||||
|
|||||||
@@ -2,14 +2,12 @@
|
|||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
namespace MqttClient {
|
|
||||||
|
|
||||||
void init();
|
void mqttInit();
|
||||||
boolean connect();
|
boolean mqttConnect();
|
||||||
void reconnect();
|
void mqttReconnect();
|
||||||
void loop();
|
void mqttLoop();
|
||||||
|
void mqttSubscribe();
|
||||||
void subscribe();
|
|
||||||
|
|
||||||
boolean publish(const String& topic, const String& data);
|
boolean publish(const String& topic, const String& data);
|
||||||
boolean publishData(const String& topic, const String& data);
|
boolean publishData(const String& topic, const String& data);
|
||||||
@@ -21,7 +19,5 @@ boolean publishStatus(const String& topic, const String& data);
|
|||||||
void publishWidgets();
|
void publishWidgets();
|
||||||
void publishState();
|
void publishState();
|
||||||
|
|
||||||
void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length);
|
void mqttCallback(char* topic, uint8_t* payload, size_t length);
|
||||||
const String getStateStr();
|
const String getStateStr();
|
||||||
|
|
||||||
} // namespace MqttClient
|
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
|
|
||||||
boolean isNetworkActive();
|
boolean isNetworkActive();
|
||||||
|
|
||||||
void startSTAMode();
|
void routerConnect();
|
||||||
|
|
||||||
bool startAPMode();
|
bool startAPMode();
|
||||||
|
|
||||||
boolean scanWiFi(String ssid);
|
boolean RouterFind(String ssid);
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class ButtonInClass : public LineParsing {
|
|||||||
void switchChangeVirtual(String key, String state) {
|
void switchChangeVirtual(String key, String state) {
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteInt(configLiveJson, key, state.toInt());
|
jsonWriteInt(configLiveJson, key, state.toInt());
|
||||||
MqttClient::publishStatus(key, state);
|
publishStatus(key, state);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class ButtonOutClass : public LineParsing {
|
|||||||
}
|
}
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteInt(configLiveJson, key, state.toInt());
|
jsonWriteInt(configLiveJson, key, state.toInt());
|
||||||
MqttClient::publishStatus(key, state);
|
publishStatus(key, state);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ class InputClass : public LineParsing {
|
|||||||
void inputSetFloat(String key, String state) {
|
void inputSetFloat(String key, String state) {
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteFloat(configLiveJson, key, state.toFloat());
|
jsonWriteFloat(configLiveJson, key, state.toFloat());
|
||||||
MqttClient::publishStatus(key, state);
|
publishStatus(key, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void inputSetStr(String key, String state) {
|
void inputSetStr(String key, String state) {
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, state);
|
jsonWriteStr(configLiveJson, key, state);
|
||||||
MqttClient::publishStatus(key, state);
|
publishStatus(key, state);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class OutputTextClass : public LineParsing {
|
|||||||
state.replace("#", " ");
|
state.replace("#", " ");
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, state);
|
jsonWriteStr(configLiveJson, key, state);
|
||||||
MqttClient::publishStatus(key, state);
|
publishStatus(key, state);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
extern OutputTextClass myOutputText;
|
extern OutputTextClass myOutputText;
|
||||||
@@ -24,7 +24,7 @@ class PwmOutClass : public LineParsing {
|
|||||||
analogWrite(pinInt, state.toInt());
|
analogWrite(pinInt, state.toInt());
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteInt(configLiveJson, key, state.toInt());
|
jsonWriteInt(configLiveJson, key, state.toInt());
|
||||||
MqttClient::publishStatus(key, state);
|
publishStatus(key, state);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class SensorAnalogClass : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class SensorBme280Class : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ class SensorBme280Class : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ class SensorBme280Class : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class SensorBmp280Class : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ class SensorBmp280Class : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class SensorDallasClass : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class SensorDhtClass : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
} else {
|
} else {
|
||||||
Serial.println("[E] sensor '" + key);
|
Serial.println("[E] sensor '" + key);
|
||||||
@@ -67,7 +67,7 @@ class SensorDhtClass : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
} else {
|
} else {
|
||||||
Serial.println("[E] sensor '" + key);
|
Serial.println("[E] sensor '" + key);
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
// int valueFl = this->correction(key, value);
|
// int valueFl = this->correction(key, value);
|
||||||
// eventGen(key, "");
|
// eventGen(key, "");
|
||||||
// jsonWriteStr(configLiveJson, key, String(valueFl));
|
// jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
// MqttClient::publishStatus(key, String(valueFl));
|
// publishStatus(key, String(valueFl));
|
||||||
// Serial.println("I sensor '" + key + "' data: " + String(valueFl) + ", Slave dev addr: " + String(slaveAddress) + ", Register: " + String(regAddress));
|
// Serial.println("I sensor '" + key + "' data: " + String(valueFl) + ", Slave dev addr: " + String(slaveAddress) + ", Register: " + String(regAddress));
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class SensorUltrasonic : public SensorConvertingClass {
|
|||||||
float valueFl = this->correction(key, value);
|
float valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ void cmd_init() {
|
|||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// jsonWriteStr(configLiveJson, "text" + number, text);
|
// jsonWriteStr(configLiveJson, "text" + number, text);
|
||||||
// MqttClient::publishStatus("text" + number, text);
|
// publishStatus("text" + number, text);
|
||||||
//}
|
//}
|
||||||
//=====================================================================================================================================
|
//=====================================================================================================================================
|
||||||
////=========================================Модуль шагового мотора======================================================================
|
////=========================================Модуль шагового мотора======================================================================
|
||||||
@@ -243,7 +243,7 @@ void cmd_init() {
|
|||||||
//
|
//
|
||||||
// eventGen("servo", number);
|
// eventGen("servo", number);
|
||||||
// jsonWriteInt(configLiveJson, "servo" + number, value);
|
// jsonWriteInt(configLiveJson, "servo" + number, value);
|
||||||
// MqttClient::publishStatus("servo" + number, String(value, DEC));
|
// publishStatus("servo" + number, String(value, DEC));
|
||||||
//}
|
//}
|
||||||
//#endif
|
//#endif
|
||||||
////====================================================================================================================================================
|
////====================================================================================================================================================
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ void sendLogData(String file, String topic) {
|
|||||||
json_array = "{\"status\":[" + json_array + "]}";
|
json_array = "{\"status\":[" + json_array + "]}";
|
||||||
SerialPrint("I","module",json_array);
|
SerialPrint("I","module",json_array);
|
||||||
|
|
||||||
MqttClient::publishChart(topic, json_array);
|
publishChart(topic, json_array);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,75 +6,58 @@
|
|||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "Init.h"
|
#include "Init.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace MqttClient {
|
|
||||||
|
|
||||||
// Errors
|
|
||||||
int wifi_lost_error = 0;
|
|
||||||
int mqtt_lost_error = 0;
|
|
||||||
bool connected = false;
|
|
||||||
|
|
||||||
// Session params
|
|
||||||
String mqttPrefix;
|
String mqttPrefix;
|
||||||
String mqttRootDevice;
|
String mqttRootDevice;
|
||||||
|
|
||||||
void init() {
|
void mqttInit() {
|
||||||
|
|
||||||
myNotAsincActions->add(
|
myNotAsincActions->add(
|
||||||
do_MQTTPARAMSCHANGED, [&](void*) {
|
do_MQTTPARAMSCHANGED, [&](void*) {
|
||||||
reconnect();
|
mqttReconnect();
|
||||||
},
|
},
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
mqtt.setCallback(handleSubscribedUpdates);
|
mqtt.setCallback(mqttCallback);
|
||||||
|
|
||||||
ts.add(
|
ts.add(
|
||||||
WIFI_MQTT_CONNECTION_CHECK, MQTT_RECONNECT_INTERVAL,
|
WIFI_MQTT_CONNECTION_CHECK, MQTT_RECONNECT_INTERVAL,
|
||||||
[&](void*) {
|
[&](void*) {
|
||||||
if (isNetworkActive()) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
|
SerialPrint("I", "WIFI", "OK");
|
||||||
if (mqtt.connected()) {
|
if (mqtt.connected()) {
|
||||||
if (!connected) {
|
SerialPrint("I", "MQTT", "OK");
|
||||||
SerialPrint("I","MQTT","OK");
|
setLedStatus(LED_OFF);
|
||||||
setLedStatus(LED_OFF);
|
|
||||||
connected = true;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
connect();
|
SerialPrint("E", "MQTT", "lost connection");
|
||||||
if (!just_load) mqtt_lost_error++;
|
mqttConnect();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (connected) {
|
SerialPrint("E", "WIFI", "Lost WiFi connection");
|
||||||
SerialPrint("[E]","MQTT","connection lost");
|
|
||||||
connected = false;
|
|
||||||
}
|
|
||||||
ts.remove(WIFI_MQTT_CONNECTION_CHECK);
|
ts.remove(WIFI_MQTT_CONNECTION_CHECK);
|
||||||
wifi_lost_error++;
|
|
||||||
startAPMode();
|
startAPMode();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
nullptr, true);
|
nullptr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void disconnect() {
|
void mqttDisconnect() {
|
||||||
SerialPrint("I","MQTT","disconnect");
|
SerialPrint("I", "MQTT", "disconnect");
|
||||||
mqtt.disconnect();
|
mqtt.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reconnect() {
|
void mqttReconnect() {
|
||||||
disconnect();
|
mqttDisconnect();
|
||||||
connect();
|
mqttConnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void mqttLoop() {
|
||||||
if (!isNetworkActive() || !mqtt.connected()) {
|
if (!isNetworkActive() || !mqtt.connected()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mqtt.loop();
|
mqtt.loop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void subscribe() {
|
void mqttSubscribe() {
|
||||||
SerialPrint("I","MQTT","subscribe");
|
SerialPrint("I", "MQTT", "subscribe");
|
||||||
mqtt.subscribe(mqttPrefix.c_str());
|
mqtt.subscribe(mqttPrefix.c_str());
|
||||||
mqtt.subscribe((mqttRootDevice + "/+/control").c_str());
|
mqtt.subscribe((mqttRootDevice + "/+/control").c_str());
|
||||||
mqtt.subscribe((mqttRootDevice + "/order").c_str());
|
mqtt.subscribe((mqttRootDevice + "/order").c_str());
|
||||||
@@ -83,59 +66,50 @@ void subscribe() {
|
|||||||
mqtt.subscribe((mqttRootDevice + "/devs").c_str());
|
mqtt.subscribe((mqttRootDevice + "/devs").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean connect() {
|
boolean mqttConnect() {
|
||||||
SerialPrint("I","MQTT","connect");
|
SerialPrint("I", "MQTT", "start connection");
|
||||||
|
|
||||||
String addr = jsonReadStr(configSetupJson, "mqttServer");
|
String addr = jsonReadStr(configSetupJson, "mqttServer");
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
SerialPrint("[E]","MQTT","no broker address");
|
SerialPrint("E", "MQTT", "no broker address");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int port = jsonReadInt(configSetupJson, "mqttPort");
|
int port = jsonReadInt(configSetupJson, "mqttPort");
|
||||||
String user = jsonReadStr(configSetupJson, "mqttUser");
|
String user = jsonReadStr(configSetupJson, "mqttUser");
|
||||||
String pass = jsonReadStr(configSetupJson, "mqttPass");
|
String pass = jsonReadStr(configSetupJson, "mqttPass");
|
||||||
|
|
||||||
//Session params
|
|
||||||
mqttPrefix = jsonReadStr(configSetupJson, "mqttPrefix");
|
mqttPrefix = jsonReadStr(configSetupJson, "mqttPrefix");
|
||||||
mqttRootDevice = mqttPrefix + "/" + chipId;
|
mqttRootDevice = mqttPrefix + "/" + chipId;
|
||||||
|
SerialPrint("I", "MQTT", "broker " + addr + ":" + String(port, DEC));
|
||||||
SerialPrint("I","MQTT","broker " + addr + ":" + String(port, DEC));
|
SerialPrint("I", "MQTT", "topic " + mqttRootDevice);
|
||||||
SerialPrint("I","MQTT","topic " + mqttRootDevice);
|
|
||||||
|
|
||||||
setLedStatus(LED_FAST);
|
setLedStatus(LED_FAST);
|
||||||
mqtt.setServer(addr.c_str(), port);
|
mqtt.setServer(addr.c_str(), port);
|
||||||
bool res = false;
|
bool res = false;
|
||||||
if (!mqtt.connected()) {
|
if (!mqtt.connected()) {
|
||||||
if (mqtt.connect(chipId.c_str(), user.c_str(), pass.c_str())) {
|
if (mqtt.connect(chipId.c_str(), user.c_str(), pass.c_str())) {
|
||||||
SerialPrint("I","MQTT","connected");
|
SerialPrint("I", "MQTT", "connected");
|
||||||
setLedStatus(LED_OFF);
|
setLedStatus(LED_OFF);
|
||||||
subscribe();
|
mqttSubscribe();
|
||||||
res = true;
|
res = true;
|
||||||
} else {
|
} else {
|
||||||
SerialPrint("[E]","MQTT","could't connect, retry in " + String(MQTT_RECONNECT_INTERVAL / 1000) + "s");
|
SerialPrint("E", "MQTT", "could't connect, retry in " + String(MQTT_RECONNECT_INTERVAL / 1000) + "s");
|
||||||
setLedStatus(LED_FAST);
|
setLedStatus(LED_FAST);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) {
|
void mqttCallback(char* topic, uint8_t* payload, size_t length) {
|
||||||
String topicStr = String(topic);
|
String topicStr = String(topic);
|
||||||
|
SerialPrint("I", "MQTT", topicStr);
|
||||||
SerialPrint("I","MQTT",topicStr);
|
|
||||||
|
|
||||||
String payloadStr;
|
String payloadStr;
|
||||||
|
|
||||||
payloadStr.reserve(length + 1);
|
payloadStr.reserve(length + 1);
|
||||||
for (size_t i = 0; i < length; i++) {
|
for (size_t i = 0; i < length; i++) {
|
||||||
payloadStr += (char)payload[i];
|
payloadStr += (char)payload[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
SerialPrint("I","MQTT",payloadStr);
|
SerialPrint("I", "MQTT", payloadStr);
|
||||||
|
|
||||||
if (payloadStr.startsWith("HELLO")) {
|
if (payloadStr.startsWith("HELLO")) {
|
||||||
SerialPrint("I","MQTT","Full update");
|
SerialPrint("I", "MQTT", "Full update");
|
||||||
publishWidgets();
|
publishWidgets();
|
||||||
publishState();
|
publishState();
|
||||||
#ifdef LOGGING_ENABLED
|
#ifdef LOGGING_ENABLED
|
||||||
@@ -143,7 +117,6 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else if (topicStr.indexOf("control")) {
|
} else if (topicStr.indexOf("control")) {
|
||||||
|
|
||||||
//iotTeam/12882830-1458415/light 1
|
//iotTeam/12882830-1458415/light 1
|
||||||
|
|
||||||
String key = selectFromMarkerToMarker(topicStr, "/", 3);
|
String key = selectFromMarkerToMarker(topicStr, "/", 3);
|
||||||
@@ -184,7 +157,7 @@ boolean publish(const String& topic, const String& data) {
|
|||||||
boolean publishData(const String& topic, const String& data) {
|
boolean publishData(const String& topic, const String& data) {
|
||||||
String path = mqttRootDevice + "/" + topic;
|
String path = mqttRootDevice + "/" + topic;
|
||||||
if (!publish(path, data)) {
|
if (!publish(path, data)) {
|
||||||
SerialPrint("[E]","MQTT","on publish data");
|
SerialPrint("[E]", "MQTT", "on publish data");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -193,7 +166,7 @@ boolean publishData(const String& topic, const String& data) {
|
|||||||
boolean publishChart(const String& topic, const String& data) {
|
boolean publishChart(const String& topic, const String& data) {
|
||||||
String path = mqttRootDevice + "/" + topic + "/status";
|
String path = mqttRootDevice + "/" + topic + "/status";
|
||||||
if (!publish(path, data)) {
|
if (!publish(path, data)) {
|
||||||
SerialPrint("[E]","MQTT","on publish chart");
|
SerialPrint("[E]", "MQTT", "on publish chart");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -244,12 +217,12 @@ void publishWidgets() {
|
|||||||
void publishWidgets() {
|
void publishWidgets() {
|
||||||
auto file = seekFile("layout.txt");
|
auto file = seekFile("layout.txt");
|
||||||
if (!file) {
|
if (!file) {
|
||||||
SerialPrint("[E]","MQTT","no file layout.txt");
|
SerialPrint("[E]", "MQTT", "no file layout.txt");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while (file.available()) {
|
while (file.available()) {
|
||||||
String payload = file.readStringUntil('\n');
|
String payload = file.readStringUntil('\n');
|
||||||
SerialPrint("I","MQTT","widgets: " + payload);
|
SerialPrint("I", "MQTT", "widgets: " + payload);
|
||||||
publishData("config", payload);
|
publishData("config", payload);
|
||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
@@ -319,5 +292,3 @@ const String getStateStr() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace MqttClient
|
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
// float value = 0;
|
// float value = 0;
|
||||||
// static int counter;
|
// static int counter;
|
||||||
// if (dht.getStatus() != 0 && counter < 5) {
|
// if (dht.getStatus() != 0 && counter < 5) {
|
||||||
// //MqttClient::publishStatus(dhtT_value_name, String(dht.getStatusString()));
|
// // publishStatus(dhtT_value_name, String(dht.getStatusString()));
|
||||||
// counter++;
|
// counter++;
|
||||||
// } else {
|
// } else {
|
||||||
// counter = 0;
|
// counter = 0;
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
// if (String(value) != "nan") {
|
// if (String(value) != "nan") {
|
||||||
// //eventGen(dhtT_value_name, "");
|
// //eventGen(dhtT_value_name, "");
|
||||||
// //jsonWriteStr(configLiveJson, dhtT_value_name, String(value));
|
// //jsonWriteStr(configLiveJson, dhtT_value_name, String(value));
|
||||||
// //MqttClient::publishStatus(dhtT_value_name, String(value));
|
// // publishStatus(dhtT_value_name, String(value));
|
||||||
// //Serial.println("I sensor '" + dhtT_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + dhtT_value_name + "' data: " + String(value));
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
// float value = 0;
|
// float value = 0;
|
||||||
// static int counter;
|
// static int counter;
|
||||||
// if (dht.getStatus() != 0 && counter < 5) {
|
// if (dht.getStatus() != 0 && counter < 5) {
|
||||||
// //MqttClient::publishStatus(dhtH_value_name, String(dht.getStatusString()));
|
// // publishStatus(dhtH_value_name, String(dht.getStatusString()));
|
||||||
// counter++;
|
// counter++;
|
||||||
// } else {
|
// } else {
|
||||||
// counter = 0;
|
// counter = 0;
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
// if (String(value) != "nan") {
|
// if (String(value) != "nan") {
|
||||||
// //eventGen(dhtH_value_name, "");
|
// //eventGen(dhtH_value_name, "");
|
||||||
// //jsonWriteStr(configLiveJson, dhtH_value_name, String(value));
|
// //jsonWriteStr(configLiveJson, dhtH_value_name, String(value));
|
||||||
// //MqttClient::publishStatus(dhtH_value_name, String(value));
|
// // publishStatus(dhtH_value_name, String(value));
|
||||||
// //Serial.println("I sensor '" + dhtH_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + dhtH_value_name + "' data: " + String(value));
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
@@ -112,13 +112,13 @@
|
|||||||
//void dhtP_reading() {
|
//void dhtP_reading() {
|
||||||
// byte value;
|
// byte value;
|
||||||
// if (dht.getStatus() != 0) {
|
// if (dht.getStatus() != 0) {
|
||||||
// MqttClient::publishStatus("dhtPerception", String(dht.getStatusString()));
|
// publishStatus("dhtPerception", String(dht.getStatusString()));
|
||||||
// } else {
|
// } else {
|
||||||
// //value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
// //value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
||||||
// String final_line = perceptionStr(value);
|
// String final_line = perceptionStr(value);
|
||||||
// jsonWriteStr(configLiveJson, "dhtPerception", final_line);
|
// jsonWriteStr(configLiveJson, "dhtPerception", final_line);
|
||||||
// eventGen("dhtPerception", "");
|
// eventGen("dhtPerception", "");
|
||||||
// MqttClient::publishStatus("dhtPerception", final_line);
|
// publishStatus("dhtPerception", final_line);
|
||||||
// if (mqtt.connected()) {
|
// if (mqtt.connected()) {
|
||||||
// Serial.println("I sensor 'dhtPerception' data: " + final_line);
|
// Serial.println("I sensor 'dhtPerception' data: " + final_line);
|
||||||
// }
|
// }
|
||||||
@@ -137,13 +137,13 @@
|
|||||||
//void dhtC_reading() {
|
//void dhtC_reading() {
|
||||||
// ComfortState cf;
|
// ComfortState cf;
|
||||||
// if (dht.getStatus() != 0) {
|
// if (dht.getStatus() != 0) {
|
||||||
// MqttClient::publishStatus("dhtComfort", String(dht.getStatusString()));
|
// publishStatus("dhtComfort", String(dht.getStatusString()));
|
||||||
// } else {
|
// } else {
|
||||||
// //dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
// //dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
||||||
// String final_line = comfortStr(cf);
|
// String final_line = comfortStr(cf);
|
||||||
// jsonWriteStr(configLiveJson, "dhtComfort", final_line);
|
// jsonWriteStr(configLiveJson, "dhtComfort", final_line);
|
||||||
// eventGen("dhtComfort", "");
|
// eventGen("dhtComfort", "");
|
||||||
// MqttClient::publishStatus("dhtComfort", final_line);
|
// publishStatus("dhtComfort", final_line);
|
||||||
// Serial.println("I sensor 'dhtComfort' send date " + final_line);
|
// Serial.println("I sensor 'dhtComfort' send date " + final_line);
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
@@ -230,12 +230,12 @@
|
|||||||
//void dhtD_reading() {
|
//void dhtD_reading() {
|
||||||
// float value;
|
// float value;
|
||||||
// if (dht.getStatus() != 0) {
|
// if (dht.getStatus() != 0) {
|
||||||
// MqttClient::publishStatus("dhtDewpoint", String(dht.getStatusString()));
|
// publishStatus("dhtDewpoint", String(dht.getStatusString()));
|
||||||
// } else {
|
// } else {
|
||||||
// //value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
// //value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
||||||
// jsonWriteInt(configLiveJson, "dhtDewpoint", value);
|
// jsonWriteInt(configLiveJson, "dhtDewpoint", value);
|
||||||
// eventGen("dhtDewpoint", "");
|
// eventGen("dhtDewpoint", "");
|
||||||
// MqttClient::publishStatus("dhtDewpoint", String(value));
|
// publishStatus("dhtDewpoint", String(value));
|
||||||
// Serial.println("I sensor 'dhtDewpoint' data: " + String(value));
|
// Serial.println("I sensor 'dhtDewpoint' data: " + String(value));
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
@@ -271,7 +271,7 @@
|
|||||||
// value = temp_event.temperature;
|
// value = temp_event.temperature;
|
||||||
// //jsonWriteStr(configLiveJson, bmp280T_value_name, String(value));
|
// //jsonWriteStr(configLiveJson, bmp280T_value_name, String(value));
|
||||||
// //eventGen(bmp280T_value_name, "");
|
// //eventGen(bmp280T_value_name, "");
|
||||||
// //MqttClient::publishStatus(bmp280T_value_name, String(value));
|
// // publishStatus(bmp280T_value_name, String(value));
|
||||||
// //Serial.println("I sensor '" + bmp280T_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + bmp280T_value_name + "' data: " + String(value));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
@@ -303,7 +303,7 @@
|
|||||||
// value = value / 1.333224;
|
// value = value / 1.333224;
|
||||||
// //jsonWriteStr(configLiveJson, bmp280P_value_name, String(value));
|
// //jsonWriteStr(configLiveJson, bmp280P_value_name, String(value));
|
||||||
// //eventGen(bmp280P_value_name, "");
|
// //eventGen(bmp280P_value_name, "");
|
||||||
// //MqttClient::publishStatus(bmp280P_value_name, String(value));
|
// // publishStatus(bmp280P_value_name, String(value));
|
||||||
// //Serial.println("I sensor '" + bmp280P_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + bmp280P_value_name + "' data: " + String(value));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
// value = bme.readTemperature();
|
// value = bme.readTemperature();
|
||||||
// //jsonWriteStr(configLiveJson, bme280T_value_name, String(value));
|
// //jsonWriteStr(configLiveJson, bme280T_value_name, String(value));
|
||||||
// //eventGen(bme280T_value_name, "");
|
// //eventGen(bme280T_value_name, "");
|
||||||
// //MqttClient::publishStatus(bme280T_value_name, String(value));
|
// // publishStatus(bme280T_value_name, String(value));
|
||||||
// //Serial.println("I sensor '" + bme280T_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + bme280T_value_name + "' data: " + String(value));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
@@ -352,7 +352,7 @@
|
|||||||
// value = value / 1.333224 / 100;
|
// value = value / 1.333224 / 100;
|
||||||
// //jsonWriteStr(configLiveJson, bme280P_value_name, String(value));
|
// //jsonWriteStr(configLiveJson, bme280P_value_name, String(value));
|
||||||
// //eventGen(bme280P_value_name, "");
|
// //eventGen(bme280P_value_name, "");
|
||||||
// //MqttClient::publishStatus(bme280P_value_name, String(value));
|
// // publishStatus(bme280P_value_name, String(value));
|
||||||
// //Serial.println("I sensor '" + bme280P_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + bme280P_value_name + "' data: " + String(value));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
@@ -375,7 +375,7 @@
|
|||||||
// value = bme.readHumidity();
|
// value = bme.readHumidity();
|
||||||
// //jsonWriteStr(configLiveJson, bme280H_value_name, String(value));
|
// //jsonWriteStr(configLiveJson, bme280H_value_name, String(value));
|
||||||
// //eventGen(bme280H_value_name, "");
|
// //eventGen(bme280H_value_name, "");
|
||||||
// //MqttClient::publishStatus(bme280H_value_name, String(value));
|
// // publishStatus(bme280H_value_name, String(value));
|
||||||
// //Serial.println("I sensor '" + bme280H_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + bme280H_value_name + "' data: " + String(value));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
@@ -399,7 +399,7 @@
|
|||||||
//
|
//
|
||||||
// //eventGen(bme280A_value_name, "");
|
// //eventGen(bme280A_value_name, "");
|
||||||
//
|
//
|
||||||
// //MqttClient::publishStatus(bme280A_value_name, String(value));
|
// // publishStatus(bme280A_value_name, String(value));
|
||||||
//
|
//
|
||||||
// //Serial.println("I sensor '" + bme280A_value_name + "' data: " + String(value));
|
// //Serial.println("I sensor '" + bme280A_value_name + "' data: " + String(value));
|
||||||
//}
|
//}
|
||||||
|
|||||||
@@ -1,115 +1,106 @@
|
|||||||
#include "Utils/WiFiUtils.h"
|
#include "Utils/WiFiUtils.h"
|
||||||
|
|
||||||
|
void routerConnect() {
|
||||||
|
|
||||||
void startSTAMode() {
|
|
||||||
setLedStatus(LED_SLOW);
|
setLedStatus(LED_SLOW);
|
||||||
SerialPrint("I","WIFI","STA Mode");
|
|
||||||
|
|
||||||
String ssid = jsonReadStr(configSetupJson, "routerssid");
|
|
||||||
String passwd = jsonReadStr(configSetupJson, "routerpass");
|
|
||||||
|
|
||||||
WiFi.mode(WIFI_STA);
|
WiFi.mode(WIFI_STA);
|
||||||
if (ssid == "" && passwd == "") {
|
byte tries = 20;
|
||||||
|
|
||||||
|
String _ssid = jsonReadStr(configSetupJson, "routerssid");
|
||||||
|
String _password = jsonReadStr(configSetupJson, "routerpass");
|
||||||
|
//WiFi.persistent(false);
|
||||||
|
|
||||||
|
if (_ssid == "" && _password == "") {
|
||||||
WiFi.begin();
|
WiFi.begin();
|
||||||
} else {
|
} else {
|
||||||
if (WiFi.begin(ssid.c_str(), passwd.c_str()) == WL_CONNECT_FAILED) {
|
WiFi.begin(_ssid.c_str(), _password.c_str());
|
||||||
SerialPrint("[E]","WIFI","failed on start");
|
SerialPrint("I", "WIFI", "ssid: " + _ssid);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool keepConnecting = true;
|
while (--tries && WiFi.status() != WL_CONNECTED) {
|
||||||
uint8_t tries = 20;
|
if (WiFi.status() == WL_CONNECT_FAILED) {
|
||||||
sint8_t connRes;
|
SerialPrint("E", "WIFI", "password is not correct");
|
||||||
do {
|
tries = 1;
|
||||||
#ifdef ESP8266
|
jsonWriteInt(configOptionJson, "pass_status", 1);
|
||||||
connRes = WiFi.waitForConnectResult(1000);
|
|
||||||
#else
|
|
||||||
byte connRes = WiFi.waitForConnectResult();
|
|
||||||
#endif
|
|
||||||
switch (connRes) {
|
|
||||||
case WL_NO_SSID_AVAIL: {
|
|
||||||
SerialPrint("[E]","WIFI","no network");
|
|
||||||
keepConnecting = false;
|
|
||||||
} break;
|
|
||||||
case WL_CONNECTED: {
|
|
||||||
String hostIpStr = WiFi.localIP().toString();
|
|
||||||
SerialPrint("I","WIFI","http://" + hostIpStr);
|
|
||||||
jsonWriteStr(configSetupJson, "ip", hostIpStr);
|
|
||||||
keepConnecting = false;
|
|
||||||
} break;
|
|
||||||
case WL_CONNECT_FAILED: {
|
|
||||||
SerialPrint("[E]","WIFI","check credentials");
|
|
||||||
jsonWriteInt(configOptionJson, "pass_status", 1);
|
|
||||||
keepConnecting = false;
|
|
||||||
} break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
} while (keepConnecting && tries--);
|
Serial.print(".");
|
||||||
|
delay(1000);
|
||||||
|
}
|
||||||
|
|
||||||
if (isNetworkActive()) {
|
if (WiFi.status() != WL_CONNECTED) {
|
||||||
MqttClient::init();
|
Serial.println("");
|
||||||
setLedStatus(LED_OFF);
|
|
||||||
} else {
|
|
||||||
SerialPrint("[E]","WIFI","failed: " + String(connRes, DEC));
|
|
||||||
startAPMode();
|
startAPMode();
|
||||||
};
|
} else {
|
||||||
|
Serial.println("");
|
||||||
|
SerialPrint("I", "WIFI", "http://" + WiFi.localIP().toString());
|
||||||
|
jsonWriteStr(configSetupJson, "ip", WiFi.localIP().toString());
|
||||||
|
setLedStatus(LED_OFF);
|
||||||
|
mqttInit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool startAPMode() {
|
bool startAPMode() {
|
||||||
setLedStatus(LED_ON);
|
setLedStatus(LED_ON);
|
||||||
SerialPrint("I","WIFI","AP Mode");
|
SerialPrint("I", "WIFI", "AP Mode");
|
||||||
|
|
||||||
String ssid = jsonReadStr(configSetupJson, "apssid");
|
|
||||||
String passwd = jsonReadStr(configSetupJson, "appass");
|
|
||||||
|
|
||||||
|
WiFi.disconnect();
|
||||||
WiFi.mode(WIFI_AP);
|
WiFi.mode(WIFI_AP);
|
||||||
|
|
||||||
WiFi.softAP(ssid.c_str(), passwd.c_str());
|
String _ssidAP = jsonReadStr(configSetupJson, "apssid");
|
||||||
String hostIpStr = WiFi.softAPIP().toString();
|
String _passwordAP = jsonReadStr(configSetupJson, "appass");
|
||||||
SerialPrint("I","WIFI","Host IP: " + hostIpStr);
|
|
||||||
jsonWriteStr(configSetupJson, "ip", hostIpStr);
|
|
||||||
|
|
||||||
|
WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str());
|
||||||
|
IPAddress myIP = WiFi.softAPIP();
|
||||||
|
|
||||||
|
SerialPrint("I", "WIFI", "AP IP: " + myIP.toString());
|
||||||
|
jsonWriteStr(configSetupJson, "ip", myIP.toString());
|
||||||
|
|
||||||
|
//if (jsonReadInt(configOptionJson, "pass_status") != 1) {
|
||||||
ts.add(
|
ts.add(
|
||||||
WIFI_SCAN, 10 * 1000,
|
WIFI_SCAN, 10 * 1000, [&](void*) {
|
||||||
[&](void*) {
|
|
||||||
String sta_ssid = jsonReadStr(configSetupJson, "routerssid");
|
String sta_ssid = jsonReadStr(configSetupJson, "routerssid");
|
||||||
SerialPrint("I","WIFI","scanning for " + sta_ssid);
|
|
||||||
if (scanWiFi(sta_ssid)) {
|
SerialPrint("I", "WIFI", "scanning for " + sta_ssid);
|
||||||
|
|
||||||
|
if (RouterFind(sta_ssid)) {
|
||||||
ts.remove(WIFI_SCAN);
|
ts.remove(WIFI_SCAN);
|
||||||
startSTAMode();
|
WiFi.scanDelete();
|
||||||
|
routerConnect();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
nullptr, true);
|
nullptr, true);
|
||||||
|
//}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean scanWiFi(String ssid) {
|
|
||||||
|
boolean RouterFind(String ssid) {
|
||||||
bool res = false;
|
bool res = false;
|
||||||
int8_t n = WiFi.scanComplete();
|
int n = WiFi.scanComplete();
|
||||||
SerialPrint("I","WIFI","scan result: " + String(n, DEC));
|
SerialPrint("I", "WIFI", "scan result: " + String(n, DEC));
|
||||||
if (n == -2) {
|
|
||||||
// не было запущено, запускаем
|
if (n == -2) { //Сканирование не было запущено, запускаем
|
||||||
SerialPrint("I","WIFI","start scanning");
|
SerialPrint("I", "WIFI", "start scanning");
|
||||||
// async, show_hidden
|
WiFi.scanNetworks(true, false); //async, show_hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (n == -1) { //Сканирование все еще выполняется
|
||||||
|
SerialPrint("I", "WIFI", "scanning in progress");
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (n == 0) { //ни одна сеть не найдена
|
||||||
|
SerialPrint("I", "WIFI", "no networks found");
|
||||||
WiFi.scanNetworks(true, false);
|
WiFi.scanNetworks(true, false);
|
||||||
} else if (n == -1) {
|
}
|
||||||
// все еще выполняется
|
|
||||||
SerialPrint("I","WIFI","scanning in progress");
|
else if (n > 0) {
|
||||||
} else if (n == 0) {
|
|
||||||
// не найдена ни одна сеть
|
|
||||||
SerialPrint("I","WIFI","no networks found");
|
|
||||||
WiFi.scanNetworks(true, false);
|
|
||||||
} else if (n > 0) {
|
|
||||||
for (int8_t i = 0; i < n; i++) {
|
for (int8_t i = 0; i < n; i++) {
|
||||||
if (WiFi.SSID(i) == ssid) {
|
if (WiFi.SSID(i) == ssid) {
|
||||||
res = true;
|
res = true;
|
||||||
}
|
}
|
||||||
SerialPrint("I","WIFI",(res ? "*" : "") + String(i, DEC) + ") " + WiFi.SSID(i));
|
SerialPrint("I", "WIFI", (res ? "*" : "") + String(i, DEC) + ") " + WiFi.SSID(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
WiFi.scanDelete();
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ void web_init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (request->hasArg("mqttcheck")) {
|
if (request->hasArg("mqttcheck")) {
|
||||||
String buf = "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>" + MqttClient::getStateStr();
|
String buf = "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>" + getStateStr();
|
||||||
|
|
||||||
String payload = "{}";
|
String payload = "{}";
|
||||||
jsonWriteStr(payload, "title", buf);
|
jsonWriteStr(payload, "title", buf);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ void setup() {
|
|||||||
all_init();
|
all_init();
|
||||||
|
|
||||||
SerialPrint("I","WIFI","Network Init");
|
SerialPrint("I","WIFI","Network Init");
|
||||||
startSTAMode();
|
routerConnect();
|
||||||
|
|
||||||
SerialPrint("I","Uptime","Uptime Init");
|
SerialPrint("I","Uptime","Uptime Init");
|
||||||
uptime_init();
|
uptime_init();
|
||||||
@@ -105,7 +105,7 @@ void loop() {
|
|||||||
ws.cleanupClients();
|
ws.cleanupClients();
|
||||||
#endif
|
#endif
|
||||||
timeNow->loop();
|
timeNow->loop();
|
||||||
MqttClient::loop();
|
mqttLoop();
|
||||||
myButtonIn.loop();
|
myButtonIn.loop();
|
||||||
myScenario->loop();
|
myScenario->loop();
|
||||||
loopCmdExecute();
|
loopCmdExecute();
|
||||||
|
|||||||
Reference in New Issue
Block a user