mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
добавлено сохранение списка устройств, новый веб интерфейс
This commit is contained in:
@@ -6,7 +6,7 @@ void mqttInit() {
|
||||
WIFI_MQTT_CONNECTION_CHECK, MQTT_RECONNECT_INTERVAL,
|
||||
[&](void*) {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
SerialPrint("i", F("WIFI"), "OK: " + jsonReadStr(settingsFlashJson, F("ip")));
|
||||
SerialPrint("i", F("WIFI"), "http://" + jsonReadStr(settingsFlashJson, F("ip")));
|
||||
wifiUptimeCalc();
|
||||
if (mqtt.connected()) {
|
||||
SerialPrint("i", F("MQTT"), "OK");
|
||||
@@ -133,10 +133,10 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) {
|
||||
if (payloadStr.startsWith("HELLO")) {
|
||||
SerialPrint("i", F("MQTT"), F("Full update"));
|
||||
|
||||
//публикация всех виджетов
|
||||
// публикация всех виджетов
|
||||
publishWidgets();
|
||||
|
||||
//публикация всех статус сообщений при подключении приложения и генерация события подключения приложения в модулях
|
||||
// публикация всех статус сообщений при подключении приложения и генерация события подключения приложения в модулях
|
||||
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
if ((*it)->iAmLocal) {
|
||||
publishStatusMqtt((*it)->getID(), (*it)->getValue());
|
||||
@@ -144,7 +144,7 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) {
|
||||
}
|
||||
}
|
||||
|
||||
//отправка данных графиков - данный код будет оптимизирован после завершения написания приложения с новыми графиками
|
||||
// отправка данных графиков - данный код будет оптимизирован после завершения написания приложения с новыми графиками
|
||||
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
if ((*it)->getSubtype() == "Loging" || "LogingDaily") {
|
||||
(*it)->setPublishDestination(TO_MQTT);
|
||||
@@ -162,16 +162,17 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) {
|
||||
|
||||
else if (topicStr.indexOf(F("control")) != -1) {
|
||||
String key = selectFromMarkerToMarker(topicStr, "/", 3);
|
||||
|
||||
String valueIfJson = ""; // проверяем формат, если json то берем статус, иначе - как есть
|
||||
|
||||
String valueIfJson = ""; // проверяем формат, если json то берем статус, иначе - как есть
|
||||
if (!jsonRead(payloadStr, F("status"), valueIfJson, false))
|
||||
generateOrder(key, payloadStr);
|
||||
else generateOrder(key, valueIfJson);
|
||||
else
|
||||
generateOrder(key, valueIfJson);
|
||||
|
||||
SerialPrint("i", F("=>MQTT"), "Msg from iotmanager app: " + key + " " + payloadStr);
|
||||
}
|
||||
|
||||
//здесь мы получаем события с других устройств, которые потом проверяются в сценариях этого устройства
|
||||
// здесь мы получаем события с других устройств, которые потом проверяются в сценариях этого устройства
|
||||
else if (topicStr.indexOf("event") != -1) {
|
||||
if (!jsonReadBool(settingsFlashJson, "mqttin")) {
|
||||
return;
|
||||
@@ -251,7 +252,7 @@ void publishWidgets() {
|
||||
DeserializationError error = deserializeJson(doc, file);
|
||||
if (error) {
|
||||
SerialPrint("E", F("MQTT"), error.f_str());
|
||||
jsonWriteInt(errorsHeapJson, F("jse3"), 1); //Ошибка чтения json файла с виджетами при отправки в mqtt
|
||||
jsonWriteInt(errorsHeapJson, F("jse3"), 1); // Ошибка чтения json файла с виджетами при отправки в mqtt
|
||||
}
|
||||
JsonArray arr = doc.as<JsonArray>();
|
||||
for (JsonVariant value : arr) {
|
||||
@@ -292,43 +293,43 @@ void handleMqttStatus(bool send, int state) {
|
||||
|
||||
const String getStateStr(int e) {
|
||||
switch (e) {
|
||||
case -4: //Нет ответа от сервера
|
||||
case -4: // Нет ответа от сервера
|
||||
return F("e1");
|
||||
break;
|
||||
case -3: //Соединение было разорвано
|
||||
case -3: // Соединение было разорвано
|
||||
return F("e2");
|
||||
break;
|
||||
case -2: //Ошибка соединения. Обычно возникает когда неверно указано название сервера MQTT
|
||||
case -2: // Ошибка соединения. Обычно возникает когда неверно указано название сервера MQTT
|
||||
return F("e3");
|
||||
break;
|
||||
case -1: //Клиент был отключен
|
||||
case -1: // Клиент был отключен
|
||||
return F("e4");
|
||||
break;
|
||||
case 0: //подключено
|
||||
case 0: // подключено
|
||||
return F("e5");
|
||||
break;
|
||||
case 1: //Ошибка версии
|
||||
case 1: // Ошибка версии
|
||||
return F("e6");
|
||||
break;
|
||||
case 2: //Отклонен идентификатор
|
||||
case 2: // Отклонен идентификатор
|
||||
return F("e7");
|
||||
break;
|
||||
case 3: //Не могу установить соединение
|
||||
case 3: // Не могу установить соединение
|
||||
return F("e8");
|
||||
break;
|
||||
case 4: //Неправильное имя пользователя/пароль
|
||||
case 4: // Неправильное имя пользователя/пароль
|
||||
return F("e9");
|
||||
break;
|
||||
case 5: //Не авторизован для подключения
|
||||
case 5: // Не авторизован для подключения
|
||||
return F("e10");
|
||||
break;
|
||||
case 6: //Название сервера пустое
|
||||
case 6: // Название сервера пустое
|
||||
return F("e11");
|
||||
break;
|
||||
case 7: //Имя пользователя или пароль пустые
|
||||
case 7: // Имя пользователя или пароль пустые
|
||||
return F("e12");
|
||||
break;
|
||||
case 8: //Подключение в процессе
|
||||
case 8: // Подключение в процессе
|
||||
return F("e13");
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user