mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 20:09:14 +03:00
добавление кнопок в элемент
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -4,12 +4,12 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||||
|
|
||||||
<title>IoT Manager 4.4.3</title>
|
<title>IoT Manager 4.4.4</title>
|
||||||
|
|
||||||
<link rel="icon" type="image/png" href="/favicon.ico" />
|
<link rel="icon" type="image/png" href="/favicon.ico" />
|
||||||
<link rel="stylesheet" href="/build/bundle.css?443" />
|
<link rel="stylesheet" href="/build/bundle.css?444" />
|
||||||
|
|
||||||
<script defer src="/build/bundle.js?443"></script>
|
<script defer src="/build/bundle.js?444"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body></body>
|
<body></body>
|
||||||
|
|||||||
@@ -62,7 +62,9 @@
|
|||||||
"logid": "t",
|
"logid": "t",
|
||||||
"points": 365,
|
"points": 365,
|
||||||
"telegram": 0,
|
"telegram": 0,
|
||||||
"test": 0
|
"test": 0,
|
||||||
|
"btn-defvalue": 0,
|
||||||
|
"btn-reset": "nil"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"global": 0,
|
"global": 0,
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ class IoTItem {
|
|||||||
virtual void onRegEvent(IoTItem* item);
|
virtual void onRegEvent(IoTItem* item);
|
||||||
virtual void onMqttRecive(String& topic, String& msg);
|
virtual void onMqttRecive(String& topic, String& msg);
|
||||||
virtual void onMqttWsAppConnectEvent();
|
virtual void onMqttWsAppConnectEvent();
|
||||||
|
virtual void onModuleOrder(String& key, String& value);
|
||||||
|
|
||||||
// делаем доступным модулям отправку сообщений в телеграм
|
// делаем доступным модулям отправку сообщений в телеграм
|
||||||
virtual void sendTelegramMsg(bool often, String msg);
|
virtual void sendTelegramMsg(bool often, String msg);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
|
|
||||||
case WStype_TEXT: {
|
case WStype_TEXT: {
|
||||||
bool endOfHeaderFound = false;
|
bool endOfHeaderFound = false;
|
||||||
size_t maxAllowedHeaderSize = 15; //максимальное количество символов заголовка
|
size_t maxAllowedHeaderSize = 15; // максимальное количество символов заголовка
|
||||||
size_t headerLenth = 0;
|
size_t headerLenth = 0;
|
||||||
String headerStr;
|
String headerStr;
|
||||||
for (size_t i = 0; i <= maxAllowedHeaderSize; i++) {
|
for (size_t i = 0; i <= maxAllowedHeaderSize; i++) {
|
||||||
@@ -54,13 +54,13 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
// Страница веб интерфейса dashboard
|
// Страница веб интерфейса dashboard
|
||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
|
|
||||||
//публикация всех виджетов
|
// публикация всех виджетов
|
||||||
if (headerStr == "/|") {
|
if (headerStr == "/|") {
|
||||||
sendFileToWsByFrames("/layout.json", "layout", "", num, WEB_SOCKETS_FRAME_SIZE);
|
sendFileToWsByFrames("/layout.json", "layout", "", num, WEB_SOCKETS_FRAME_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (headerStr == "/params|") {
|
if (headerStr == "/params|") {
|
||||||
//публикация всех статус сообщений при подключении svelte приложения
|
// публикация всех статус сообщений при подключении svelte приложения
|
||||||
String params = "{}";
|
String params = "{}";
|
||||||
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||||
if ((*it)->getSubtype() != "Loging") {
|
if ((*it)->getSubtype() != "Loging") {
|
||||||
@@ -69,21 +69,21 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
}
|
}
|
||||||
sendStringToWs("params", params, num);
|
sendStringToWs("params", params, num);
|
||||||
|
|
||||||
//генерация события подключения в модулях
|
// генерация события подключения в модулях
|
||||||
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||||
if ((*it)->iAmLocal) (*it)->onMqttWsAppConnectEvent();
|
if ((*it)->iAmLocal) (*it)->onMqttWsAppConnectEvent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//отвечаем на запрос графиков
|
// отвечаем на запрос графиков
|
||||||
if (headerStr == "/charts|") {
|
if (headerStr == "/charts|") {
|
||||||
//обращение к логированию из ядра
|
// обращение к логированию из ядра
|
||||||
//отправка данных графиков только в выбранный сокет
|
// отправка данных графиков только в выбранный сокет
|
||||||
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||||
//сбрасываем даты графиков
|
// сбрасываем даты графиков
|
||||||
// if ((*it)->getID().endsWith("-date")) {
|
// if ((*it)->getID().endsWith("-date")) {
|
||||||
// (*it)->setTodayDate();
|
// (*it)->setTodayDate();
|
||||||
//}
|
// }
|
||||||
if ((*it)->getSubtype() == "Loging" || "LogingDaily") {
|
if ((*it)->getSubtype() == "Loging" || "LogingDaily") {
|
||||||
(*it)->setPublishDestination(TO_WS, num);
|
(*it)->setPublishDestination(TO_WS, num);
|
||||||
(*it)->publishValue();
|
(*it)->publishValue();
|
||||||
@@ -95,7 +95,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
// Страница веб интерфейса configutation
|
// Страница веб интерфейса configutation
|
||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
|
|
||||||
//отвечаем данными на запрос страницы
|
// отвечаем данными на запрос страницы
|
||||||
if (headerStr == "/config|") {
|
if (headerStr == "/config|") {
|
||||||
sendFileToWsByFrames("/items.json", "itemsj", "", num, WEB_SOCKETS_FRAME_SIZE);
|
sendFileToWsByFrames("/items.json", "itemsj", "", num, WEB_SOCKETS_FRAME_SIZE);
|
||||||
sendFileToWsByFrames("/widgets.json", "widget", "", num, WEB_SOCKETS_FRAME_SIZE);
|
sendFileToWsByFrames("/widgets.json", "widget", "", num, WEB_SOCKETS_FRAME_SIZE);
|
||||||
@@ -104,7 +104,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
sendStringToWs("settin", settingsFlashJson, num);
|
sendStringToWs("settin", settingsFlashJson, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
//обработка кнопки сохранить
|
// обработка кнопки сохранить
|
||||||
if (headerStr == "/gifnoc|") {
|
if (headerStr == "/gifnoc|") {
|
||||||
writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256);
|
writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256);
|
||||||
}
|
}
|
||||||
@@ -124,7 +124,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
// Страница веб интерфейса connection
|
// Страница веб интерфейса connection
|
||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
|
|
||||||
//отвечаем данными на запрос страницы
|
// отвечаем данными на запрос страницы
|
||||||
if (headerStr == "/connection|") {
|
if (headerStr == "/connection|") {
|
||||||
sendStringToWs("settin", settingsFlashJson, num);
|
sendStringToWs("settin", settingsFlashJson, num);
|
||||||
sendStringToWs("ssidli", ssidListHeapJson, num);
|
sendStringToWs("ssidli", ssidListHeapJson, num);
|
||||||
@@ -133,7 +133,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
// RouterFind(jsonReadStr(settingsFlashJson, F("routerssid")));
|
// RouterFind(jsonReadStr(settingsFlashJson, F("routerssid")));
|
||||||
}
|
}
|
||||||
|
|
||||||
//обработка кнопки сохранить настройки wifi
|
// обработка кнопки сохранить настройки wifi
|
||||||
if (headerStr == "/sgnittes|") {
|
if (headerStr == "/sgnittes|") {
|
||||||
writeUint8tToString(payload, length, headerLenth, settingsFlashJson);
|
writeUint8tToString(payload, length, headerLenth, settingsFlashJson);
|
||||||
writeFileUint8tByFrames("settings.json", payload, length, headerLenth, 256);
|
writeFileUint8tByFrames("settings.json", payload, length, headerLenth, 256);
|
||||||
@@ -141,16 +141,16 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
addThisDeviceToList();
|
addThisDeviceToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//обработка кнопки сохранить настройки mqtt
|
// обработка кнопки сохранить настройки mqtt
|
||||||
if (headerStr == "/mqtt|") {
|
if (headerStr == "/mqtt|") {
|
||||||
sendStringToWs("settin", settingsFlashJson, num); //отправляем в ответ новые полученные настройки
|
sendStringToWs("settin", settingsFlashJson, num); // отправляем в ответ новые полученные настройки
|
||||||
handleMqttStatus(false, 8); //меняем статус на неопределенный
|
handleMqttStatus(false, 8); // меняем статус на неопределенный
|
||||||
mqttReconnect(); //начинаем переподключение
|
mqttReconnect(); // начинаем переподключение
|
||||||
sendStringToWs("errors", errorsHeapJson, num); //отправляем что статус неопределен
|
sendStringToWs("errors", errorsHeapJson, num); // отправляем что статус неопределен
|
||||||
sendStringToWs("ssidli", ssidListHeapJson, num);
|
sendStringToWs("ssidli", ssidListHeapJson, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
//запуск асинхронного сканирования wifi сетей при нажатии выпадающего списка
|
// запуск асинхронного сканирования wifi сетей при нажатии выпадающего списка
|
||||||
if (headerStr == "/scan|") {
|
if (headerStr == "/scan|") {
|
||||||
RouterFind(jsonReadStr(settingsFlashJson, F("routerssid")));
|
RouterFind(jsonReadStr(settingsFlashJson, F("routerssid")));
|
||||||
sendStringToWs("ssidli", ssidListHeapJson, num);
|
sendStringToWs("ssidli", ssidListHeapJson, num);
|
||||||
@@ -160,7 +160,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
// Страница веб интерфейса list
|
// Страница веб интерфейса list
|
||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
|
|
||||||
//отвечаем данными на запрос страницы
|
// отвечаем данными на запрос страницы
|
||||||
if (headerStr == "/list|") {
|
if (headerStr == "/list|") {
|
||||||
sendStringToWs("devlis", devListHeapJson, num);
|
sendStringToWs("devlis", devListHeapJson, num);
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
// Страница веб интерфейса system
|
// Страница веб интерфейса system
|
||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
|
|
||||||
//отвечаем данными на запрос страницы
|
// отвечаем данными на запрос страницы
|
||||||
if (headerStr == "/system|") {
|
if (headerStr == "/system|") {
|
||||||
sendStringToWs("errors", errorsHeapJson, num);
|
sendStringToWs("errors", errorsHeapJson, num);
|
||||||
sendStringToWs("settin", settingsFlashJson, num);
|
sendStringToWs("settin", settingsFlashJson, num);
|
||||||
@@ -193,27 +193,27 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
// отдельные команды веб интерфейса
|
// отдельные команды веб интерфейса
|
||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
|
|
||||||
//переписать любое поле в errors json
|
// переписать любое поле в errors json
|
||||||
if (headerStr == "/rorre|") {
|
if (headerStr == "/rorre|") {
|
||||||
writeUint8tValueToJsonString(payload, length, headerLenth, errorsHeapJson);
|
writeUint8tValueToJsonString(payload, length, headerLenth, errorsHeapJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
//команда перезагрузки esp
|
// команда перезагрузки esp
|
||||||
if (headerStr == "/reboot|") {
|
if (headerStr == "/reboot|") {
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
//команда очистки всех логов esp
|
// команда очистки всех логов esp
|
||||||
if (headerStr == "/clean|") {
|
if (headerStr == "/clean|") {
|
||||||
cleanLogs();
|
cleanLogs();
|
||||||
}
|
}
|
||||||
|
|
||||||
//команда обновления прошивки esp
|
// команда обновления прошивки esp
|
||||||
if (headerStr == "/update|") {
|
if (headerStr == "/update|") {
|
||||||
upgrade_firmware(3);
|
upgrade_firmware(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Прием команд control c dashboard
|
// Прием команд control c dashboard
|
||||||
if (headerStr == "/control|") {
|
if (headerStr == "/control|") {
|
||||||
String msg;
|
String msg;
|
||||||
writeUint8tToString(payload, length, headerLenth, msg);
|
writeUint8tToString(payload, length, headerLenth, msg);
|
||||||
@@ -227,6 +227,24 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
standWebSocket.sendTXT(num, "/tstr|");
|
standWebSocket.sendTXT(num, "/tstr|");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// получаем команду посланную из модуля
|
||||||
|
if (headerStr == "/order|") {
|
||||||
|
SerialPrint("i", F("=>WS"), "Msg from module");
|
||||||
|
String json;
|
||||||
|
writeUint8tToString(payload, length, headerLenth, json);
|
||||||
|
|
||||||
|
String id, key, value;
|
||||||
|
jsonRead(json, "id", id);
|
||||||
|
jsonRead(json, "key", key);
|
||||||
|
jsonRead(json, "value", value);
|
||||||
|
|
||||||
|
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||||
|
if ((*it)->getID() == id) {
|
||||||
|
(*it)->onModuleOrder(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case WStype_BIN: {
|
case WStype_BIN: {
|
||||||
@@ -265,7 +283,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//публикация статус сообщений в ws (недостаток в том что делаем бродкаст всем клиентам поднятым в свелте!!!)
|
// публикация статус сообщений в ws (недостаток в том что делаем бродкаст всем клиентам поднятым в свелте!!!)
|
||||||
void publishStatusWs(const String& topic, const String& data) {
|
void publishStatusWs(const String& topic, const String& data) {
|
||||||
String path = mqttRootDevice + "/" + topic;
|
String path = mqttRootDevice + "/" + topic;
|
||||||
String json = "{}";
|
String json = "{}";
|
||||||
@@ -274,7 +292,7 @@ void publishStatusWs(const String& topic, const String& data) {
|
|||||||
sendStringToWs("status", json, -1);
|
sendStringToWs("status", json, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//публикация дополнительных json сообщений в ws
|
// публикация дополнительных json сообщений в ws
|
||||||
void publishJsonWs(const String& topic, String& json) {
|
void publishJsonWs(const String& topic, String& json) {
|
||||||
String path = mqttRootDevice + "/" + topic;
|
String path = mqttRootDevice + "/" + topic;
|
||||||
jsonWriteStr(json, "topic", path);
|
jsonWriteStr(json, "topic", path);
|
||||||
@@ -282,7 +300,7 @@ void publishJsonWs(const String& topic, String& json) {
|
|||||||
// sendStringToWs("status", json, -1);
|
// sendStringToWs("status", json, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//данные которые мы отправляем в сокеты переодически
|
// данные которые мы отправляем в сокеты переодически
|
||||||
void periodicWsSend() {
|
void periodicWsSend() {
|
||||||
sendStringToWs("ssidli", ssidListHeapJson, -1);
|
sendStringToWs("ssidli", ssidListHeapJson, -1);
|
||||||
sendStringToWs("errors", errorsHeapJson, -1);
|
sendStringToWs("errors", errorsHeapJson, -1);
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ void IoTItem::checkIntFromNet() {
|
|||||||
void IoTItem::onRegEvent(IoTItem* item) {}
|
void IoTItem::onRegEvent(IoTItem* item) {}
|
||||||
void IoTItem::onMqttRecive(String& topic, String& msg) {}
|
void IoTItem::onMqttRecive(String& topic, String& msg) {}
|
||||||
void IoTItem::onMqttWsAppConnectEvent() {}
|
void IoTItem::onMqttWsAppConnectEvent() {}
|
||||||
|
void IoTItem::onModuleOrder(String& key, String& value) {}
|
||||||
|
|
||||||
// делаем доступным модулям отправку сообщений в телеграм
|
// делаем доступным модулям отправку сообщений в телеграм
|
||||||
void IoTItem::sendTelegramMsg(bool often, String msg) {}
|
void IoTItem::sendTelegramMsg(bool often, String msg) {}
|
||||||
|
|||||||
@@ -240,6 +240,13 @@ class LogingDaily : public IoTItem {
|
|||||||
int calculateMaxCount() {
|
int calculateMaxCount() {
|
||||||
return 86400;
|
return 86400;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onModuleOrder(String &key, String &value) {
|
||||||
|
if (key == "defvalue") {
|
||||||
|
} else if (key == "reset") {
|
||||||
|
}
|
||||||
|
SerialPrint("i", F("LogingDaily"), "key " + key + ", value " + value);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void *getAPI_LogingDaily(String subtype, String param) {
|
void *getAPI_LogingDaily(String subtype, String param) {
|
||||||
|
|||||||
@@ -15,7 +15,9 @@
|
|||||||
"logid": "t",
|
"logid": "t",
|
||||||
"points": 365,
|
"points": 365,
|
||||||
"telegram": 0,
|
"telegram": 0,
|
||||||
"test": 0
|
"test": 0,
|
||||||
|
"btn-defvalue": 0,
|
||||||
|
"btn-reset": "nil"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"about": {
|
"about": {
|
||||||
|
|||||||
Reference in New Issue
Block a user