mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-31 04:19:15 +03:00
не совсем полностью но рабочая версия
This commit is contained in:
Binary file not shown.
Binary file not shown.
1
data_svelte/empty.txt
Normal file
1
data_svelte/empty.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"x":0,"y1":0},
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"settings": "",
|
"settings_": "",
|
||||||
"name": "IoTmanagerVer4",
|
"name": "IoTmanagerVer4",
|
||||||
"apssid": "IoTmanager",
|
"apssid": "IoTmanager",
|
||||||
"appass": "",
|
"appass": "",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
//Версия прошивки
|
//Версия прошивки
|
||||||
#define FIRMWARE_VERSION 424
|
#define FIRMWARE_VERSION 425
|
||||||
|
|
||||||
#ifdef esp8266_4mb
|
#ifdef esp8266_4mb
|
||||||
#define FIRMWARE_NAME "esp8266_4mb"
|
#define FIRMWARE_NAME "esp8266_4mb"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"iotmSettings": {
|
"iotmSettings": {
|
||||||
"settings": "",
|
"settings_": "",
|
||||||
"name": "IoTmanagerVer4",
|
"name": "IoTmanagerVer4",
|
||||||
"apssid": "IoTmanager",
|
"apssid": "IoTmanager",
|
||||||
"appass": "",
|
"appass": "",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
const String getThisDevice() {
|
const String getThisDevice() {
|
||||||
String thisDevice = "{}";
|
String thisDevice = "{}";
|
||||||
jsonWriteStr_(thisDevice, F("devicelist"), ""); //метка для парсинга
|
jsonWriteStr_(thisDevice, F("devicelist_"), ""); //метка для парсинга
|
||||||
jsonWriteStr_(thisDevice, F("ip"), jsonReadStr(settingsFlashJson, F("ip")));
|
jsonWriteStr_(thisDevice, F("ip"), jsonReadStr(settingsFlashJson, F("ip")));
|
||||||
jsonWriteStr_(thisDevice, F("id"), jsonReadStr(settingsFlashJson, F("id")));
|
jsonWriteStr_(thisDevice, F("id"), jsonReadStr(settingsFlashJson, F("id")));
|
||||||
jsonWriteStr_(thisDevice, F("name"), jsonReadStr(settingsFlashJson, F("name")));
|
jsonWriteStr_(thisDevice, F("name"), jsonReadStr(settingsFlashJson, F("name")));
|
||||||
|
|||||||
@@ -19,9 +19,8 @@ void globalVarsSync() {
|
|||||||
jsonWriteStr_(settingsFlashJson, "root", mqttRootDevice);
|
jsonWriteStr_(settingsFlashJson, "root", mqttRootDevice);
|
||||||
jsonWriteStr_(settingsFlashJson, "id", chipId);
|
jsonWriteStr_(settingsFlashJson, "id", chipId);
|
||||||
|
|
||||||
jsonWriteStr_(errorsHeapJson, "errors", ""); //метка для парсинга
|
jsonWriteStr_(errorsHeapJson, "errors_", ""); //метка для парсинга
|
||||||
jsonWriteStr_(ssidListHeapJson, "ssid", ""); //метка для парсинга
|
jsonWriteStr_(ssidListHeapJson, "ssids_", ""); //метка для парсинга
|
||||||
// jsonWriteStr(paramsHeapJson, "params", ""); //метка для парсинга
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String getParamsJson() {
|
String getParamsJson() {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
case WStype_CONNECTED: {
|
case WStype_CONNECTED: {
|
||||||
// IPAddress ip = standWebSocket.remoteIP(num);
|
// IPAddress ip = standWebSocket.remoteIP(num);
|
||||||
SerialPrint("i", "WS " + String(num), "WS client connected");
|
SerialPrint("i", "WS " + String(num), "WS client connected");
|
||||||
if (num > 3) {
|
if (num >= 3) {
|
||||||
SerialPrint("E", "WS", "Too many clients, connection closed!!!");
|
SerialPrint("E", "WS", "Too many clients, connection closed!!!");
|
||||||
jsonWriteInt(errorsHeapJson, "wse1", 1);
|
jsonWriteInt(errorsHeapJson, "wse1", 1);
|
||||||
standWebSocket.close();
|
standWebSocket.close();
|
||||||
@@ -61,16 +61,18 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
|
|
||||||
//отвечаем на запрос параметров
|
//отвечаем на запрос параметров
|
||||||
if (headerStr == "/params|") {
|
if (headerStr == "/params|") {
|
||||||
String json = "{}";
|
String params = "{}";
|
||||||
jsonWriteStr(json, "params", "");
|
jsonWriteStr(params, "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") {
|
||||||
if ((*it)->iAmLocal) jsonWriteStr(json, (*it)->getID(), (*it)->getValue());
|
if ((*it)->iAmLocal) jsonWriteStr(params, (*it)->getID(), (*it)->getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
standWebSocket.sendTXT(num, params);
|
||||||
|
}
|
||||||
|
|
||||||
standWebSocket.sendTXT(num, json);
|
//отвечаем на запрос графиков
|
||||||
|
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) {
|
||||||
//сбрасываем даты графиков
|
//сбрасываем даты графиков
|
||||||
@@ -94,6 +96,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
sendFileToWs("/widgets.json", num, 1024);
|
sendFileToWs("/widgets.json", num, 1024);
|
||||||
sendFileToWs("/config.json", num, 1024);
|
sendFileToWs("/config.json", num, 1024);
|
||||||
sendFileToWs("/scenario.json", num, 1024);
|
sendFileToWs("/scenario.json", num, 1024);
|
||||||
|
//шлется для того что бы получить топик устройства
|
||||||
standWebSocket.sendTXT(num, settingsFlashJson);
|
standWebSocket.sendTXT(num, settingsFlashJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,12 +194,9 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
|||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
if (headerStr == "/dev|") {
|
if (headerStr == "/dev|") {
|
||||||
standWebSocket.sendTXT(num, errorsHeapJson);
|
standWebSocket.sendTXT(num, errorsHeapJson);
|
||||||
sendFileToWs("/layout.json", num, 1024);
|
|
||||||
standWebSocket.sendTXT(num, settingsFlashJson);
|
standWebSocket.sendTXT(num, settingsFlashJson);
|
||||||
sendFileToWs("/config.json", num, 1024);
|
sendFileToWs("/config.json", num, 1024);
|
||||||
sendFileToWs("/items.json", num, 1024);
|
sendFileToWs("/items.json", num, 1024);
|
||||||
String json = getParamsJson();
|
|
||||||
standWebSocket.sendTXT(num, json);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------//
|
//----------------------------------------------------------------------//
|
||||||
|
|||||||
@@ -112,9 +112,8 @@ class Loging : public IoTItem {
|
|||||||
SerialPrint("E", F("Loging"), "'" + id + "' file writing error, return");
|
SerialPrint("E", F("Loging"), "'" + id + "' file writing error, return");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//запишем в него данные
|
//запишем в него данные
|
||||||
String topic = mqttRootDevice + "/" + id;
|
|
||||||
logData = "{\"maxCount\":" + String(calculateMaxCount()) + ",\"topic\":\"" + topic + "\",\"status\":[" + logData;
|
|
||||||
if (addFile(path, logData) != "sucсess") {
|
if (addFile(path, logData) != "sucсess") {
|
||||||
SerialPrint("E", F("Loging"), "'" + id + "' data writing error, return");
|
SerialPrint("E", F("Loging"), "'" + id + "' data writing error, return");
|
||||||
return;
|
return;
|
||||||
@@ -195,8 +194,7 @@ class Loging : public IoTItem {
|
|||||||
|
|
||||||
void clearValue() {
|
void clearValue() {
|
||||||
SerialPrint("i", F("Loging"), "clear chart");
|
SerialPrint("i", F("Loging"), "clear chart");
|
||||||
String cleanJson = createEmtyJson();
|
sendChartFileToWs("/empty.txt", -1, 1000);
|
||||||
// publishJson(cleanJson);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearHistory() {
|
void clearHistory() {
|
||||||
@@ -238,20 +236,21 @@ class Loging : public IoTItem {
|
|||||||
configFile.close();
|
configFile.close();
|
||||||
// String topic = mqttRootDevice + "/" + id;
|
// String topic = mqttRootDevice + "/" + id;
|
||||||
// oneSingleJson = "{\"maxCount\":" + String(calculateMaxCount()) + ",\"topic\":\"" + topic + "\",\"status\":[" + oneSingleJson + "]}";
|
// oneSingleJson = "{\"maxCount\":" + String(calculateMaxCount()) + ",\"topic\":\"" + topic + "\",\"status\":[" + oneSingleJson + "]}";
|
||||||
// oneSingleJson.replace("},]}", "}]}");
|
oneSingleJson += "]}";
|
||||||
|
oneSingleJson.replace("},]}", "}]}");
|
||||||
SerialPrint("i", "Loging", "json size: " + String(oneSingleJson.length()));
|
SerialPrint("i", "Loging", "json size: " + String(oneSingleJson.length()));
|
||||||
publishChartMqtt(id, oneSingleJson);
|
publishChartMqtt(id, oneSingleJson);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sendChartFileToWs(String filename, int num, size_t frameSize) {
|
void sendChartFileToWs(String filename, int num, size_t frameSize) {
|
||||||
String st = "/st/chart.json";
|
String topic = mqttRootDevice + "/" + id;
|
||||||
|
String st = "/st/chart.json|" + topic;
|
||||||
if (num == -1) {
|
if (num == -1) {
|
||||||
standWebSocket.broadcastTXT(st);
|
standWebSocket.broadcastTXT(st);
|
||||||
} else {
|
} else {
|
||||||
standWebSocket.sendTXT(num, st);
|
standWebSocket.sendTXT(num, st);
|
||||||
}
|
}
|
||||||
|
|
||||||
String path = filepath(filename);
|
String path = filepath(filename);
|
||||||
auto file = FileFS.open(path, "r");
|
auto file = FileFS.open(path, "r");
|
||||||
if (!file) {
|
if (!file) {
|
||||||
@@ -271,7 +270,7 @@ class Loging : public IoTItem {
|
|||||||
countRead = file.read(payload, sizeof(payload));
|
countRead = file.read(payload, sizeof(payload));
|
||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
String end = "/end/chart.json";
|
String end = "/end/chart.json|" + topic;
|
||||||
if (num == -1) {
|
if (num == -1) {
|
||||||
standWebSocket.broadcastTXT(end);
|
standWebSocket.broadcastTXT(end);
|
||||||
} else {
|
} else {
|
||||||
@@ -279,18 +278,6 @@ class Loging : public IoTItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//посылка данных из string
|
|
||||||
void sendStringToWs(const String &msg, uint8_t num, String name) {
|
|
||||||
String st = "/st" + String(name);
|
|
||||||
standWebSocket.sendTXT(num, st);
|
|
||||||
size_t size = msg.length();
|
|
||||||
char dataArray[size];
|
|
||||||
msg.toCharArray(dataArray, size);
|
|
||||||
standWebSocket.sendBIN(num, (uint8_t *)dataArray, size);
|
|
||||||
String end = "/end" + String(name);
|
|
||||||
standWebSocket.sendTXT(num, end);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setPublishDestination(int publishType, int wsNum = -1) {
|
void setPublishDestination(int publishType, int wsNum = -1) {
|
||||||
_publishType = publishType;
|
_publishType = publishType;
|
||||||
_wsNum = wsNum;
|
_wsNum = wsNum;
|
||||||
@@ -316,11 +303,11 @@ class Loging : public IoTItem {
|
|||||||
String currentDate = getTodayDateDotFormated();
|
String currentDate = getTodayDateDotFormated();
|
||||||
//отправляем в график данные только когда выбран сегодняшний день
|
//отправляем в график данные только когда выбран сегодняшний день
|
||||||
if (userDate == currentDate) {
|
if (userDate == currentDate) {
|
||||||
generateEvent(_id, value);
|
// generateEvent(_id, value);
|
||||||
publishStatusMqtt(_id, value);
|
// publishStatusMqtt(_id, value);
|
||||||
String json = createSingleJson(_id, value);
|
// String json = createSingleJson(_id, value);
|
||||||
publishChartWs(-1, json);
|
// publishChartWs(-1, json);
|
||||||
SerialPrint("i", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'");
|
// SerialPrint("i", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user