mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +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",
|
||||
"apssid": "IoTmanager",
|
||||
"appass": "",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
//Версия прошивки
|
||||
#define FIRMWARE_VERSION 424
|
||||
#define FIRMWARE_VERSION 425
|
||||
|
||||
#ifdef esp8266_4mb
|
||||
#define FIRMWARE_NAME "esp8266_4mb"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"iotmSettings": {
|
||||
"settings": "",
|
||||
"settings_": "",
|
||||
"name": "IoTmanagerVer4",
|
||||
"apssid": "IoTmanager",
|
||||
"appass": "",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
const String getThisDevice() {
|
||||
String thisDevice = "{}";
|
||||
jsonWriteStr_(thisDevice, F("devicelist"), ""); //метка для парсинга
|
||||
jsonWriteStr_(thisDevice, F("devicelist_"), ""); //метка для парсинга
|
||||
jsonWriteStr_(thisDevice, F("ip"), jsonReadStr(settingsFlashJson, F("ip")));
|
||||
jsonWriteStr_(thisDevice, F("id"), jsonReadStr(settingsFlashJson, F("id")));
|
||||
jsonWriteStr_(thisDevice, F("name"), jsonReadStr(settingsFlashJson, F("name")));
|
||||
@@ -54,7 +54,7 @@ void asyncUdpInit() {
|
||||
|
||||
//будем отправлять каждые 30 секунд презентацию данного устройства
|
||||
ts.add(
|
||||
UDP, 60000, [&](void*) { //UDPP
|
||||
UDP, 60000, [&](void*) { // UDPP
|
||||
if (isNetworkActive()) {
|
||||
SerialPrint("i", F("UDP"), F("Broadcast device presentation"));
|
||||
asyncUdp.broadcastTo(getThisDevice().c_str(), 4210);
|
||||
|
||||
@@ -19,9 +19,8 @@ void globalVarsSync() {
|
||||
jsonWriteStr_(settingsFlashJson, "root", mqttRootDevice);
|
||||
jsonWriteStr_(settingsFlashJson, "id", chipId);
|
||||
|
||||
jsonWriteStr_(errorsHeapJson, "errors", ""); //метка для парсинга
|
||||
jsonWriteStr_(ssidListHeapJson, "ssid", ""); //метка для парсинга
|
||||
// jsonWriteStr(paramsHeapJson, "params", ""); //метка для парсинга
|
||||
jsonWriteStr_(errorsHeapJson, "errors_", ""); //метка для парсинга
|
||||
jsonWriteStr_(ssidListHeapJson, "ssids_", ""); //метка для парсинга
|
||||
}
|
||||
|
||||
String getParamsJson() {
|
||||
|
||||
@@ -22,7 +22,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
case WStype_CONNECTED: {
|
||||
// IPAddress ip = standWebSocket.remoteIP(num);
|
||||
SerialPrint("i", "WS " + String(num), "WS client connected");
|
||||
if (num > 3) {
|
||||
if (num >= 3) {
|
||||
SerialPrint("E", "WS", "Too many clients, connection closed!!!");
|
||||
jsonWriteInt(errorsHeapJson, "wse1", 1);
|
||||
standWebSocket.close();
|
||||
@@ -61,16 +61,18 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
|
||||
//отвечаем на запрос параметров
|
||||
if (headerStr == "/params|") {
|
||||
String json = "{}";
|
||||
jsonWriteStr(json, "params", "");
|
||||
String params = "{}";
|
||||
jsonWriteStr(params, "params_", ""); //метка для парсинга
|
||||
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
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) {
|
||||
//сбрасываем даты графиков
|
||||
@@ -94,6 +96,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
sendFileToWs("/widgets.json", num, 1024);
|
||||
sendFileToWs("/config.json", num, 1024);
|
||||
sendFileToWs("/scenario.json", num, 1024);
|
||||
//шлется для того что бы получить топик устройства
|
||||
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|") {
|
||||
standWebSocket.sendTXT(num, errorsHeapJson);
|
||||
sendFileToWs("/layout.json", num, 1024);
|
||||
standWebSocket.sendTXT(num, settingsFlashJson);
|
||||
sendFileToWs("/config.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");
|
||||
return;
|
||||
}
|
||||
|
||||
//запишем в него данные
|
||||
String topic = mqttRootDevice + "/" + id;
|
||||
logData = "{\"maxCount\":" + String(calculateMaxCount()) + ",\"topic\":\"" + topic + "\",\"status\":[" + logData;
|
||||
if (addFile(path, logData) != "sucсess") {
|
||||
SerialPrint("E", F("Loging"), "'" + id + "' data writing error, return");
|
||||
return;
|
||||
@@ -195,8 +194,7 @@ class Loging : public IoTItem {
|
||||
|
||||
void clearValue() {
|
||||
SerialPrint("i", F("Loging"), "clear chart");
|
||||
String cleanJson = createEmtyJson();
|
||||
// publishJson(cleanJson);
|
||||
sendChartFileToWs("/empty.txt", -1, 1000);
|
||||
}
|
||||
|
||||
void clearHistory() {
|
||||
@@ -238,20 +236,21 @@ class Loging : public IoTItem {
|
||||
configFile.close();
|
||||
// String topic = mqttRootDevice + "/" + id;
|
||||
// oneSingleJson = "{\"maxCount\":" + String(calculateMaxCount()) + ",\"topic\":\"" + topic + "\",\"status\":[" + oneSingleJson + "]}";
|
||||
// oneSingleJson.replace("},]}", "}]}");
|
||||
oneSingleJson += "]}";
|
||||
oneSingleJson.replace("},]}", "}]}");
|
||||
SerialPrint("i", "Loging", "json size: " + String(oneSingleJson.length()));
|
||||
publishChartMqtt(id, oneSingleJson);
|
||||
return true;
|
||||
}
|
||||
|
||||
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) {
|
||||
standWebSocket.broadcastTXT(st);
|
||||
} else {
|
||||
standWebSocket.sendTXT(num, st);
|
||||
}
|
||||
|
||||
String path = filepath(filename);
|
||||
auto file = FileFS.open(path, "r");
|
||||
if (!file) {
|
||||
@@ -271,7 +270,7 @@ class Loging : public IoTItem {
|
||||
countRead = file.read(payload, sizeof(payload));
|
||||
}
|
||||
file.close();
|
||||
String end = "/end/chart.json";
|
||||
String end = "/end/chart.json|" + topic;
|
||||
if (num == -1) {
|
||||
standWebSocket.broadcastTXT(end);
|
||||
} 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) {
|
||||
_publishType = publishType;
|
||||
_wsNum = wsNum;
|
||||
@@ -316,11 +303,11 @@ class Loging : public IoTItem {
|
||||
String currentDate = getTodayDateDotFormated();
|
||||
//отправляем в график данные только когда выбран сегодняшний день
|
||||
if (userDate == currentDate) {
|
||||
generateEvent(_id, value);
|
||||
publishStatusMqtt(_id, value);
|
||||
String json = createSingleJson(_id, value);
|
||||
publishChartWs(-1, json);
|
||||
SerialPrint("i", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'");
|
||||
// generateEvent(_id, value);
|
||||
// publishStatusMqtt(_id, value);
|
||||
// String json = createSingleJson(_id, value);
|
||||
// publishChartWs(-1, json);
|
||||
// SerialPrint("i", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user