mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
add logging date support
This commit is contained in:
218
Cmd.ino
218
Cmd.ino
@@ -4,8 +4,6 @@ void CMD_init() {
|
|||||||
sCmd.addCommand("buttonSet", buttonSet);
|
sCmd.addCommand("buttonSet", buttonSet);
|
||||||
sCmd.addCommand("buttonChange", buttonChange);
|
sCmd.addCommand("buttonChange", buttonChange);
|
||||||
|
|
||||||
//sCmd.addCommand("button_touch", button_touch);
|
|
||||||
|
|
||||||
sCmd.addCommand("pinSet", pinSet);
|
sCmd.addCommand("pinSet", pinSet);
|
||||||
sCmd.addCommand("pinChange", pinChange);
|
sCmd.addCommand("pinChange", pinChange);
|
||||||
|
|
||||||
@@ -49,22 +47,6 @@ void CMD_init() {
|
|||||||
|
|
||||||
handle_time_init();
|
handle_time_init();
|
||||||
|
|
||||||
//======новые виджеты ver2.0=======//
|
|
||||||
/*
|
|
||||||
sCmd.addCommand("inputText", inputText);
|
|
||||||
sCmd.addCommand("inputTextSet", inputTextSet);
|
|
||||||
|
|
||||||
sCmd.addCommand("inputTime", inputTime);
|
|
||||||
sCmd.addCommand("inputTimeSet", inputTimeSet);
|
|
||||||
|
|
||||||
sCmd.addCommand("inputDate", inputDate);
|
|
||||||
sCmd.addCommand("inputDateSet", inputDateSet);
|
|
||||||
|
|
||||||
sCmd.addCommand("inputDate", inputDate);
|
|
||||||
|
|
||||||
//sCmd.addCommand("inputDropdown", inputDropdown);
|
|
||||||
*/
|
|
||||||
//=================================//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -75,7 +57,7 @@ void button() {
|
|||||||
|
|
||||||
String button_number = sCmd.next();
|
String button_number = sCmd.next();
|
||||||
String button_param = sCmd.next();
|
String button_param = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
@@ -107,7 +89,7 @@ void button() {
|
|||||||
str = deleteBeforeDelimiter(str, ",");
|
str = deleteBeforeDelimiter(str, ",");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.toggle.json", "buttonSet" + button_number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.toggle.json", "buttonSet" + button_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonSet() {
|
void buttonSet() {
|
||||||
@@ -178,8 +160,8 @@ void pwm() {
|
|||||||
static boolean flag = true;
|
static boolean flag = true;
|
||||||
String pwm_number = sCmd.next();
|
String pwm_number = sCmd.next();
|
||||||
String pwm_pin = sCmd.next();
|
String pwm_pin = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
@@ -192,7 +174,7 @@ void pwm() {
|
|||||||
//analogWriteFreq(32000);
|
//analogWriteFreq(32000);
|
||||||
jsonWrite(configJson, "pwmSet" + pwm_number, start_state);
|
jsonWrite(configJson, "pwmSet" + pwm_number, start_state);
|
||||||
|
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.range.json", "pwmSet" + pwm_number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.range.json", "pwmSet" + pwm_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pwmSet() {
|
void pwmSet() {
|
||||||
@@ -250,14 +232,14 @@ void handleButton() {
|
|||||||
void inputDigit() {
|
void inputDigit() {
|
||||||
String value_name = sCmd.next();
|
String value_name = sCmd.next();
|
||||||
String number = value_name.substring(5);
|
String number = value_name.substring(5);
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
jsonWrite(configJson, "digitSet" + number, start_state);
|
jsonWrite(configJson, "digitSet" + number, start_state);
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.inputNum.json", "digitSet" + number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.inputNum.json", "digitSet" + number);
|
||||||
}
|
}
|
||||||
void digitSet() {
|
void digitSet() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
@@ -270,14 +252,14 @@ void digitSet() {
|
|||||||
void inputTime() {
|
void inputTime() {
|
||||||
String value_name = sCmd.next();
|
String value_name = sCmd.next();
|
||||||
String number = value_name.substring(4);
|
String number = value_name.substring(4);
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
jsonWrite(configJson, "timeSet" + number, start_state);
|
jsonWrite(configJson, "timeSet" + number, start_state);
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.inputTime.json", "timeSet" + number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.inputTime.json", "timeSet" + number);
|
||||||
}
|
}
|
||||||
void timeSet() {
|
void timeSet() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
@@ -302,11 +284,11 @@ void handle_time_init() {
|
|||||||
void text() {
|
void text() {
|
||||||
|
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
|
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.anydata.json", "textSet" + number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.anyData.json", "textSet" + number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -389,14 +371,14 @@ void stepperSet() {
|
|||||||
/*
|
/*
|
||||||
void inputText() {
|
void inputText() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
jsonWrite(configJson, "inputTextSet" + number, start_state);
|
jsonWrite(configJson, "inputTextSet" + number, start_state);
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.inputText.json", "inputTextSet" + number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.inputText.json", "inputTextSet" + number);
|
||||||
}
|
}
|
||||||
void inputTextSet() {
|
void inputTextSet() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
@@ -407,14 +389,14 @@ void stepperSet() {
|
|||||||
|
|
||||||
void inputTime() {
|
void inputTime() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
jsonWrite(configJson, "inputTimeSet" + number, start_state);
|
jsonWrite(configJson, "inputTimeSet" + number, start_state);
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.inputTime.json", "inputTimeSet" + number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.inputTime.json", "inputTimeSet" + number);
|
||||||
}
|
}
|
||||||
void inputTimeSet() {
|
void inputTimeSet() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
@@ -428,14 +410,14 @@ void stepperSet() {
|
|||||||
|
|
||||||
void inputDate() {
|
void inputDate() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
jsonWrite(configJson, "inputDateSet" + number, start_state);
|
jsonWrite(configJson, "inputDateSet" + number, start_state);
|
||||||
createViget (viget_name, page_name, page_number, "vigets/viget.inputDate.json", "inputDateSet" + number);
|
createWidget (widget_name, page_name, page_number, "widgets/widget.inputDate.json", "inputDateSet" + number);
|
||||||
}
|
}
|
||||||
void inputDateSet() {
|
void inputDateSet() {
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
@@ -504,7 +486,7 @@ void handleCMD_loop() {
|
|||||||
//=======================================================================================================================================
|
//=======================================================================================================================================
|
||||||
void txtExecution(String file) {
|
void txtExecution(String file) {
|
||||||
|
|
||||||
String command_all = readFile(file, 2048) + "\r\n"; //2048
|
String command_all = readFile(file, 2048) + "\r\n";
|
||||||
|
|
||||||
command_all.replace("\r\n", "\n");
|
command_all.replace("\r\n", "\n");
|
||||||
command_all.replace("\r", "\n");
|
command_all.replace("\r", "\n");
|
||||||
@@ -512,113 +494,133 @@ void txtExecution(String file) {
|
|||||||
while (command_all.length() != 0) {
|
while (command_all.length() != 0) {
|
||||||
|
|
||||||
String tmp = selectToMarker (command_all, "\n");
|
String tmp = selectToMarker (command_all, "\n");
|
||||||
//if (tmp.indexOf("//") < 0)
|
|
||||||
sCmd.readStr(tmp);
|
sCmd.readStr(tmp);
|
||||||
command_all = deleteBeforeDelimiter(command_all, "\n");
|
command_all = deleteBeforeDelimiter(command_all, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void stringExecution(String str) {
|
void stringExecution(String str) {
|
||||||
|
|
||||||
String command_all = str + "\r\n"; //"\r\n"
|
str = str + "\r\n";
|
||||||
|
|
||||||
command_all.replace("\r\n", "\n");
|
str.replace("\r\n", "\n");
|
||||||
command_all.replace("\r", "\n");
|
str.replace("\r", "\n");
|
||||||
|
|
||||||
while (command_all.length() != 0) {
|
while (str.length() != 0) {
|
||||||
|
|
||||||
String tmp = selectToMarker (command_all, "\n");
|
String tmp = selectToMarker (str, "\n");
|
||||||
//if (tmp.indexOf("//") < 0)
|
|
||||||
sCmd.readStr(tmp);
|
sCmd.readStr(tmp);
|
||||||
command_all = deleteBeforeDelimiter(command_all, "\n");
|
str = deleteBeforeDelimiter(str, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//======================================================================================================================
|
//======================================================================================================================
|
||||||
//===============================================Создание виджетов=======================================================
|
//===============================================Создание виджетов=======================================================
|
||||||
|
|
||||||
void createViget (String viget_name, String page_name, String page_number, String file, String topic) {
|
void createWidget (String widget_name, String page_name, String page_number, String file, String topic) {
|
||||||
|
|
||||||
String viget;
|
String widget;
|
||||||
viget = readFile(file, 1024);
|
widget = readFile(file, 1024);
|
||||||
|
|
||||||
if (viget == "Failed") return;
|
if (widget == "Failed") return;
|
||||||
if (viget == "Large") return;
|
if (widget == "Large") return;
|
||||||
|
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
|
|
||||||
jsonWrite(viget, "page", page_name);
|
jsonWrite(widget, "page", page_name);
|
||||||
jsonWrite(viget, "order", page_number);
|
jsonWrite(widget, "order", page_number);
|
||||||
jsonWrite(viget, "descr", viget_name);
|
jsonWrite(widget, "descr", widget_name);
|
||||||
jsonWrite(viget, "topic", prex + "/" + topic);
|
jsonWrite(widget, "topic", prex + "/" + topic);
|
||||||
all_vigets += viget + "\r\n";
|
all_widgets += widget + "\r\n";
|
||||||
viget = "";
|
widget = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
void createChart (String widget_name, String page_name, String page_number, String file, String topic, String maxCount) {
|
||||||
|
|
||||||
|
String widget;
|
||||||
|
widget = readFile(file, 1024);
|
||||||
|
|
||||||
|
if (widget == "Failed") return;
|
||||||
|
if (widget == "Large") return;
|
||||||
|
|
||||||
|
widget_name.replace("#", " ");
|
||||||
|
page_name.replace("#", " ");
|
||||||
|
|
||||||
|
jsonWrite(widget, "page", page_name);
|
||||||
|
jsonWrite(widget, "order", page_number);
|
||||||
|
jsonWrite(widget, "descr", widget_name);
|
||||||
|
jsonWrite(widget, "series", widget_name);
|
||||||
|
jsonWrite(widget, "maxCount", maxCount);
|
||||||
|
jsonWrite(widget, "topic", prex + "/" + topic);
|
||||||
|
all_widgets += widget + "\r\n";
|
||||||
|
widget = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void createViget (String viget_name, String page_name, String page_number, String file, String topic, String key, String value) {
|
void createWidget (String widget_name, String page_name, String page_number, String file, String topic, String key, String value) {
|
||||||
|
|
||||||
String viget;
|
String widget;
|
||||||
viget = readFile(file, 1024);
|
widget = readFile(file, 1024);
|
||||||
|
|
||||||
if (viget == "Failed") return;
|
if (widget == "Failed") return;
|
||||||
if (viget == "Large") return;
|
if (widget == "Large") return;
|
||||||
|
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
|
|
||||||
value.replace("#", " ");
|
value.replace("#", " ");
|
||||||
|
|
||||||
viget = vidgetConfigWrite(viget, key, value);
|
widget = vidgetConfigWrite(widget, key, value);
|
||||||
|
|
||||||
jsonWrite(viget, "page", page_name);
|
jsonWrite(widget, "page", page_name);
|
||||||
jsonWrite(viget, "pageId", page_number);
|
jsonWrite(widget, "pageId", page_number);
|
||||||
jsonWrite(viget, "descr", viget_name);
|
jsonWrite(widget, "descr", widget_name);
|
||||||
jsonWrite(viget, "topic", prex + "/" + topic);
|
jsonWrite(widget, "topic", prex + "/" + topic);
|
||||||
|
|
||||||
all_vigets += viget + "\r\n";
|
all_widgets += widget + "\r\n";
|
||||||
viget = "";
|
widget = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
void createViget (String viget_name, String page_name, String page_number, String file, String topic, String key, String value, String key2, String value2) {
|
void createWidget (String widget_name, String page_name, String page_number, String file, String topic, String key, String value, String key2, String value2) {
|
||||||
|
|
||||||
String viget;
|
String widget;
|
||||||
viget = readFile(file, 1024);
|
widget = readFile(file, 1024);
|
||||||
|
|
||||||
if (viget == "Failed") return;
|
if (widget == "Failed") return;
|
||||||
if (viget == "Large") return;
|
if (widget == "Large") return;
|
||||||
|
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
page_name.replace("#", " ");
|
page_name.replace("#", " ");
|
||||||
|
|
||||||
value.replace("#", " ");
|
value.replace("#", " ");
|
||||||
|
|
||||||
viget = vidgetConfigWrite(viget, key, value);
|
widget = vidgetConfigWrite(widget, key, value);
|
||||||
viget = vidgetConfigWrite(viget, key2, value2);
|
widget = vidgetConfigWrite(widget, key2, value2);
|
||||||
|
|
||||||
jsonWrite(viget, "page", page_name);
|
jsonWrite(widget, "page", page_name);
|
||||||
jsonWrite(viget, "pageId", page_number);
|
jsonWrite(widget, "pageId", page_number);
|
||||||
jsonWrite(viget, "descr", viget_name);
|
jsonWrite(widget, "descr", widget_name);
|
||||||
jsonWrite(viget, "topic", prex + "/" + topic);
|
jsonWrite(widget, "topic", prex + "/" + topic);
|
||||||
|
|
||||||
all_vigets += viget + "\r\n";
|
all_widgets += widget + "\r\n";
|
||||||
viget = "";
|
widget = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
String vidgetConfigWrite(String viget, String key, String value) {
|
String vidgetConfigWrite(String widget, String key, String value) {
|
||||||
|
|
||||||
if (viget == "") return "";
|
if (widget == "") return "";
|
||||||
if (viget == "{}") return "";
|
if (widget == "{}") return "";
|
||||||
int psn1 = viget.indexOf("{");
|
int psn1 = widget.indexOf("{");
|
||||||
if (psn1 != -1) {
|
if (psn1 != -1) {
|
||||||
psn1 = viget.indexOf("{", psn1 + 1);
|
psn1 = widget.indexOf("{", psn1 + 1);
|
||||||
if (psn1 != -1) {
|
if (psn1 != -1) {
|
||||||
int psn2 = viget.indexOf("}", psn1);
|
int psn2 = widget.indexOf("}", psn1);
|
||||||
String WigetConfig = viget.substring(psn1, psn2) + "}";
|
String WigetConfig = widget.substring(psn1, psn2) + "}";
|
||||||
jsonWrite(WigetConfig, key, value);
|
jsonWrite(WigetConfig, key, value);
|
||||||
String part1 = viget.substring(0, psn1);
|
String part1 = widget.substring(0, psn1);
|
||||||
viget = part1 + WigetConfig + "}";
|
widget = part1 + WigetConfig + "}";
|
||||||
return viget;
|
return widget;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -641,23 +643,23 @@ String vidgetConfigWrite(String viget, String key, String value) {
|
|||||||
void delAlert() {
|
void delAlert() {
|
||||||
|
|
||||||
String alert_id = sCmd.next();
|
String alert_id = sCmd.next();
|
||||||
delViget(alert_id);
|
delwidget(alert_id);
|
||||||
sendAllWigets();
|
sendAllWigets();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void delViget(String text_in_viget) {
|
void delwidget(String text_in_widget) {
|
||||||
String viget = all_vigets;
|
String widget = all_widgets;
|
||||||
while (viget.length() != 0) {
|
while (widget.length() != 0) {
|
||||||
String tmp = selectToMarkerPlus (viget, "\r\n", 2);
|
String tmp = selectToMarkerPlus (widget, "\r\n", 2);
|
||||||
if (tmp.indexOf(text_in_viget) > 0) {
|
if (tmp.indexOf(text_in_widget) > 0) {
|
||||||
|
|
||||||
all_vigets.replace(tmp, "");
|
all_widgets.replace(tmp, "");
|
||||||
//Serial.println(all_vigets);
|
//Serial.println(all_widgets);
|
||||||
|
|
||||||
viget = deleteBeforeDelimiter(viget, "\r\n");
|
widget = deleteBeforeDelimiter(widget, "\r\n");
|
||||||
} else {
|
} else {
|
||||||
viget = deleteBeforeDelimiter(viget, "\r\n");
|
widget = deleteBeforeDelimiter(widget, "\r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
Init.ino
2
Init.ino
@@ -43,7 +43,7 @@ void Device_init() {
|
|||||||
ts.remove(STEPPER1);
|
ts.remove(STEPPER1);
|
||||||
ts.remove(STEPPER2);
|
ts.remove(STEPPER2);
|
||||||
|
|
||||||
all_vigets = "";
|
all_widgets = "";
|
||||||
txtExecution("firmware.config.txt");
|
txtExecution("firmware.config.txt");
|
||||||
//outcoming_date();
|
//outcoming_date();
|
||||||
}
|
}
|
||||||
|
|||||||
88
Sensors.ino
88
Sensors.ino
@@ -2,7 +2,7 @@
|
|||||||
//=========================================Модуль аналогового сенсора============================================================
|
//=========================================Модуль аналогового сенсора============================================================
|
||||||
void analog() {
|
void analog() {
|
||||||
String pin = sCmd.next();
|
String pin = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String type = sCmd.next();
|
String type = sCmd.next();
|
||||||
String analog_start = sCmd.next();
|
String analog_start = sCmd.next();
|
||||||
@@ -14,7 +14,7 @@ void analog() {
|
|||||||
jsonWrite(optionJson, "analog_end", analog_end);
|
jsonWrite(optionJson, "analog_end", analog_end);
|
||||||
jsonWrite(optionJson, "analog_start_out", analog_start_out);
|
jsonWrite(optionJson, "analog_start_out", analog_start_out);
|
||||||
jsonWrite(optionJson, "analog_end_out", analog_end_out);
|
jsonWrite(optionJson, "analog_end_out", analog_end_out);
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, type, "analog");
|
choose_widget_and_create(widget_name, page_name, page_number, type, "analog");
|
||||||
ts.add(ANALOG_, analog_update_int, [&](void*) {
|
ts.add(ANALOG_, analog_update_int, [&](void*) {
|
||||||
static int analog_old;
|
static int analog_old;
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
@@ -45,7 +45,7 @@ void analog() {
|
|||||||
//===================================================================================================================================
|
//===================================================================================================================================
|
||||||
//=========================================Модуль измерения уровня в баке============================================================
|
//=========================================Модуль измерения уровня в баке============================================================
|
||||||
void level() {
|
void level() {
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String type = sCmd.next();
|
String type = sCmd.next();
|
||||||
String empty_level = sCmd.next();
|
String empty_level = sCmd.next();
|
||||||
@@ -55,7 +55,7 @@ void level() {
|
|||||||
jsonWrite(optionJson, "full_level", full_level);
|
jsonWrite(optionJson, "full_level", full_level);
|
||||||
pinMode(14, OUTPUT);
|
pinMode(14, OUTPUT);
|
||||||
pinMode(12, INPUT);
|
pinMode(12, INPUT);
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, type, "level");
|
choose_widget_and_create(widget_name, page_name, page_number, type, "level");
|
||||||
ts.add(LEVEL, tank_level_shooting_interval, [&](void*) {
|
ts.add(LEVEL, tank_level_shooting_interval, [&](void*) {
|
||||||
long duration_;
|
long duration_;
|
||||||
int distance_cm;
|
int distance_cm;
|
||||||
@@ -94,7 +94,7 @@ void level() {
|
|||||||
//=========================================Модуль температурного сенсора ds18b20============================================================
|
//=========================================Модуль температурного сенсора ds18b20============================================================
|
||||||
void dallas() {
|
void dallas() {
|
||||||
String pin = sCmd.next();
|
String pin = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String type = sCmd.next();
|
String type = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
@@ -102,7 +102,7 @@ void dallas() {
|
|||||||
sensors.setOneWire(oneWire);
|
sensors.setOneWire(oneWire);
|
||||||
sensors.begin();
|
sensors.begin();
|
||||||
sensors.setResolution(12);
|
sensors.setResolution(12);
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, type, "dallas");
|
choose_widget_and_create(widget_name, page_name, page_number, type, "dallas");
|
||||||
ts.add(DALLAS, temp_update_int, [&](void*) {
|
ts.add(DALLAS, temp_update_int, [&](void*) {
|
||||||
float temp = 0;
|
float temp = 0;
|
||||||
static float temp_old;
|
static float temp_old;
|
||||||
@@ -126,7 +126,7 @@ void dallas() {
|
|||||||
void dhtT() {
|
void dhtT() {
|
||||||
String sensor_type = sCmd.next();
|
String sensor_type = sCmd.next();
|
||||||
String pin = sCmd.next();
|
String pin = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String type = sCmd.next();
|
String type = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
@@ -136,7 +136,7 @@ void dhtT() {
|
|||||||
if (sensor_type == "DHT22") {
|
if (sensor_type == "DHT22") {
|
||||||
dht.setup(pin.toInt(), DHTesp::DHT22);
|
dht.setup(pin.toInt(), DHTesp::DHT22);
|
||||||
}
|
}
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, type, "dhtT");
|
choose_widget_and_create(widget_name, page_name, page_number, type, "dhtT");
|
||||||
ts.add(DHTT, dhtT_update_int, [&](void*) { //dht.getMinimumSamplingPeriod()
|
ts.add(DHTT, dhtT_update_int, [&](void*) { //dht.getMinimumSamplingPeriod()
|
||||||
float value = 0;
|
float value = 0;
|
||||||
static float value_old;
|
static float value_old;
|
||||||
@@ -164,7 +164,7 @@ void dhtT() {
|
|||||||
void dhtH() {
|
void dhtH() {
|
||||||
String sensor_type = sCmd.next();
|
String sensor_type = sCmd.next();
|
||||||
String pin = sCmd.next();
|
String pin = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String type = sCmd.next();
|
String type = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
@@ -174,7 +174,7 @@ void dhtH() {
|
|||||||
if (sensor_type == "DHT22") {
|
if (sensor_type == "DHT22") {
|
||||||
dht.setup(pin.toInt(), DHTesp::DHT22);
|
dht.setup(pin.toInt(), DHTesp::DHT22);
|
||||||
}
|
}
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, type, "dhtH");
|
choose_widget_and_create(widget_name, page_name, page_number, type, "dhtH");
|
||||||
ts.add(DHTH, dhtH_update_int , [&](void*) { //dht.getMinimumSamplingPeriod()
|
ts.add(DHTH, dhtH_update_int , [&](void*) { //dht.getMinimumSamplingPeriod()
|
||||||
int value = 0;
|
int value = 0;
|
||||||
static int value_old;
|
static int value_old;
|
||||||
@@ -199,10 +199,10 @@ void dhtH() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dhtPerception() {
|
void dhtPerception() {
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, "any-data", "dhtPerception");
|
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "dhtPerception");
|
||||||
ts.add(DHTP, dht_calculation_update_int, [&](void*) {
|
ts.add(DHTP, dht_calculation_update_int, [&](void*) {
|
||||||
byte value;
|
byte value;
|
||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
@@ -232,10 +232,10 @@ String perception(byte value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dhtComfort() {
|
void dhtComfort() {
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, "any-data", "dhtComfort");
|
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "dhtComfort");
|
||||||
ts.add(DHTC, dht_calculation_update_int, [&](void*) {
|
ts.add(DHTC, dht_calculation_update_int, [&](void*) {
|
||||||
float value;
|
float value;
|
||||||
ComfortState cf;
|
ComfortState cf;
|
||||||
@@ -288,10 +288,10 @@ void dhtComfort() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dhtDewpoint() {
|
void dhtDewpoint() {
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
choose_viget_and_create(viget_name, page_name, page_number, "any-data", "dhtDewpoint");
|
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "dhtDewpoint");
|
||||||
ts.add(DHTD, dht_calculation_update_int, [&](void*) {
|
ts.add(DHTD, dht_calculation_update_int, [&](void*) {
|
||||||
float value;
|
float value;
|
||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
@@ -309,12 +309,12 @@ void dhtDewpoint() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void choose_viget_and_create(String viget_name, String page_name, String page_number, String type, String topik) {
|
void choose_widget_and_create(String widget_name, String page_name, String page_number, String type, String topik) {
|
||||||
|
|
||||||
if (type == "any-data") createViget (viget_name, page_name, page_number, "vigets/viget.anydata.json", topik);
|
|
||||||
if (type == "progress-line") createViget (viget_name, page_name, page_number, "vigets/viget.progressL.json", topik);
|
|
||||||
if (type == "progress-round") createViget (viget_name, page_name, page_number, "vigets/viget.progressR.json", topik);
|
|
||||||
|
|
||||||
|
if (type == "any-data") createWidget (widget_name, page_name, page_number, "widgets/widget.anyData.json", topik);
|
||||||
|
if (type == "progress-line") createWidget (widget_name, page_name, page_number, "widgets/widget.progLine.json", topik);
|
||||||
|
if (type == "progress-round") createWidget (widget_name, page_name, page_number, "widgets/widget.progRound.json", topik);
|
||||||
|
if (type == "fill-gauge") createWidget (widget_name, page_name, page_number, "widgets/widget.fillGauge.json", topik);
|
||||||
|
|
||||||
}
|
}
|
||||||
//======================================================================================================================
|
//======================================================================================================================
|
||||||
@@ -327,26 +327,24 @@ void logging() {
|
|||||||
String sensor_name = sCmd.next();
|
String sensor_name = sCmd.next();
|
||||||
String period_min = sCmd.next();
|
String period_min = sCmd.next();
|
||||||
String maxCount = sCmd.next();
|
String maxCount = sCmd.next();
|
||||||
String viget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
viget_name.replace("#", " ");
|
widget_name.replace("#", " ");
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
|
|
||||||
if (sensor_name == "analog") jsonWrite(optionJson, "analog_logging_count", maxCount);
|
if (sensor_name == "analog") jsonWrite(optionJson, "analog_logging_count", maxCount);
|
||||||
if (sensor_name == "level") jsonWrite(optionJson, "level_logging_count", maxCount);
|
if (sensor_name == "level") jsonWrite(optionJson, "level_logging_count", maxCount);
|
||||||
if (sensor_name == "dallas") jsonWrite(optionJson, "dallas_logging_count", maxCount);
|
if (sensor_name == "dallas") jsonWrite(optionJson, "dallas_logging_count", maxCount);
|
||||||
if (sensor_name == "ph") jsonWrite(optionJson, "ph_logging_count", maxCount);
|
|
||||||
/*
|
if (sensor_name == "analog") createChart (widget_name, page_name, page_number, "widgets/widget.chart.json", "loganalog", maxCount);
|
||||||
if (sensor_name == "analog") createViget (viget_name, page_name, page_number, "vigets/viget.chart.json", "loganalog", "maxCount", maxCount);
|
if (sensor_name == "level") createChart (widget_name, page_name, page_number, "widgets/widget.chart.json", "loglevel", maxCount);
|
||||||
if (sensor_name == "level") createViget (viget_name, page_name, page_number, "vigets/viget.chart.json", "loglevel", "maxCount", maxCount);
|
if (sensor_name == "dallas") createChart (widget_name, page_name, page_number, "widgets/widget.chart.json", "logdallas", maxCount);
|
||||||
if (sensor_name == "dallas") createViget (viget_name, page_name, page_number, "vigets/viget.chart.json", "logdallas", "maxCount", maxCount);
|
|
||||||
if (sensor_name == "ph") createViget (viget_name, page_name, page_number, "vigets/viget.chart.json", "logph", "maxCount", maxCount);
|
|
||||||
*/
|
|
||||||
if (sensor_name == "analog") {
|
if (sensor_name == "analog") {
|
||||||
flagLoggingAnalog = true;
|
flagLoggingAnalog = true;
|
||||||
ts.remove(ANALOG_LOG);
|
ts.remove(ANALOG_LOG);
|
||||||
ts.add(ANALOG_LOG, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(ANALOG_LOG, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
deleteOldDate("log.analog.txt", jsonReadtoInt(optionJson, "analog_logging_count"), jsonRead(configJson, "analog"), false);
|
deleteOldDate("log.analog.txt", jsonReadtoInt(optionJson, "analog_logging_count"), jsonRead(configJson, "analog"));
|
||||||
}, nullptr, true);
|
}, nullptr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -354,7 +352,7 @@ void logging() {
|
|||||||
flagLoggingLevel = true;
|
flagLoggingLevel = true;
|
||||||
ts.remove(LEVEL_LOG);
|
ts.remove(LEVEL_LOG);
|
||||||
ts.add(LEVEL_LOG, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(LEVEL_LOG, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
deleteOldDate("log.level.txt", jsonReadtoInt(optionJson, "level_logging_count"), jsonRead(configJson, "level"), false);
|
deleteOldDate("log.level.txt", jsonReadtoInt(optionJson, "level_logging_count"), jsonRead(configJson, "level"));
|
||||||
}, nullptr, true);
|
}, nullptr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -362,26 +360,16 @@ void logging() {
|
|||||||
flagLoggingDallas = true;
|
flagLoggingDallas = true;
|
||||||
ts.remove(DALLAS_LOG);
|
ts.remove(DALLAS_LOG);
|
||||||
ts.add(DALLAS_LOG, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(DALLAS_LOG, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
deleteOldDate("log.dallas.txt", jsonReadtoInt(optionJson, "dallas_logging_count"), jsonRead(configJson, "dallas"), false);
|
deleteOldDate("log.dallas.txt", jsonReadtoInt(optionJson, "dallas_logging_count"), jsonRead(configJson, "dallas"));
|
||||||
}, nullptr, true);
|
}, nullptr, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void deleteOldDate(String file, int seted_number_of_lines, String date_to_add, boolean date_time) {
|
void deleteOldDate(String file, int seted_number_of_lines, String date_to_add) {
|
||||||
|
|
||||||
String current_time;
|
|
||||||
|
|
||||||
if (date_time) {
|
|
||||||
current_time = GetDataDigital() + " " + GetTimeWOsec();
|
|
||||||
current_time.replace(".", "");
|
|
||||||
current_time.replace(":", "");
|
|
||||||
} else {
|
|
||||||
current_time = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
String log_date = readFile(file, 5000);
|
String log_date = readFile(file, 5000);
|
||||||
getMemoryLoad("[i] after logging procedure");
|
|
||||||
|
|
||||||
|
//getMemoryLoad("[i] after logging procedure");
|
||||||
//предел количества строк 255
|
//предел количества строк 255
|
||||||
|
|
||||||
log_date.replace("\r\n", "\n");
|
log_date.replace("\r\n", "\n");
|
||||||
@@ -390,7 +378,6 @@ void deleteOldDate(String file, int seted_number_of_lines, String date_to_add, b
|
|||||||
int current_number_of_lines = count(log_date, "\n");
|
int current_number_of_lines = count(log_date, "\n");
|
||||||
Serial.println("[i] in log file " + file + " " + current_number_of_lines + " lines");
|
Serial.println("[i] in log file " + file + " " + current_number_of_lines + " lines");
|
||||||
|
|
||||||
|
|
||||||
if (current_number_of_lines > seted_number_of_lines + 1) {
|
if (current_number_of_lines > seted_number_of_lines + 1) {
|
||||||
SPIFFS.remove("/" + file);
|
SPIFFS.remove("/" + file);
|
||||||
current_number_of_lines = 0;
|
current_number_of_lines = 0;
|
||||||
@@ -401,14 +388,9 @@ void deleteOldDate(String file, int seted_number_of_lines, String date_to_add, b
|
|||||||
}
|
}
|
||||||
if (current_number_of_lines > seted_number_of_lines) {
|
if (current_number_of_lines > seted_number_of_lines) {
|
||||||
log_date = deleteBeforeDelimiter(log_date, "\n");
|
log_date = deleteBeforeDelimiter(log_date, "\n");
|
||||||
log_date += current_time + " " + date_to_add + "\n";
|
log_date += String(GetTimeUnix()) + " " + date_to_add + "\n";
|
||||||
writeFile(file, log_date);
|
writeFile(file, log_date);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (date_time) {
|
addFile(file, String(GetTimeUnix()) + " " + date_to_add);
|
||||||
addFile(file, current_time + " " + date_to_add);
|
|
||||||
} else {
|
|
||||||
addFile(file, date_to_add);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
9
Time.ino
9
Time.ino
@@ -40,14 +40,17 @@ void reconfigTime() {
|
|||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(GetTime());
|
Serial.println(GetTime());
|
||||||
|
|
||||||
time_t now = time(nullptr);
|
|
||||||
Serial.println(now);
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Serial.println("[E] Get time impossible, no wifi connection");
|
Serial.println("[E] Get time impossible, no wifi connection");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Получаем время в формате linux
|
||||||
|
int GetTimeUnix() {
|
||||||
|
time_t now = time(nullptr);
|
||||||
|
return (now);
|
||||||
|
}
|
||||||
// Получение текущего времени
|
// Получение текущего времени
|
||||||
String GetTime() {
|
String GetTime() {
|
||||||
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ void Timer_countdown_init() {
|
|||||||
|
|
||||||
if (old_line != "") {
|
if (old_line != "") {
|
||||||
|
|
||||||
Serial.println(old_line);
|
//Serial.println(old_line);
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ void initUpgrade() {
|
|||||||
Serial.println(last_version);
|
Serial.println(last_version);
|
||||||
|
|
||||||
String tmp = "{}";
|
String tmp = "{}";
|
||||||
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
if (!flash_1mb) {
|
if (!flash_1mb) {
|
||||||
if (last_version != "") {
|
if (last_version != "") {
|
||||||
if (last_version != "error") {
|
if (last_version != "error") {
|
||||||
@@ -30,6 +31,10 @@ void initUpgrade() {
|
|||||||
jsonWrite(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Обновление по воздуху не поддерживается, модуль имеет меньше 4 мб памяти...");
|
jsonWrite(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Обновление по воздуху не поддерживается, модуль имеет меньше 4 мб памяти...");
|
||||||
jsonWrite(tmp, "class", "pop-up");
|
jsonWrite(tmp, "class", "pop-up");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
jsonWrite(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Модуль не подключен к роутеру...");
|
||||||
|
jsonWrite(tmp, "class", "pop-up");
|
||||||
|
}
|
||||||
request->send(200, "text/text", tmp);
|
request->send(200, "text/text", tmp);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ analog 0 Аналоговый#вход,#% Датчики progress-round 310 620
|
|||||||
//значение чтения аналогового входа будут примерно равным
|
//значение чтения аналогового входа будут примерно равным
|
||||||
//при 1 вольте - 310, а при 2 вольтах - 620 (считаем по пропорции)
|
//при 1 вольте - 310, а при 2 вольтах - 620 (считаем по пропорции)
|
||||||
//данная строка переведет диапазон 310-620 в диапазон 1-100 и отобразит в приложении
|
//данная строка переведет диапазон 310-620 в диапазон 1-100 и отобразит в приложении
|
||||||
//варианты отображения: any-data, progress-round, progress-line
|
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
dallas 2 Водонагреватель,#t°C Датчики any-data 1
|
dallas 2 Водонагреватель,#t°C Датчики any-data 1
|
||||||
|
|
||||||
//2 - номер пина датчика
|
//2 - номер пина датчика
|
||||||
//варианты отображения: any-data, progress-round, progress-line
|
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
|
||||||
@@ -5,4 +5,4 @@ dhtPerception Восприятие: Датчики 4
|
|||||||
dhtDewpoint Точка#росы: Датчики 5
|
dhtDewpoint Точка#росы: Датчики 5
|
||||||
|
|
||||||
//2 - номер пина датчика
|
//2 - номер пина датчика
|
||||||
//варианты отображения: any-data, progress-round, progress-line
|
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
|
||||||
@@ -5,4 +5,4 @@ dhtPerception Восприятие: Датчики 4
|
|||||||
dhtDewpoint Точка#росы: Датчики 5
|
dhtDewpoint Точка#росы: Датчики 5
|
||||||
|
|
||||||
//2 - номер пина датчика
|
//2 - номер пина датчика
|
||||||
//варианты отображения: any-data, progress-round, progress-line
|
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
|
||||||
@@ -3,4 +3,7 @@ button 2 13 Прихожая Реле 0 2
|
|||||||
button 3 14 Кухня Реле 0 3
|
button 3 14 Кухня Реле 0 3
|
||||||
pwm 1 3 Яркость#коредор: Реле 1023 4
|
pwm 1 3 Яркость#коредор: Реле 1023 4
|
||||||
pwm 2 4 Яркость#ванная: Реле 510 5
|
pwm 2 4 Яркость#ванная: Реле 510 5
|
||||||
analog 0 Аналоговый#вход,#% Датчики progress-round 1 1024 1 1024 6
|
analog 0 Аналоговый#вход Датчики fill-gauge 1 1023 1 1023 6
|
||||||
|
|
||||||
|
//Это демо конфигурация. В ней показано как связать сценариями кнопки.
|
||||||
|
//Кнопка номер 1 связана с кнопкой 2, 3 и с pwm 2
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
level Вода#в#баке,#% Датчики any-data 125 20 1
|
level Вода#в#баке,#% Датчики fill-gauge 125 20 1
|
||||||
inputDigit digit1 При#скольки#выключить? Датчики 95 2
|
inputDigit digit1 При#скольки#выключить? Датчики 95 2
|
||||||
inputDigit digit2 При#скольки#включить? Датчики 10 3
|
inputDigit digit2 При#скольки#включить? Датчики 10 3
|
||||||
button 1 5 Насос Датчики 0 4
|
button 1 5 Насос Датчики 0 4
|
||||||
@@ -7,4 +7,4 @@ button 2 line1,line2, Автоматический#режим Датчики 1 5
|
|||||||
//125 - это расстояние от датчика до дна бака в сантиметрах
|
//125 - это расстояние от датчика до дна бака в сантиметрах
|
||||||
//20 - это расстояние от датчика до поверхности воды когда бак полный в сантиметрах
|
//20 - это расстояние от датчика до поверхности воды когда бак полный в сантиметрах
|
||||||
//вывод данных будет в процентах заполнения бака
|
//вывод данных будет в процентах заполнения бака
|
||||||
//варианты отображения: any-data, progress-round, progress-line
|
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
|
||||||
@@ -3,4 +3,7 @@ button 2 13 Прихожая Реле 0 2
|
|||||||
button 3 14 Кухня Реле 0 3
|
button 3 14 Кухня Реле 0 3
|
||||||
pwm 1 3 Яркость#коредор: Реле 1023 4
|
pwm 1 3 Яркость#коредор: Реле 1023 4
|
||||||
pwm 2 4 Яркость#ванная: Реле 510 5
|
pwm 2 4 Яркость#ванная: Реле 510 5
|
||||||
analog 0 Аналоговый#вход,#% Датчики progress-round 1 1024 1 1024 6
|
analog 0 Аналоговый#вход Датчики fill-gauge 1 1023 1 1023 6
|
||||||
|
|
||||||
|
//Это демо конфигурация. В ней показано как связать сценариями кнопки.
|
||||||
|
//Кнопка номер 1 связана с кнопкой 2, 3 и с pwm 2
|
||||||
5
data/widgets/widget.chart.json
Normal file
5
data/widgets/widget.chart.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"widget": "chart",
|
||||||
|
"series": "Temperature, °C",
|
||||||
|
"dateFormat": "HH:mm:ss"
|
||||||
|
}
|
||||||
7
data/widgets/widget.fillGauge.json
Normal file
7
data/widgets/widget.fillGauge.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"widget": "fillgauge",
|
||||||
|
"circleColor": "#00FFFF",
|
||||||
|
"textColor": "#FFFFFF",
|
||||||
|
"waveTextColor": "#000000",
|
||||||
|
"waveColor": "#00FFFF"
|
||||||
|
}
|
||||||
41
mqtt.ino
41
mqtt.ino
@@ -135,10 +135,9 @@ void outcoming_date() {
|
|||||||
sendAllWigets();
|
sendAllWigets();
|
||||||
sendAllData();
|
sendAllData();
|
||||||
|
|
||||||
// if (flagLoggingAnalog) sendLogData("log.analog.txt", "loganalog");
|
if (flagLoggingAnalog) sendLogData("log.analog.txt", "loganalog");
|
||||||
// if (flagLoggingPh) sendLogData("log.ph.txt", "logph");
|
if (flagLoggingDallas) sendLogData("log.dallas.txt", "logdallas");
|
||||||
// if (flagLoggingDallas) sendLogData("log.dallas.txt", "logdallas");
|
if (flagLoggingLevel) sendLogData("log.level.txt", "loglevel");
|
||||||
// if (flagLoggingLevel) sendLogData("log.level.txt", "loglevel");
|
|
||||||
|
|
||||||
Serial.println("[V] Sending all date to iot manager completed");
|
Serial.println("[V] Sending all date to iot manager completed");
|
||||||
|
|
||||||
@@ -151,6 +150,13 @@ boolean sendMQTT(String end_of_topik, String data) {
|
|||||||
client.endPublish();
|
client.endPublish();
|
||||||
return send_status;
|
return send_status;
|
||||||
}
|
}
|
||||||
|
boolean sendCHART(String topik, String data) {
|
||||||
|
topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
||||||
|
boolean send_status = client.beginPublish(topik.c_str(), data.length(), false);
|
||||||
|
client.print(data);
|
||||||
|
client.endPublish();
|
||||||
|
return send_status;
|
||||||
|
}
|
||||||
//======================================STATUS==================================================
|
//======================================STATUS==================================================
|
||||||
void sendSTATUS(String topik, String state) {
|
void sendSTATUS(String topik, String state) {
|
||||||
topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
||||||
@@ -166,14 +172,14 @@ void sendCONTROL(String id, String topik, String state) {
|
|||||||
|
|
||||||
//=====================================================ОТПРАВЛЯЕМ ВИДЖЕТЫ========================================================
|
//=====================================================ОТПРАВЛЯЕМ ВИДЖЕТЫ========================================================
|
||||||
void sendAllWigets() {
|
void sendAllWigets() {
|
||||||
if (all_vigets != "") {
|
if (all_widgets != "") {
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
String line;
|
String line;
|
||||||
int psn_1 = 0;
|
int psn_1 = 0;
|
||||||
int psn_2;
|
int psn_2;
|
||||||
do {
|
do {
|
||||||
psn_2 = all_vigets.indexOf("\r\n", psn_1);
|
psn_2 = all_widgets.indexOf("\r\n", psn_1);
|
||||||
line = all_vigets.substring(psn_1, psn_2);
|
line = all_widgets.substring(psn_1, psn_2);
|
||||||
line.replace("\n", "");
|
line.replace("\n", "");
|
||||||
line.replace("\r\n", "");
|
line.replace("\r\n", "");
|
||||||
//jsonWrite(line, "id", String(counter));
|
//jsonWrite(line, "id", String(counter));
|
||||||
@@ -182,8 +188,8 @@ void sendAllWigets() {
|
|||||||
sendMQTT("config", line);
|
sendMQTT("config", line);
|
||||||
Serial.println("[V] " + line);
|
Serial.println("[V] " + line);
|
||||||
psn_1 = psn_2 + 1;
|
psn_1 = psn_2 + 1;
|
||||||
} while (psn_2 + 2 < all_vigets.length());
|
} while (psn_2 + 2 < all_widgets.length());
|
||||||
getMemoryLoad("[i] after send all vigets");
|
getMemoryLoad("[i] after send all widgets");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//=====================================================ОТПРАВЛЯЕМ ДАННЫЕ В ВИДЖЕТЫ ПРИ ОБНОВЛЕНИИ СТРАНИЦЫ========================================================
|
//=====================================================ОТПРАВЛЯЕМ ДАННЫЕ В ВИДЖЕТЫ ПРИ ОБНОВЛЕНИИ СТРАНИЦЫ========================================================
|
||||||
@@ -213,19 +219,28 @@ void sendAllData() { //берет строку json и ключи превра
|
|||||||
void sendLogData(String file, String topic) {
|
void sendLogData(String file, String topic) {
|
||||||
|
|
||||||
String log_date = readFile(file, 5000) + "\r\n";
|
String log_date = readFile(file, 5000) + "\r\n";
|
||||||
getMemoryLoad("[i] after send log date");
|
|
||||||
|
|
||||||
log_date.replace("\r\n", "\n");
|
log_date.replace("\r\n", "\n");
|
||||||
log_date.replace("\r", "\n");
|
log_date.replace("\r", "\n");
|
||||||
|
|
||||||
|
String unix_time;
|
||||||
|
String value;
|
||||||
|
|
||||||
while (log_date.length() != 0) {
|
while (log_date.length() != 0) {
|
||||||
String tmp = selectToMarker (log_date, "\n");
|
String tmp = selectToMarker (log_date, "\n");
|
||||||
|
|
||||||
sendSTATUS(topic, selectFromMarkerToMarker(tmp, " ", 2));
|
unix_time += (selectToMarker (tmp, " ") + ",");
|
||||||
if (tmp != "") sendSTATUS(topic, tmp);
|
value += (deleteBeforeDelimiter(tmp, " ") + ",");
|
||||||
|
|
||||||
log_date = deleteBeforeDelimiter(log_date, "\n");
|
log_date = deleteBeforeDelimiter(log_date, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unix_time.replace(",,", "");
|
||||||
|
value.replace(",,", "");
|
||||||
|
String to_send = "{\"status\":[" + value + "],\"time\": [" + unix_time + "]}";
|
||||||
|
//sendCHART(topic, to_send);
|
||||||
|
|
||||||
|
getMemoryLoad("[i] after send log date");
|
||||||
}
|
}
|
||||||
|
|
||||||
String stateMQTT() {
|
String stateMQTT() {
|
||||||
@@ -313,7 +328,7 @@ String stateMQTT() {
|
|||||||
String state = selectToMarkerLast (tmp, ":"); //"1"
|
String state = selectToMarkerLast (tmp, ":"); //"1"
|
||||||
state.replace("\"", ""); //1
|
state.replace("\"", ""); //1
|
||||||
|
|
||||||
//if (viget.lastIndexOf(topic) > 0) {
|
//if (widget.lastIndexOf(topic) > 0) {
|
||||||
jsonWrite(tmp, "status", state);
|
jsonWrite(tmp, "status", state);
|
||||||
//}
|
//}
|
||||||
current_config = deleteBeforeDelimiter(current_config, ",");
|
current_config = deleteBeforeDelimiter(current_config, ",");
|
||||||
|
|||||||
Reference in New Issue
Block a user