mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
changed json var names to more visible
This commit is contained in:
@@ -61,9 +61,9 @@ extern AsyncWebServer server;
|
|||||||
extern boolean just_load;
|
extern boolean just_load;
|
||||||
extern const char *hostName;
|
extern const char *hostName;
|
||||||
|
|
||||||
extern String configSetup;
|
extern String configSetupJson; //все настройки
|
||||||
extern String configJson;
|
extern String configLiveJson; //все данные с датчиков (связан с mqtt)
|
||||||
extern String optionJson;
|
extern String configOptionJson; //для трансфера
|
||||||
|
|
||||||
extern String chipID;
|
extern String chipID;
|
||||||
extern String prex;
|
extern String prex;
|
||||||
@@ -74,7 +74,8 @@ extern String order_loop;
|
|||||||
extern String analog_value_names_list;
|
extern String analog_value_names_list;
|
||||||
extern int enter_to_analog_counter;
|
extern int enter_to_analog_counter;
|
||||||
|
|
||||||
extern String level_value_name;
|
extern String levelPr_value_name;
|
||||||
|
extern String ultrasonicCm_value_name;
|
||||||
|
|
||||||
extern String dhtT_value_name;
|
extern String dhtT_value_name;
|
||||||
extern String dhtH_value_name;
|
extern String dhtH_value_name;
|
||||||
@@ -228,8 +229,8 @@ extern void text();
|
|||||||
extern void textSet();
|
extern void textSet();
|
||||||
extern void mqttOrderSend();
|
extern void mqttOrderSend();
|
||||||
extern void httpOrderSend();
|
extern void httpOrderSend();
|
||||||
extern void firmware();
|
extern void firmwareVersion();
|
||||||
extern void update_firmware();
|
extern void firmwareUpdate();
|
||||||
extern void Scenario_init();
|
extern void Scenario_init();
|
||||||
extern void txtExecution(String file);
|
extern void txtExecution(String file);
|
||||||
extern void stringExecution(String str);
|
extern void stringExecution(String str);
|
||||||
@@ -295,9 +296,11 @@ extern String add_set(String param_name);
|
|||||||
// И как раз тут хорошо просто в Sensors.h это пихать - а не в один здоровенный ФАЙЛ
|
// И как раз тут хорошо просто в Sensors.h это пихать - а не в один здоровенный ФАЙЛ
|
||||||
extern void sensors_init();
|
extern void sensors_init();
|
||||||
|
|
||||||
extern void level();
|
extern void levelPr();
|
||||||
|
extern void ultrasonicCm();
|
||||||
extern void level_reading();
|
extern void level_reading();
|
||||||
|
|
||||||
|
|
||||||
extern void analog();
|
extern void analog();
|
||||||
extern void analog_reading1();
|
extern void analog_reading1();
|
||||||
extern void analog_reading2();
|
extern void analog_reading2();
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
void Push_init() {
|
void Push_init() {
|
||||||
server.on("/pushingboxDate", HTTP_GET, [](AsyncWebServerRequest* request) {
|
server.on("/pushingboxDate", HTTP_GET, [](AsyncWebServerRequest* request) {
|
||||||
if (request->hasArg("pushingbox_id")) {
|
if (request->hasArg("pushingbox_id")) {
|
||||||
jsonWriteStr(configSetup, "pushingbox_id", request->getParam("pushingbox_id")->value());
|
jsonWriteStr(configSetupJson, "pushingbox_id", request->getParam("pushingbox_id")->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
saveConfig();
|
saveConfig();
|
||||||
@@ -23,7 +23,7 @@ inline void pushControl() {
|
|||||||
static String body_old;
|
static String body_old;
|
||||||
|
|
||||||
const char* logServer = "api.pushingbox.com";
|
const char* logServer = "api.pushingbox.com";
|
||||||
String deviceId = jsonReadStr(configSetup, "pushingbox_id");
|
String deviceId = jsonReadStr(configSetupJson, "pushingbox_id");
|
||||||
|
|
||||||
Serial.println("- starting client");
|
Serial.println("- starting client");
|
||||||
|
|
||||||
|
|||||||
302
src/Cmd.cpp
302
src/Cmd.cpp
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
#include "push_pushingbox.h"
|
#include "push_pushingbox.h"
|
||||||
|
|
||||||
void CMD_init() {
|
void CMD_init()
|
||||||
|
{
|
||||||
sCmd.addCommand("button", button);
|
sCmd.addCommand("button", button);
|
||||||
sCmd.addCommand("buttonSet", buttonSet);
|
sCmd.addCommand("buttonSet", buttonSet);
|
||||||
sCmd.addCommand("buttonChange", buttonChange);
|
sCmd.addCommand("buttonChange", buttonChange);
|
||||||
@@ -19,7 +20,8 @@ void CMD_init() {
|
|||||||
sCmd.addCommand("analog", analog);
|
sCmd.addCommand("analog", analog);
|
||||||
#endif
|
#endif
|
||||||
#ifdef level_enable
|
#ifdef level_enable
|
||||||
sCmd.addCommand("level", level);
|
sCmd.addCommand("levelPr", levelPr);
|
||||||
|
sCmd.addCommand("ultrasonicCm", ultrasonicCm);
|
||||||
#endif
|
#endif
|
||||||
#ifdef dallas_enable
|
#ifdef dallas_enable
|
||||||
sCmd.addCommand("dallas", dallas);
|
sCmd.addCommand("dallas", dallas);
|
||||||
@@ -82,13 +84,14 @@ void CMD_init() {
|
|||||||
sCmd.addCommand("push", pushControl);
|
sCmd.addCommand("push", pushControl);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sCmd.addCommand("update", update_firmware);
|
sCmd.addCommand("firmwareUpdate", firmwareUpdate);
|
||||||
sCmd.addCommand("firmware", firmware);
|
sCmd.addCommand("firmwareVersion", firmwareVersion);
|
||||||
|
|
||||||
handle_time_init();
|
handle_time_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void button() {
|
void button()
|
||||||
|
{
|
||||||
String button_number = sCmd.next();
|
String button_number = sCmd.next();
|
||||||
String button_param = sCmd.next();
|
String button_param = sCmd.next();
|
||||||
String widget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
@@ -96,26 +99,31 @@ void button() {
|
|||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
|
|
||||||
jsonWriteStr(optionJson, "button_param" + button_number, button_param);
|
jsonWriteStr(configOptionJson, "button_param" + button_number, button_param);
|
||||||
jsonWriteStr(configJson, "button" + button_number, start_state);
|
jsonWriteStr(configLiveJson, "button" + button_number, start_state);
|
||||||
|
|
||||||
if (isDigitStr(button_param)) {
|
if (isDigitStr(button_param))
|
||||||
|
{
|
||||||
pinMode(button_param.toInt(), OUTPUT);
|
pinMode(button_param.toInt(), OUTPUT);
|
||||||
digitalWrite(button_param.toInt(), start_state.toInt());
|
digitalWrite(button_param.toInt(), start_state.toInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (button_param == "scenario") {
|
if (button_param == "scenario")
|
||||||
jsonWriteStr(configSetup, "scenario", start_state);
|
{
|
||||||
|
jsonWriteStr(configSetupJson, "scenario", start_state);
|
||||||
Scenario_init();
|
Scenario_init();
|
||||||
saveConfig();
|
saveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (button_param.indexOf("line") != -1) {
|
if (button_param.indexOf("line") != -1)
|
||||||
|
{
|
||||||
String str = button_param;
|
String str = button_param;
|
||||||
while (str.length() != 0) {
|
while (str.length() != 0)
|
||||||
if (str == "") return;
|
{
|
||||||
String tmp = selectToMarker(str, ","); //line1,
|
if (str == "")
|
||||||
String number = deleteBeforeDelimiter(tmp, "e"); //1,
|
return;
|
||||||
|
String tmp = selectToMarker(str, ","); //line1,
|
||||||
|
String number = deleteBeforeDelimiter(tmp, "e"); //1,
|
||||||
number.replace(",", "");
|
number.replace(",", "");
|
||||||
Serial.println(number);
|
Serial.println(number);
|
||||||
int number_int = number.toInt();
|
int number_int = number.toInt();
|
||||||
@@ -126,27 +134,33 @@ void button() {
|
|||||||
createWidget(widget_name, page_name, page_number, "widgets/widget.toggle.json", "button" + button_number);
|
createWidget(widget_name, page_name, page_number, "widgets/widget.toggle.json", "button" + button_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonSet() {
|
void buttonSet()
|
||||||
|
{
|
||||||
String button_number = sCmd.next();
|
String button_number = sCmd.next();
|
||||||
String button_state = sCmd.next();
|
String button_state = sCmd.next();
|
||||||
String button_param = jsonReadStr(optionJson, "button_param" + button_number);
|
String button_param = jsonReadStr(configOptionJson, "button_param" + button_number);
|
||||||
|
|
||||||
if (button_param != "na" || button_param != "scenario" || button_param.indexOf("line") != -1) {
|
if (button_param != "na" || button_param != "scenario" || button_param.indexOf("line") != -1)
|
||||||
|
{
|
||||||
digitalWrite(button_param.toInt(), button_state.toInt());
|
digitalWrite(button_param.toInt(), button_state.toInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (button_param == "scenario") {
|
if (button_param == "scenario")
|
||||||
jsonWriteStr(configSetup, "scenario", button_state);
|
{
|
||||||
|
jsonWriteStr(configSetupJson, "scenario", button_state);
|
||||||
Scenario_init();
|
Scenario_init();
|
||||||
saveConfig();
|
saveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (button_param.indexOf("line") != -1) {
|
if (button_param.indexOf("line") != -1)
|
||||||
|
{
|
||||||
String str = button_param;
|
String str = button_param;
|
||||||
while (str.length() != 0) {
|
while (str.length() != 0)
|
||||||
if (str == "") return;
|
{
|
||||||
String tmp = selectToMarker(str, ","); //line1,
|
if (str == "")
|
||||||
String number = deleteBeforeDelimiter(tmp, "e"); //1,
|
return;
|
||||||
|
String tmp = selectToMarker(str, ","); //line1,
|
||||||
|
String number = deleteBeforeDelimiter(tmp, "e"); //1,
|
||||||
number.replace(",", "");
|
number.replace(",", "");
|
||||||
Serial.println(number);
|
Serial.println(number);
|
||||||
int number_int = number.toInt();
|
int number_int = number.toInt();
|
||||||
@@ -157,37 +171,44 @@ void buttonSet() {
|
|||||||
|
|
||||||
eventGen("button", button_number);
|
eventGen("button", button_number);
|
||||||
|
|
||||||
jsonWriteStr(configJson, "button" + button_number, button_state);
|
jsonWriteStr(configLiveJson, "button" + button_number, button_state);
|
||||||
sendSTATUS("button" + button_number, button_state);
|
sendSTATUS("button" + button_number, button_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonChange() {
|
void buttonChange()
|
||||||
|
{
|
||||||
String button_number = sCmd.next();
|
String button_number = sCmd.next();
|
||||||
String current_state = jsonReadStr(configJson, "button" + button_number);
|
String current_state = jsonReadStr(configLiveJson, "button" + button_number);
|
||||||
if (current_state == "1") {
|
if (current_state == "1")
|
||||||
|
{
|
||||||
current_state = "0";
|
current_state = "0";
|
||||||
} else if (current_state == "0") {
|
}
|
||||||
|
else if (current_state == "0")
|
||||||
|
{
|
||||||
current_state = "1";
|
current_state = "1";
|
||||||
}
|
}
|
||||||
order_loop += "buttonSet " + button_number + " " + current_state + ",";
|
order_loop += "buttonSet " + button_number + " " + current_state + ",";
|
||||||
jsonWriteStr(configJson, "button" + button_number, current_state);
|
jsonWriteStr(configLiveJson, "button" + button_number, current_state);
|
||||||
sendSTATUS("button" + button_number, current_state);
|
sendSTATUS("button" + button_number, current_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pinSet() {
|
void pinSet()
|
||||||
|
{
|
||||||
String pin_number = sCmd.next();
|
String pin_number = sCmd.next();
|
||||||
String pin_state = sCmd.next();
|
String pin_state = sCmd.next();
|
||||||
pinMode(pin_number.toInt(), OUTPUT);
|
pinMode(pin_number.toInt(), OUTPUT);
|
||||||
digitalWrite(pin_number.toInt(), pin_state.toInt());
|
digitalWrite(pin_number.toInt(), pin_state.toInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
void pinChange() {
|
void pinChange()
|
||||||
|
{
|
||||||
String pin_number = sCmd.next();
|
String pin_number = sCmd.next();
|
||||||
pinMode(pin_number.toInt(), OUTPUT);
|
pinMode(pin_number.toInt(), OUTPUT);
|
||||||
digitalWrite(pin_number.toInt(), !digitalRead(pin_number.toInt()));
|
digitalWrite(pin_number.toInt(), !digitalRead(pin_number.toInt()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void pwm() {
|
void pwm()
|
||||||
|
{
|
||||||
// TODO Unused
|
// TODO Unused
|
||||||
// static boolean flag = true;
|
// static boolean flag = true;
|
||||||
String pwm_number = sCmd.next();
|
String pwm_number = sCmd.next();
|
||||||
@@ -199,29 +220,31 @@ void pwm() {
|
|||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
|
|
||||||
uint8_t pwm_pin_int = pwm_pin.toInt();
|
uint8_t pwm_pin_int = pwm_pin.toInt();
|
||||||
jsonWriteStr(optionJson, "pwm_pin" + pwm_number, pwm_pin);
|
jsonWriteStr(configOptionJson, "pwm_pin" + pwm_number, pwm_pin);
|
||||||
pinMode(pwm_pin_int, INPUT);
|
pinMode(pwm_pin_int, INPUT);
|
||||||
analogWrite(pwm_pin_int, start_state.toInt());
|
analogWrite(pwm_pin_int, start_state.toInt());
|
||||||
jsonWriteStr(configJson, "pwm" + pwm_number, start_state);
|
jsonWriteStr(configLiveJson, "pwm" + pwm_number, start_state);
|
||||||
createWidget(widget_name, page_name, page_number, "widgets/widget.range.json", "pwm" + pwm_number);
|
createWidget(widget_name, page_name, page_number, "widgets/widget.range.json", "pwm" + pwm_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pwmSet() {
|
void pwmSet()
|
||||||
|
{
|
||||||
String pwm_number = sCmd.next();
|
String pwm_number = sCmd.next();
|
||||||
String pwm_state = sCmd.next();
|
String pwm_state = sCmd.next();
|
||||||
int pwm_state_int = pwm_state.toInt();
|
int pwm_state_int = pwm_state.toInt();
|
||||||
|
|
||||||
int pin = jsonReadInt(optionJson, "pwm_pin" + pwm_number);
|
int pin = jsonReadInt(configOptionJson, "pwm_pin" + pwm_number);
|
||||||
analogWrite(pin, pwm_state_int);
|
analogWrite(pin, pwm_state_int);
|
||||||
|
|
||||||
eventGen("pwm", pwm_number);
|
eventGen("pwm", pwm_number);
|
||||||
|
|
||||||
jsonWriteStr(configJson, "pwm" + pwm_number, pwm_state);
|
jsonWriteStr(configLiveJson, "pwm" + pwm_number, pwm_state);
|
||||||
sendSTATUS("pwm" + pwm_number, pwm_state);
|
sendSTATUS("pwm" + pwm_number, pwm_state);
|
||||||
}
|
}
|
||||||
//==================================================================================================================
|
//==================================================================================================================
|
||||||
//==========================================Модуль физической кнопки================================================
|
//==========================================Модуль физической кнопки================================================
|
||||||
void switch_() {
|
void switch_()
|
||||||
|
{
|
||||||
String switch_number = sCmd.next();
|
String switch_number = sCmd.next();
|
||||||
String switch_pin = sCmd.next();
|
String switch_pin = sCmd.next();
|
||||||
String switch_delay = sCmd.next();
|
String switch_delay = sCmd.next();
|
||||||
@@ -231,27 +254,33 @@ void switch_() {
|
|||||||
but[switch_number.toInt()] = true;
|
but[switch_number.toInt()] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleButton() {
|
void handleButton()
|
||||||
|
{
|
||||||
static uint8_t switch_number = 1;
|
static uint8_t switch_number = 1;
|
||||||
|
|
||||||
if (but[switch_number]) {
|
if (but[switch_number])
|
||||||
|
{
|
||||||
buttons[switch_number].update();
|
buttons[switch_number].update();
|
||||||
if (buttons[switch_number].fell()) {
|
if (buttons[switch_number].fell())
|
||||||
|
{
|
||||||
eventGen("switch", String(switch_number));
|
eventGen("switch", String(switch_number));
|
||||||
|
|
||||||
jsonWriteStr(configJson, "switch" + String(switch_number), "1");
|
jsonWriteStr(configLiveJson, "switch" + String(switch_number), "1");
|
||||||
}
|
}
|
||||||
if (buttons[switch_number].rose()) {
|
if (buttons[switch_number].rose())
|
||||||
|
{
|
||||||
eventGen("switch", String(switch_number));
|
eventGen("switch", String(switch_number));
|
||||||
|
|
||||||
jsonWriteStr(configJson, "switch" + String(switch_number), "0");
|
jsonWriteStr(configLiveJson, "switch" + String(switch_number), "0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch_number++;
|
switch_number++;
|
||||||
if (switch_number == NUM_BUTTONS) switch_number = 0;
|
if (switch_number == NUM_BUTTONS)
|
||||||
|
switch_number = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
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 widget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
@@ -260,18 +289,20 @@ void inputDigit() {
|
|||||||
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();
|
||||||
jsonWriteStr(configJson, "digit" + number, start_state);
|
jsonWriteStr(configLiveJson, "digit" + number, start_state);
|
||||||
createWidget(widget_name, page_name, page_number, "widgets/widget.inputNum.json", "digit" + number);
|
createWidget(widget_name, page_name, page_number, "widgets/widget.inputNum.json", "digit" + number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void digitSet() {
|
void digitSet()
|
||||||
|
{
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String value = sCmd.next();
|
String value = sCmd.next();
|
||||||
jsonWriteStr(configJson, "digit" + number, value);
|
jsonWriteStr(configLiveJson, "digit" + number, value);
|
||||||
sendSTATUS("digit" + number, value);
|
sendSTATUS("digit" + number, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
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 widget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
@@ -280,30 +311,33 @@ void inputTime() {
|
|||||||
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();
|
||||||
jsonWriteStr(configJson, "time" + number, start_state);
|
jsonWriteStr(configLiveJson, "time" + number, start_state);
|
||||||
createWidget(widget_name, page_name, page_number, "widgets/widget.inputTime.json", "time" + number);
|
createWidget(widget_name, page_name, page_number, "widgets/widget.inputTime.json", "time" + number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void timeSet() {
|
void timeSet()
|
||||||
|
{
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String value = sCmd.next();
|
String value = sCmd.next();
|
||||||
jsonWriteStr(configJson, "time" + number, value);
|
jsonWriteStr(configLiveJson, "time" + number, value);
|
||||||
sendSTATUS("time" + number, value);
|
sendSTATUS("time" + number, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void handle_time_init() {
|
void handle_time_init()
|
||||||
|
{
|
||||||
ts.add(
|
ts.add(
|
||||||
TIME, 1000, [&](void*) {
|
TIME, 1000, [&](void *) {
|
||||||
String tmp = GetTime();
|
String tmp = GetTime();
|
||||||
jsonWriteStr(configJson, "time", tmp);
|
jsonWriteStr(configLiveJson, "time", tmp);
|
||||||
tmp.replace(":", "-");
|
tmp.replace(":", "-");
|
||||||
jsonWriteStr(configJson, "timenow", tmp);
|
jsonWriteStr(configLiveJson, "timenow", tmp);
|
||||||
eventGen("timenow", "");
|
eventGen("timenow", "");
|
||||||
},
|
},
|
||||||
nullptr, true);
|
nullptr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void text() {
|
void text()
|
||||||
|
{
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String widget_name = sCmd.next();
|
String widget_name = sCmd.next();
|
||||||
String page_name = sCmd.next();
|
String page_name = sCmd.next();
|
||||||
@@ -312,12 +346,14 @@ void text() {
|
|||||||
createWidget(widget_name, page_name, page_number, "widgets/widget.anyData.json", "text" + number);
|
createWidget(widget_name, page_name, page_number, "widgets/widget.anyData.json", "text" + number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void textSet() {
|
void textSet()
|
||||||
|
{
|
||||||
String number = sCmd.next();
|
String number = sCmd.next();
|
||||||
String text = sCmd.next();
|
String text = sCmd.next();
|
||||||
text.replace("_", " ");
|
text.replace("_", " ");
|
||||||
|
|
||||||
if (text.indexOf("-time") >= 0) {
|
if (text.indexOf("-time") >= 0)
|
||||||
|
{
|
||||||
text.replace("-time", "");
|
text.replace("-time", "");
|
||||||
text.replace("#", " ");
|
text.replace("#", " ");
|
||||||
String time = GetTime();
|
String time = GetTime();
|
||||||
@@ -325,44 +361,50 @@ void textSet() {
|
|||||||
text = text + " " + GetDataDigital() + " " + time;
|
text = text + " " + GetDataDigital() + " " + time;
|
||||||
}
|
}
|
||||||
|
|
||||||
jsonWriteStr(configJson, "text" + number, text);
|
jsonWriteStr(configLiveJson, "text" + number, text);
|
||||||
sendSTATUS("text" + number, text);
|
sendSTATUS("text" + number, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef stepper_enable
|
#ifdef stepper_enable
|
||||||
//stepper 1 12 13
|
//stepper 1 12 13
|
||||||
void stepper() {
|
void stepper()
|
||||||
|
{
|
||||||
String stepper_number = sCmd.next();
|
String stepper_number = sCmd.next();
|
||||||
String pin_step = sCmd.next();
|
String pin_step = sCmd.next();
|
||||||
String pin_dir = sCmd.next();
|
String pin_dir = sCmd.next();
|
||||||
|
|
||||||
jsonWriteStr(optionJson, "stepper" + stepper_number, pin_step + " " + pin_dir);
|
jsonWriteStr(configOptionJson, "stepper" + stepper_number, pin_step + " " + pin_dir);
|
||||||
pinMode(pin_step.toInt(), OUTPUT);
|
pinMode(pin_step.toInt(), OUTPUT);
|
||||||
pinMode(pin_dir.toInt(), OUTPUT);
|
pinMode(pin_dir.toInt(), OUTPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
//stepperSet 1 100 5
|
//stepperSet 1 100 5
|
||||||
void stepperSet() {
|
void stepperSet()
|
||||||
|
{
|
||||||
String stepper_number = sCmd.next();
|
String stepper_number = sCmd.next();
|
||||||
String steps = sCmd.next();
|
String steps = sCmd.next();
|
||||||
jsonWriteStr(optionJson, "steps" + stepper_number, steps);
|
jsonWriteStr(configOptionJson, "steps" + stepper_number, steps);
|
||||||
String stepper_speed = sCmd.next();
|
String stepper_speed = sCmd.next();
|
||||||
String pin_step = selectToMarker(jsonReadStr(optionJson, "stepper" + stepper_number), " ");
|
String pin_step = selectToMarker(jsonReadStr(configOptionJson, "stepper" + stepper_number), " ");
|
||||||
String pin_dir = deleteBeforeDelimiter(jsonReadStr(optionJson, "stepper" + stepper_number), " ");
|
String pin_dir = deleteBeforeDelimiter(jsonReadStr(configOptionJson, "stepper" + stepper_number), " ");
|
||||||
Serial.println(pin_step);
|
Serial.println(pin_step);
|
||||||
Serial.println(pin_dir);
|
Serial.println(pin_dir);
|
||||||
if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH);
|
if (steps.toInt() > 0)
|
||||||
if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW);
|
digitalWrite(pin_dir.toInt(), HIGH);
|
||||||
if (stepper_number == "1") {
|
if (steps.toInt() < 0)
|
||||||
|
digitalWrite(pin_dir.toInt(), LOW);
|
||||||
|
if (stepper_number == "1")
|
||||||
|
{
|
||||||
ts.add(
|
ts.add(
|
||||||
STEPPER1, stepper_speed.toInt(), [&](void*) {
|
STEPPER1, stepper_speed.toInt(), [&](void *) {
|
||||||
int steps_int = abs(jsonReadInt(optionJson, "steps1") * 2);
|
int steps_int = abs(jsonReadInt(configOptionJson, "steps1") * 2);
|
||||||
static int count;
|
static int count;
|
||||||
count++;
|
count++;
|
||||||
String pin_step = selectToMarker(jsonReadStr(optionJson, "stepper1"), " ");
|
String pin_step = selectToMarker(jsonReadStr(configOptionJson, "stepper1"), " ");
|
||||||
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
||||||
yield();
|
yield();
|
||||||
if (count > steps_int) {
|
if (count > steps_int)
|
||||||
|
{
|
||||||
digitalWrite(pin_step.toInt(), LOW);
|
digitalWrite(pin_step.toInt(), LOW);
|
||||||
ts.remove(STEPPER1);
|
ts.remove(STEPPER1);
|
||||||
count = 0;
|
count = 0;
|
||||||
@@ -370,16 +412,18 @@ void stepperSet() {
|
|||||||
},
|
},
|
||||||
nullptr, true);
|
nullptr, true);
|
||||||
}
|
}
|
||||||
if (stepper_number == "2") {
|
if (stepper_number == "2")
|
||||||
|
{
|
||||||
ts.add(
|
ts.add(
|
||||||
STEPPER2, stepper_speed.toInt(), [&](void*) {
|
STEPPER2, stepper_speed.toInt(), [&](void *) {
|
||||||
int steps_int = abs(jsonReadInt(optionJson, "steps2") * 2);
|
int steps_int = abs(jsonReadInt(configOptionJson, "steps2") * 2);
|
||||||
static int count;
|
static int count;
|
||||||
count++;
|
count++;
|
||||||
String pin_step = selectToMarker(jsonReadStr(optionJson, "stepper2"), " ");
|
String pin_step = selectToMarker(jsonReadStr(configOptionJson, "stepper2"), " ");
|
||||||
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
||||||
yield();
|
yield();
|
||||||
if (count > steps_int) {
|
if (count > steps_int)
|
||||||
|
{
|
||||||
digitalWrite(pin_step.toInt(), LOW);
|
digitalWrite(pin_step.toInt(), LOW);
|
||||||
ts.remove(STEPPER2);
|
ts.remove(STEPPER2);
|
||||||
count = 0;
|
count = 0;
|
||||||
@@ -393,7 +437,8 @@ void stepperSet() {
|
|||||||
//=================================================================Сервоприводы=======================================================================
|
//=================================================================Сервоприводы=======================================================================
|
||||||
#ifdef servo_enable
|
#ifdef servo_enable
|
||||||
//servo 1 13 50 Мой#сервопривод Сервоприводы 0 100 0 180 2
|
//servo 1 13 50 Мой#сервопривод Сервоприводы 0 100 0 180 2
|
||||||
void servo_() {
|
void servo_()
|
||||||
|
{
|
||||||
String servo_number = sCmd.next();
|
String servo_number = sCmd.next();
|
||||||
String servo_pin = sCmd.next();
|
String servo_pin = sCmd.next();
|
||||||
String start_state = sCmd.next();
|
String start_state = sCmd.next();
|
||||||
@@ -409,10 +454,11 @@ void servo_() {
|
|||||||
|
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
|
|
||||||
jsonWriteStr(optionJson, "servo_pin" + servo_number, servo_pin);
|
jsonWriteStr(configOptionJson, "servo_pin" + servo_number, servo_pin);
|
||||||
start_state_int = map(start_state_int, min_value.toInt(), max_value.toInt(), min_deg.toInt(), max_deg.toInt());
|
start_state_int = map(start_state_int, min_value.toInt(), max_value.toInt(), min_deg.toInt(), max_deg.toInt());
|
||||||
|
|
||||||
if (servo_number == "1") {
|
if (servo_number == "1")
|
||||||
|
{
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
myServo1.attach(servo_pin.toInt());
|
myServo1.attach(servo_pin.toInt());
|
||||||
myServo1.write(start_state_int);
|
myServo1.write(start_state_int);
|
||||||
@@ -423,7 +469,8 @@ void servo_() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (servo_number == "2") {
|
if (servo_number == "2")
|
||||||
|
{
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
myServo2.attach(servo_pin.toInt());
|
myServo2.attach(servo_pin.toInt());
|
||||||
myServo2.write(start_state_int);
|
myServo2.write(start_state_int);
|
||||||
@@ -434,31 +481,33 @@ void servo_() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
jsonWriteStr(optionJson, "s_min_val" + servo_number, min_value);
|
jsonWriteStr(configOptionJson, "s_min_val" + servo_number, min_value);
|
||||||
jsonWriteStr(optionJson, "s_max_val" + servo_number, max_value);
|
jsonWriteStr(configOptionJson, "s_max_val" + servo_number, max_value);
|
||||||
jsonWriteStr(optionJson, "s_min_deg" + servo_number, min_deg);
|
jsonWriteStr(configOptionJson, "s_min_deg" + servo_number, min_deg);
|
||||||
jsonWriteStr(optionJson, "s_max_deg" + servo_number, max_deg);
|
jsonWriteStr(configOptionJson, "s_max_deg" + servo_number, max_deg);
|
||||||
|
|
||||||
jsonWriteStr(configJson, "servo" + servo_number, start_state);
|
jsonWriteStr(configLiveJson, "servo" + servo_number, start_state);
|
||||||
|
|
||||||
createWidgetParam(widget_name, page_name, page_number, "widgets/widget.range.json", "servo" + servo_number, "min", min_value, "max", max_value, "k", "1");
|
createWidgetParam(widget_name, page_name, page_number, "widgets/widget.range.json", "servo" + servo_number, "min", min_value, "max", max_value, "k", "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
void servoSet() {
|
void servoSet()
|
||||||
|
{
|
||||||
String servo_number = sCmd.next();
|
String servo_number = sCmd.next();
|
||||||
String servo_state = sCmd.next();
|
String servo_state = sCmd.next();
|
||||||
int servo_state_int = servo_state.toInt();
|
int servo_state_int = servo_state.toInt();
|
||||||
|
|
||||||
// TODO Unused
|
// TODO Unused
|
||||||
//int pin = jsonReadInt(optionJson, "servo_pin" + servo_number);
|
//int pin = jsonReadInt(configOptionJson, "servo_pin" + servo_number);
|
||||||
|
|
||||||
servo_state_int = map(servo_state_int,
|
servo_state_int = map(servo_state_int,
|
||||||
jsonReadInt(optionJson, "s_min_val" + servo_number),
|
jsonReadInt(configOptionJson, "s_min_val" + servo_number),
|
||||||
jsonReadInt(optionJson, "s_max_val" + servo_number),
|
jsonReadInt(configOptionJson, "s_max_val" + servo_number),
|
||||||
jsonReadInt(optionJson, "s_min_deg" + servo_number),
|
jsonReadInt(configOptionJson, "s_min_deg" + servo_number),
|
||||||
jsonReadInt(optionJson, "s_max_deg" + servo_number));
|
jsonReadInt(configOptionJson, "s_max_deg" + servo_number));
|
||||||
|
|
||||||
if (servo_number == "1") {
|
if (servo_number == "1")
|
||||||
|
{
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
myServo1.write(servo_state_int);
|
myServo1.write(servo_state_int);
|
||||||
#endif
|
#endif
|
||||||
@@ -467,7 +516,8 @@ void servoSet() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (servo_number == "2") {
|
if (servo_number == "2")
|
||||||
|
{
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
myServo2.write(servo_state_int);
|
myServo2.write(servo_state_int);
|
||||||
#endif
|
#endif
|
||||||
@@ -478,14 +528,15 @@ void servoSet() {
|
|||||||
|
|
||||||
eventGen("servo", servo_number);
|
eventGen("servo", servo_number);
|
||||||
|
|
||||||
jsonWriteStr(configJson, "servo" + servo_number, servo_state);
|
jsonWriteStr(configLiveJson, "servo" + servo_number, servo_state);
|
||||||
sendSTATUS("servo" + servo_number, servo_state);
|
sendSTATUS("servo" + servo_number, servo_state);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
//====================================================================================================================================================
|
//====================================================================================================================================================
|
||||||
//===================================================================================serial===========================================================
|
//===================================================================================serial===========================================================
|
||||||
#ifdef serial_enable
|
#ifdef serial_enable
|
||||||
void serialBegin() {
|
void serialBegin()
|
||||||
|
{
|
||||||
//String s_speed = sCmd.next();
|
//String s_speed = sCmd.next();
|
||||||
//String rxPin = sCmd.next();
|
//String rxPin = sCmd.next();
|
||||||
//String txPin = sCmd.next();
|
//String txPin = sCmd.next();
|
||||||
@@ -493,7 +544,8 @@ void serialBegin() {
|
|||||||
//mySerial.begin(s_speed.toInt());
|
//mySerial.begin(s_speed.toInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialWrite() {
|
void serialWrite()
|
||||||
|
{
|
||||||
//String text = sCmd.next();
|
//String text = sCmd.next();
|
||||||
//mySerial.println(text);
|
//mySerial.println(text);
|
||||||
}
|
}
|
||||||
@@ -501,15 +553,17 @@ void serialWrite() {
|
|||||||
//====================================================================================================================================================
|
//====================================================================================================================================================
|
||||||
//=================================================Глобальные команды удаленного управления===========================================================
|
//=================================================Глобальные команды удаленного управления===========================================================
|
||||||
|
|
||||||
void mqttOrderSend() {
|
void mqttOrderSend()
|
||||||
|
{
|
||||||
String id = sCmd.next();
|
String id = sCmd.next();
|
||||||
String order = sCmd.next();
|
String order = sCmd.next();
|
||||||
|
|
||||||
String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/order";
|
String all_line = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/order";
|
||||||
client_mqtt.publish(all_line.c_str(), order.c_str(), false);
|
client_mqtt.publish(all_line.c_str(), order.c_str(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void httpOrderSend() {
|
void httpOrderSend()
|
||||||
|
{
|
||||||
String ip = sCmd.next();
|
String ip = sCmd.next();
|
||||||
String order = sCmd.next();
|
String order = sCmd.next();
|
||||||
order.replace("_", "%20");
|
order.replace("_", "%20");
|
||||||
@@ -517,36 +571,40 @@ void httpOrderSend() {
|
|||||||
getURL(url);
|
getURL(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
void update_firmware() {
|
void firmwareUpdate() {
|
||||||
upgrade = true;
|
upgrade = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void firmware() {
|
void firmwareVersion() {
|
||||||
String widget_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();
|
||||||
jsonWriteStr(configJson, "firm1", firmware_version);
|
jsonWriteStr(configLiveJson, "firmver", firmware_version);
|
||||||
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "firm1");
|
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "firmver");
|
||||||
}
|
}
|
||||||
|
|
||||||
//==============================================================================================================================
|
//==============================================================================================================================
|
||||||
//============================выполнение команд (в лупе) по очереди из строки order=============================================
|
//============================выполнение команд (в лупе) по очереди из строки order=============================================
|
||||||
void handleCMD_loop() {
|
void handleCMD_loop()
|
||||||
if (order_loop != "") {
|
{
|
||||||
String tmp = selectToMarker(order_loop, ","); //выделяем из страки order первую команду rel 5 1,
|
if (order_loop != "")
|
||||||
sCmd.readStr(tmp); //выполняем первую команду
|
{
|
||||||
|
String tmp = selectToMarker(order_loop, ","); //выделяем из страки order первую команду rel 5 1,
|
||||||
|
sCmd.readStr(tmp); //выполняем первую команду
|
||||||
Serial.println("[ORDER] => " + order_loop);
|
Serial.println("[ORDER] => " + order_loop);
|
||||||
order_loop = deleteBeforeDelimiter(order_loop, ","); //осекаем выполненную команду
|
order_loop = deleteBeforeDelimiter(order_loop, ","); //осекаем выполненную команду
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void txtExecution(String file) {
|
void txtExecution(String file)
|
||||||
|
{
|
||||||
String command_all = readFile(file, 2048) + "\r\n";
|
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");
|
||||||
|
|
||||||
while (command_all.length() != 0) {
|
while (command_all.length() != 0)
|
||||||
|
{
|
||||||
String tmp = selectToMarker(command_all, "\n");
|
String tmp = selectToMarker(command_all, "\n");
|
||||||
sCmd.readStr(tmp);
|
sCmd.readStr(tmp);
|
||||||
command_all = deleteBeforeDelimiter(command_all, "\n");
|
command_all = deleteBeforeDelimiter(command_all, "\n");
|
||||||
@@ -554,13 +612,15 @@ void txtExecution(String file) {
|
|||||||
command_all = "";
|
command_all = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
void stringExecution(String str) {
|
void stringExecution(String str)
|
||||||
|
{
|
||||||
str = str + "\r\n";
|
str = str + "\r\n";
|
||||||
|
|
||||||
str.replace("\r\n", "\n");
|
str.replace("\r\n", "\n");
|
||||||
str.replace("\r", "\n");
|
str.replace("\r", "\n");
|
||||||
|
|
||||||
while (str.length()) {
|
while (str.length())
|
||||||
|
{
|
||||||
String tmp = selectToMarker(str, "\n");
|
String tmp = selectToMarker(str, "\n");
|
||||||
sCmd.readStr(tmp);
|
sCmd.readStr(tmp);
|
||||||
|
|
||||||
|
|||||||
@@ -6,28 +6,28 @@ void File_system_init() {
|
|||||||
Serial.println("--------------started----------------");
|
Serial.println("--------------started----------------");
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
SPIFFS.begin();
|
SPIFFS.begin();
|
||||||
configSetup = readFile("config.json", 4096);
|
configSetupJson = readFile("config.json", 4096);
|
||||||
configSetup.replace(" ", "");
|
configSetupJson.replace(" ", "");
|
||||||
configSetup.replace("\r\n", "");
|
configSetupJson.replace("\r\n", "");
|
||||||
Serial.println(configSetup);
|
Serial.println(configSetupJson);
|
||||||
jsonWriteStr(configJson, "name", jsonReadStr(configSetup, "name"));
|
jsonWriteStr(configLiveJson, "name", jsonReadStr(configSetupJson, "name"));
|
||||||
jsonWriteStr(configJson, "lang", jsonReadStr(configSetup, "lang"));
|
jsonWriteStr(configLiveJson, "lang", jsonReadStr(configSetupJson, "lang"));
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
uint32_t chipID_u = ESP.getEfuseMac();
|
uint32_t chipID_u = ESP.getEfuseMac();
|
||||||
chipID = String(chipID_u);
|
chipID = String(chipID_u);
|
||||||
jsonWriteStr(configSetup, "chipID", chipID);
|
jsonWriteStr(configSetupJson, "chipID", chipID);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
chipID = String(ESP.getChipId()) + "-" + String(ESP.getFlashChipId());
|
chipID = String(ESP.getChipId()) + "-" + String(ESP.getFlashChipId());
|
||||||
jsonWriteStr(configSetup, "chipID", chipID);
|
jsonWriteStr(configSetupJson, "chipID", chipID);
|
||||||
Serial.setDebugOutput(0);
|
Serial.setDebugOutput(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
jsonWriteStr(configSetup, "firmware_version", firmware_version);
|
jsonWriteStr(configSetupJson, "firmware_version", firmware_version);
|
||||||
|
|
||||||
prex = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID;
|
prex = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID;
|
||||||
Serial.println(chipID);
|
Serial.println(chipID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ boolean just_load = true;
|
|||||||
const char *hostName = "IoT Manager";
|
const char *hostName = "IoT Manager";
|
||||||
|
|
||||||
// Json
|
// Json
|
||||||
String configSetup = "{}";
|
String configSetupJson = "{}";
|
||||||
String configJson = "{}";
|
String configLiveJson = "{}";
|
||||||
String optionJson = "{}";
|
String configOptionJson = "{}";
|
||||||
|
|
||||||
// Mqtt
|
// Mqtt
|
||||||
String chipID = "";
|
String chipID = "";
|
||||||
|
|||||||
16
src/Init.cpp
16
src/Init.cpp
@@ -7,13 +7,13 @@ void All_init() {
|
|||||||
value = request->getParam("arg")->value();
|
value = request->getParam("arg")->value();
|
||||||
}
|
}
|
||||||
if (value == "0") { //выкл сценариев
|
if (value == "0") { //выкл сценариев
|
||||||
jsonWriteStr(configSetup, "scenario", value);
|
jsonWriteStr(configSetupJson, "scenario", value);
|
||||||
saveConfig();
|
saveConfig();
|
||||||
Scenario_init();
|
Scenario_init();
|
||||||
request->send(200, "text/text", "OK");
|
request->send(200, "text/text", "OK");
|
||||||
}
|
}
|
||||||
if (value == "1") { //вкл сценариев
|
if (value == "1") { //вкл сценариев
|
||||||
jsonWriteStr(configSetup, "scenario", value);
|
jsonWriteStr(configSetupJson, "scenario", value);
|
||||||
saveConfig();
|
saveConfig();
|
||||||
Scenario_init();
|
Scenario_init();
|
||||||
request->send(200, "text/text", "OK");
|
request->send(200, "text/text", "OK");
|
||||||
@@ -51,7 +51,7 @@ void Device_init() {
|
|||||||
analog_value_names_list = "";
|
analog_value_names_list = "";
|
||||||
enter_to_analog_counter = 0;
|
enter_to_analog_counter = 0;
|
||||||
|
|
||||||
level_value_name = "";
|
levelPr_value_name = "";
|
||||||
|
|
||||||
dhtT_value_name = "";
|
dhtT_value_name = "";
|
||||||
dhtH_value_name = "";
|
dhtH_value_name = "";
|
||||||
@@ -85,7 +85,7 @@ void Device_init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Scenario_init() {
|
void Scenario_init() {
|
||||||
if (jsonReadStr(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetupJson, "scenario") == "1") {
|
||||||
scenario = readFile("firmware.s.txt", 2048);
|
scenario = readFile("firmware.s.txt", 2048);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -188,19 +188,19 @@ void up_time() {
|
|||||||
|
|
||||||
if (ss != 0) {
|
if (ss != 0) {
|
||||||
out = "[i] uptime = " + String(ss) + " sec";
|
out = "[i] uptime = " + String(ss) + " sec";
|
||||||
jsonWriteStr(configJson, "uptime", String(ss) + " sec");
|
jsonWriteStr(configLiveJson, "uptime", String(ss) + " sec");
|
||||||
}
|
}
|
||||||
if (mm != 0) {
|
if (mm != 0) {
|
||||||
out = "[i] uptime = " + String(mm) + " min";
|
out = "[i] uptime = " + String(mm) + " min";
|
||||||
jsonWriteStr(configJson, "uptime", String(mm) + " min");
|
jsonWriteStr(configLiveJson, "uptime", String(mm) + " min");
|
||||||
}
|
}
|
||||||
if (hh != 0) {
|
if (hh != 0) {
|
||||||
out = "[i] uptime = " + String(hh) + " hours";
|
out = "[i] uptime = " + String(hh) + " hours";
|
||||||
jsonWriteStr(configJson, "uptime", String(hh) + " hours");
|
jsonWriteStr(configLiveJson, "uptime", String(hh) + " hours");
|
||||||
}
|
}
|
||||||
if (dd != 0) {
|
if (dd != 0) {
|
||||||
out = "[i] uptime = " + String(dd) + " days";
|
out = "[i] uptime = " + String(dd) + " days";
|
||||||
jsonWriteStr(configJson, "uptime", String(dd) + " days");
|
jsonWriteStr(configLiveJson, "uptime", String(dd) + " days");
|
||||||
}
|
}
|
||||||
Serial.println(out + ", mqtt_lost_error: " + String(mqtt_lost_error) + ", wifi_lost_error: " + String(wifi_lost_error));
|
Serial.println(out + ", mqtt_lost_error: " + String(mqtt_lost_error) + ", wifi_lost_error: " + String(wifi_lost_error));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ void logging() {
|
|||||||
// считаем количество входов в эту функцию
|
// считаем количество входов в эту функцию
|
||||||
enter_to_logging_counter++;
|
enter_to_logging_counter++;
|
||||||
//создаем в файловой системе переменную количества точек на графике с отметкой _c что значит count
|
//создаем в файловой системе переменную количества точек на графике с отметкой _c что значит count
|
||||||
jsonWriteStr(optionJson, value_name + "_c", maxCount);
|
jsonWriteStr(configOptionJson, value_name + "_c", maxCount);
|
||||||
|
|
||||||
//создаем график в приложении с топиком _ch /prefix/3234045-1589487/value_name_ch
|
//создаем график в приложении с топиком _ch /prefix/3234045-1589487/value_name_ch
|
||||||
createChart(widget_name, page_name, page_number, "widgets/widget.chart.json", value_name + "_ch", maxCount);
|
createChart(widget_name, page_name, page_number, "widgets/widget.chart.json", value_name + "_ch", maxCount);
|
||||||
@@ -25,7 +25,7 @@ void logging() {
|
|||||||
ts.add(
|
ts.add(
|
||||||
LOG1, period_min.toInt() * 1000 * 60, [&](void*) {
|
LOG1, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_1 = selectFromMarkerToMarker(logging_value_names_list, ",", 0);
|
String tmp_buf_1 = selectFromMarkerToMarker(logging_value_names_list, ",", 0);
|
||||||
deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadInt(optionJson, tmp_buf_1 + "_c"), jsonReadStr(configJson, tmp_buf_1));
|
deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadInt(configOptionJson, tmp_buf_1 + "_c"), jsonReadStr(configLiveJson, tmp_buf_1));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_1 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_1 + "' done");
|
||||||
},
|
},
|
||||||
nullptr, false);
|
nullptr, false);
|
||||||
@@ -34,7 +34,7 @@ void logging() {
|
|||||||
ts.add(
|
ts.add(
|
||||||
LOG2, period_min.toInt() * 1000 * 60, [&](void*) {
|
LOG2, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_2 = selectFromMarkerToMarker(logging_value_names_list, ",", 1);
|
String tmp_buf_2 = selectFromMarkerToMarker(logging_value_names_list, ",", 1);
|
||||||
deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadInt(optionJson, tmp_buf_2 + "_c"), jsonReadStr(configJson, tmp_buf_2));
|
deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadInt(configOptionJson, tmp_buf_2 + "_c"), jsonReadStr(configLiveJson, tmp_buf_2));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_2 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_2 + "' done");
|
||||||
},
|
},
|
||||||
nullptr, false);
|
nullptr, false);
|
||||||
@@ -43,7 +43,7 @@ void logging() {
|
|||||||
ts.add(
|
ts.add(
|
||||||
LOG3, period_min.toInt() * 1000 * 60, [&](void*) {
|
LOG3, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_3 = selectFromMarkerToMarker(logging_value_names_list, ",", 2);
|
String tmp_buf_3 = selectFromMarkerToMarker(logging_value_names_list, ",", 2);
|
||||||
deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadInt(optionJson, tmp_buf_3 + "_c"), jsonReadStr(configJson, tmp_buf_3));
|
deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadInt(configOptionJson, tmp_buf_3 + "_c"), jsonReadStr(configLiveJson, tmp_buf_3));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_3 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_3 + "' done");
|
||||||
},
|
},
|
||||||
nullptr, false);
|
nullptr, false);
|
||||||
@@ -52,7 +52,7 @@ void logging() {
|
|||||||
ts.add(
|
ts.add(
|
||||||
LOG4, period_min.toInt() * 1000 * 60, [&](void*) {
|
LOG4, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_4 = selectFromMarkerToMarker(logging_value_names_list, ",", 3);
|
String tmp_buf_4 = selectFromMarkerToMarker(logging_value_names_list, ",", 3);
|
||||||
deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadInt(optionJson, tmp_buf_4 + "_c"), jsonReadStr(configJson, tmp_buf_4));
|
deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadInt(configOptionJson, tmp_buf_4 + "_c"), jsonReadStr(configLiveJson, tmp_buf_4));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_4 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_4 + "' done");
|
||||||
},
|
},
|
||||||
nullptr, false);
|
nullptr, false);
|
||||||
@@ -61,7 +61,7 @@ void logging() {
|
|||||||
ts.add(
|
ts.add(
|
||||||
LOG5, period_min.toInt() * 1000 * 60, [&](void*) {
|
LOG5, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_5 = selectFromMarkerToMarker(logging_value_names_list, ",", 4);
|
String tmp_buf_5 = selectFromMarkerToMarker(logging_value_names_list, ",", 4);
|
||||||
deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadInt(optionJson, tmp_buf_5 + "_c"), jsonReadStr(configJson, tmp_buf_5));
|
deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadInt(configOptionJson, tmp_buf_5 + "_c"), jsonReadStr(configLiveJson, tmp_buf_5));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_5 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_5 + "' done");
|
||||||
},
|
},
|
||||||
nullptr, false);
|
nullptr, false);
|
||||||
|
|||||||
42
src/Mqtt.cpp
42
src/Mqtt.cpp
@@ -32,20 +32,20 @@ void MQTT_init() {
|
|||||||
|
|
||||||
server.on("/mqttSave", HTTP_GET, [](AsyncWebServerRequest* request) {
|
server.on("/mqttSave", HTTP_GET, [](AsyncWebServerRequest* request) {
|
||||||
if (request->hasArg("mqttServer")) {
|
if (request->hasArg("mqttServer")) {
|
||||||
jsonWriteStr(configSetup, "mqttServer", request->getParam("mqttServer")->value());
|
jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value());
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttPort")) {
|
if (request->hasArg("mqttPort")) {
|
||||||
int port = (request->getParam("mqttPort")->value()).toInt();
|
int port = (request->getParam("mqttPort")->value()).toInt();
|
||||||
jsonWriteInt(configSetup, "mqttPort", port);
|
jsonWriteInt(configSetupJson, "mqttPort", port);
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttPrefix")) {
|
if (request->hasArg("mqttPrefix")) {
|
||||||
jsonWriteStr(configSetup, "mqttPrefix", request->getParam("mqttPrefix")->value());
|
jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value());
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttUser")) {
|
if (request->hasArg("mqttUser")) {
|
||||||
jsonWriteStr(configSetup, "mqttUser", request->getParam("mqttUser")->value());
|
jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value());
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttPass")) {
|
if (request->hasArg("mqttPass")) {
|
||||||
jsonWriteStr(configSetup, "mqttPass", request->getParam("mqttPass")->value());
|
jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value());
|
||||||
}
|
}
|
||||||
saveConfig();
|
saveConfig();
|
||||||
mqtt_connection = true;
|
mqtt_connection = true;
|
||||||
@@ -79,21 +79,21 @@ void handleMQTT() {
|
|||||||
|
|
||||||
boolean MQTT_Connecting() {
|
boolean MQTT_Connecting() {
|
||||||
bool res = false;
|
bool res = false;
|
||||||
String mqtt_server = jsonReadStr(configSetup, "mqttServer");
|
String mqtt_server = jsonReadStr(configSetupJson, "mqttServer");
|
||||||
if ((mqtt_server != "")) {
|
if ((mqtt_server != "")) {
|
||||||
Serial.println("[E] Lost MQTT connection, start reconnecting");
|
Serial.println("[E] Lost MQTT connection, start reconnecting");
|
||||||
led_blink("fast");
|
led_blink("fast");
|
||||||
client_mqtt.setServer(mqtt_server.c_str(), jsonReadInt(configSetup, "mqttPort"));
|
client_mqtt.setServer(mqtt_server.c_str(), jsonReadInt(configSetupJson, "mqttPort"));
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
if (!client_mqtt.connected()) {
|
if (!client_mqtt.connected()) {
|
||||||
Serial.println("[V] Connecting to MQTT server commenced");
|
Serial.println("[V] Connecting to MQTT server commenced");
|
||||||
if (client_mqtt.connect(chipID.c_str(), jsonReadStr(configSetup, "mqttUser").c_str(), jsonReadStr(configSetup, "mqttPass").c_str())) {
|
if (client_mqtt.connect(chipID.c_str(), jsonReadStr(configSetupJson, "mqttUser").c_str(), jsonReadStr(configSetupJson, "mqttPass").c_str())) {
|
||||||
Serial.println("[VV] MQTT connected");
|
Serial.println("[VV] MQTT connected");
|
||||||
led_blink("off");
|
led_blink("off");
|
||||||
client_mqtt.setCallback(callback);
|
client_mqtt.setCallback(callback);
|
||||||
client_mqtt.subscribe(jsonReadStr(configSetup, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи
|
client_mqtt.subscribe(jsonReadStr(configSetupJson, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи
|
||||||
client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
||||||
client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order
|
client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order
|
||||||
Serial.println("[V] Callback set, subscribe done");
|
Serial.println("[V] Callback set, subscribe done");
|
||||||
res = true;
|
res = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -157,7 +157,7 @@ void outcoming_date() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean sendMQTT(String end_of_topik, String data) {
|
boolean sendMQTT(String end_of_topik, String data) {
|
||||||
String topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + end_of_topik;
|
String topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + end_of_topik;
|
||||||
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
||||||
client_mqtt.print(data);
|
client_mqtt.print(data);
|
||||||
client_mqtt.endPublish();
|
client_mqtt.endPublish();
|
||||||
@@ -165,7 +165,7 @@ boolean sendMQTT(String end_of_topik, String data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean sendCHART(String topik, String data) {
|
boolean sendCHART(String topik, String data) {
|
||||||
topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
||||||
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
||||||
client_mqtt.print(data);
|
client_mqtt.print(data);
|
||||||
client_mqtt.endPublish();
|
client_mqtt.endPublish();
|
||||||
@@ -173,14 +173,14 @@ boolean sendCHART(String topik, String data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void sendSTATUS(String topik, String state) {
|
void sendSTATUS(String topik, String state) {
|
||||||
topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
||||||
String json_ = "{}";
|
String json_ = "{}";
|
||||||
jsonWriteStr(json_, "status", state);
|
jsonWriteStr(json_, "status", state);
|
||||||
client_mqtt.publish(topik.c_str(), json_.c_str(), false);
|
client_mqtt.publish(topik.c_str(), json_.c_str(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sendCONTROL(String id, String topik, String state) {
|
void sendCONTROL(String id, String topik, String state) {
|
||||||
String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/" + topik + "/control";
|
String all_line = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/" + topik + "/control";
|
||||||
client_mqtt.publish(all_line.c_str(), state.c_str(), false);
|
client_mqtt.publish(all_line.c_str(), state.c_str(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,7 +227,7 @@ void sendAllWigets() {
|
|||||||
//=====================================================ОТПРАВЛЯЕМ ДАННЫЕ В ВИДЖЕТЫ ПРИ ОБНОВЛЕНИИ СТРАНИЦЫ========================================================
|
//=====================================================ОТПРАВЛЯЕМ ДАННЫЕ В ВИДЖЕТЫ ПРИ ОБНОВЛЕНИИ СТРАНИЦЫ========================================================
|
||||||
void sendAllData() { //берет строку json и ключи превращает в топики а значения колючей в них посылает
|
void sendAllData() { //берет строку json и ключи превращает в топики а значения колючей в них посылает
|
||||||
|
|
||||||
String current_config = configJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"}
|
String current_config = configLiveJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"}
|
||||||
getMemoryLoad("[i] after send all date");
|
getMemoryLoad("[i] after send all date");
|
||||||
current_config.replace("{", "");
|
current_config.replace("{", "");
|
||||||
current_config.replace("}", ""); //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"
|
current_config.replace("}", ""); //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"
|
||||||
@@ -289,7 +289,7 @@ String stateMQTT() {
|
|||||||
/*void scenario_devices_topiks_subscribe() {
|
/*void scenario_devices_topiks_subscribe() {
|
||||||
|
|
||||||
//SCENARIO ANALOG > 5 800324-1458415 rel1 0
|
//SCENARIO ANALOG > 5 800324-1458415 rel1 0
|
||||||
if (jsonReadStr(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetupJson, "scenario") == "1") {
|
||||||
//String all_text = readFile("firmware.s.txt", 1024) + "\r\n";
|
//String all_text = readFile("firmware.s.txt", 1024) + "\r\n";
|
||||||
String all_text = scenario + "\r\n";
|
String all_text = scenario + "\r\n";
|
||||||
all_text.replace("\r\n", "\n");
|
all_text.replace("\r\n", "\n");
|
||||||
@@ -298,7 +298,7 @@ String stateMQTT() {
|
|||||||
String line_ = selectToMarker (all_text, "\n");
|
String line_ = selectToMarker (all_text, "\n");
|
||||||
String id = selectFromMarkerToMarker(line_, " ", 4);
|
String id = selectFromMarkerToMarker(line_, " ", 4);
|
||||||
if (id != "not found") {
|
if (id != "not found") {
|
||||||
client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0);
|
client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0);
|
||||||
Serial.println("subscribed to device, id: " + id);
|
Serial.println("subscribed to device, id: " + id);
|
||||||
}
|
}
|
||||||
all_text = deleteBeforeDelimiter(all_text, "\n");
|
all_text = deleteBeforeDelimiter(all_text, "\n");
|
||||||
@@ -308,7 +308,7 @@ String stateMQTT() {
|
|||||||
*/
|
*/
|
||||||
/*void scenario_devices_test_msg_send() {
|
/*void scenario_devices_test_msg_send() {
|
||||||
|
|
||||||
if (jsonReadStr(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetupJson, "scenario") == "1") {
|
||||||
|
|
||||||
String all_text = scenario + "\r\n";
|
String all_text = scenario + "\r\n";
|
||||||
all_text.replace("\r\n", "\n");
|
all_text.replace("\r\n", "\n");
|
||||||
@@ -318,7 +318,7 @@ String stateMQTT() {
|
|||||||
String id = selectFromMarkerToMarker(line_, " ", 4);
|
String id = selectFromMarkerToMarker(line_, " ", 4);
|
||||||
if (id != "not found") {
|
if (id != "not found") {
|
||||||
//Serial.println();
|
//Serial.println();
|
||||||
Serial.println(client_mqtt.publish ((jsonReadStr(configSetup, "mqttPrefix") + "/" + id).c_str(), "CHECK", true));
|
Serial.println(client_mqtt.publish ((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id).c_str(), "CHECK", true));
|
||||||
|
|
||||||
}
|
}
|
||||||
all_text = deleteBeforeDelimiter(all_text, "\n");
|
all_text = deleteBeforeDelimiter(all_text, "\n");
|
||||||
@@ -330,7 +330,7 @@ String stateMQTT() {
|
|||||||
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
//jsonWriteStr(tmp, "status", "1");
|
//jsonWriteStr(tmp, "status", "1");
|
||||||
|
|
||||||
String current_config = configJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"}
|
String current_config = configLiveJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"}
|
||||||
current_config.replace("{", "");
|
current_config.replace("{", "");
|
||||||
current_config.replace("}", ""); //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"
|
current_config.replace("}", ""); //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"
|
||||||
current_config += ","; //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1",
|
current_config += ","; //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
|
|
||||||
void handleScenario() {
|
void handleScenario() {
|
||||||
if (jsonReadStr(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetupJson, "scenario") == "1") {
|
||||||
if ((jsonReadStr(optionJson, "scenario_status") != "")) {
|
if ((jsonReadStr(configOptionJson, "scenario_status") != "")) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
String str = scenario; //читаем переменную с сценариями (то что из файла на странице)
|
String str = scenario; //читаем переменную с сценариями (то что из файла на странице)
|
||||||
str += "\n";
|
str += "\n";
|
||||||
@@ -18,7 +18,7 @@ void handleScenario() {
|
|||||||
//Serial.println(i);
|
//Serial.println(i);
|
||||||
String condition = selectToMarker(tmp, "\n"); //выделяем первую строку самого сценария button1 = 1 (условие)
|
String condition = selectToMarker(tmp, "\n"); //выделяем первую строку самого сценария button1 = 1 (условие)
|
||||||
String param_name = selectFromMarkerToMarker(condition, " ", 0);
|
String param_name = selectFromMarkerToMarker(condition, " ", 0);
|
||||||
String order = jsonReadStr(optionJson, "scenario_status"); //читаем весь файл событий
|
String order = jsonReadStr(configOptionJson, "scenario_status"); //читаем весь файл событий
|
||||||
String param = selectToMarker(order, ","); //читаем первое событие из файла событий
|
String param = selectToMarker(order, ","); //читаем первое событие из файла событий
|
||||||
if (param_name == param) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку
|
if (param_name == param) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку
|
||||||
|
|
||||||
@@ -26,30 +26,30 @@ void handleScenario() {
|
|||||||
String value = selectFromMarkerToMarker(condition, " ", 2); //читаем значение (1)
|
String value = selectFromMarkerToMarker(condition, " ", 2); //читаем значение (1)
|
||||||
if (value.indexOf("digit") != -1) {
|
if (value.indexOf("digit") != -1) {
|
||||||
// value = add_set(value);
|
// value = add_set(value);
|
||||||
value = jsonReadStr(configJson, value);
|
value = jsonReadStr(configLiveJson, value);
|
||||||
}
|
}
|
||||||
if (value.indexOf("time") != -1) {
|
if (value.indexOf("time") != -1) {
|
||||||
// value = add_set(value);
|
// value = add_set(value);
|
||||||
value = jsonReadStr(configJson, value);
|
value = jsonReadStr(configLiveJson, value);
|
||||||
}
|
}
|
||||||
boolean flag = false; //если одно из значений совпало то только тогда начинаем выполнять комнады
|
boolean flag = false; //если одно из значений совпало то только тогда начинаем выполнять комнады
|
||||||
if (sign == "=") {
|
if (sign == "=") {
|
||||||
if (jsonReadStr(configJson, param_name) == value) flag = true;
|
if (jsonReadStr(configLiveJson, param_name) == value) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == "!=") {
|
if (sign == "!=") {
|
||||||
if (jsonReadStr(configJson, param_name) != value) flag = true;
|
if (jsonReadStr(configLiveJson, param_name) != value) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == "<") {
|
if (sign == "<") {
|
||||||
if (jsonReadStr(configJson, param_name).toInt() < value.toInt()) flag = true;
|
if (jsonReadStr(configLiveJson, param_name).toInt() < value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == ">") {
|
if (sign == ">") {
|
||||||
if (jsonReadStr(configJson, param_name).toInt() > value.toInt()) flag = true;
|
if (jsonReadStr(configLiveJson, param_name).toInt() > value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == ">=") {
|
if (sign == ">=") {
|
||||||
if (jsonReadStr(configJson, param_name).toInt() >= value.toInt()) flag = true;
|
if (jsonReadStr(configLiveJson, param_name).toInt() >= value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == "<=") {
|
if (sign == "<=") {
|
||||||
if (jsonReadStr(configJson, param_name).toInt() <= value.toInt()) flag = true;
|
if (jsonReadStr(configLiveJson, param_name).toInt() <= value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
@@ -64,9 +64,9 @@ void handleScenario() {
|
|||||||
str = deleteBeforeDelimiter(str, "end\n"); //удаляем первый сценарий
|
str = deleteBeforeDelimiter(str, "end\n"); //удаляем первый сценарий
|
||||||
//-----------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
String tmp2 = jsonReadStr(optionJson, "scenario_status"); //читаем файл событий
|
String tmp2 = jsonReadStr(configOptionJson, "scenario_status"); //читаем файл событий
|
||||||
tmp2 = deleteBeforeDelimiter(tmp2, ","); //удаляем выполненное событие
|
tmp2 = deleteBeforeDelimiter(tmp2, ","); //удаляем выполненное событие
|
||||||
jsonWriteStr(optionJson, "scenario_status", tmp2); //записываем обновленный файл событий
|
jsonWriteStr(configOptionJson, "scenario_status", tmp2); //записываем обновленный файл событий
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,10 +74,10 @@ void handleScenario() {
|
|||||||
|
|
||||||
//событие выглядит как имя плюс set плюс номер: button+Set+1
|
//событие выглядит как имя плюс set плюс номер: button+Set+1
|
||||||
void eventGen(String event_name, String number) {
|
void eventGen(String event_name, String number) {
|
||||||
if (jsonReadStr(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetupJson, "scenario") == "1") {
|
||||||
String tmp = jsonReadStr(optionJson, "scenario_status"); //генерирование события
|
String tmp = jsonReadStr(configOptionJson, "scenario_status"); //генерирование события
|
||||||
//Serial.println(event_name);
|
//Serial.println(event_name);
|
||||||
jsonWriteStr(optionJson, "scenario_status", tmp + event_name + number + ",");
|
jsonWriteStr(configOptionJson, "scenario_status", tmp + event_name + number + ",");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
175
src/Sensors.cpp
175
src/Sensors.cpp
@@ -69,54 +69,79 @@ void sensors_init() {
|
|||||||
//=========================================================================================================================================
|
//=========================================================================================================================================
|
||||||
//=========================================Модуль измерения уровня в баке==================================================================
|
//=========================================Модуль измерения уровня в баке==================================================================
|
||||||
#ifdef level_enable
|
#ifdef level_enable
|
||||||
//level L 14 12 Вода#в#баке,#% Датчики fill-gauge 125 20 1
|
//levelPr p 14 12 Вода#в#баке,#% Датчики fill-gauge 125 20 1
|
||||||
void level() {
|
void levelPr() {
|
||||||
String value_name = sCmd.next();
|
String value_name = sCmd.next();
|
||||||
String trig = sCmd.next();
|
String trig = sCmd.next();
|
||||||
String echo = sCmd.next();
|
String echo = sCmd.next();
|
||||||
String widget_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();
|
||||||
String full_level = sCmd.next();
|
String full_level = sCmd.next();
|
||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
level_value_name = value_name;
|
levelPr_value_name = value_name;
|
||||||
jsonWriteStr(optionJson, "e_lev", empty_level);
|
jsonWriteStr(configOptionJson, "e_lev", empty_level);
|
||||||
jsonWriteStr(optionJson, "f_lev", full_level);
|
jsonWriteStr(configOptionJson, "f_lev", full_level);
|
||||||
jsonWriteStr(optionJson, "trig", trig);
|
jsonWriteStr(configOptionJson, "trig", trig);
|
||||||
jsonWriteStr(optionJson, "echo", echo);
|
jsonWriteStr(configOptionJson, "echo", echo);
|
||||||
pinMode(trig.toInt(), OUTPUT);
|
pinMode(trig.toInt(), OUTPUT);
|
||||||
pinMode(echo.toInt(), INPUT);
|
pinMode(echo.toInt(), INPUT);
|
||||||
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
|
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
|
||||||
sensors_reading_map[0] = 1;
|
sensors_reading_map[0] = 1;
|
||||||
|
}
|
||||||
|
//ultrasonicCm cm 14 12 Дистанция,#см Датчики fill-gauge 1
|
||||||
|
void ultrasonicCm() {
|
||||||
|
String value_name = sCmd.next();
|
||||||
|
String trig = sCmd.next();
|
||||||
|
String echo = sCmd.next();
|
||||||
|
String widget_name = sCmd.next();
|
||||||
|
String page_name = sCmd.next();
|
||||||
|
String type = sCmd.next();
|
||||||
|
String empty_level = sCmd.next();
|
||||||
|
String full_level = sCmd.next();
|
||||||
|
String page_number = sCmd.next();
|
||||||
|
ultrasonicCm_value_name = value_name;
|
||||||
|
jsonWriteStr(configOptionJson, "trig", trig);
|
||||||
|
jsonWriteStr(configOptionJson, "echo", echo);
|
||||||
|
pinMode(trig.toInt(), OUTPUT);
|
||||||
|
pinMode(echo.toInt(), INPUT);
|
||||||
|
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
|
||||||
|
sensors_reading_map[0] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void level_reading() {
|
void ultrasonic_reading() {
|
||||||
long duration_;
|
long duration_;
|
||||||
int distance_cm;
|
int distance_cm;
|
||||||
int level;
|
int level;
|
||||||
static int counter;
|
static int counter;
|
||||||
int trig = jsonReadInt(optionJson, "trig");
|
int trig = jsonReadInt(configOptionJson, "trig");
|
||||||
int echo = jsonReadInt(optionJson, "echo");
|
int echo = jsonReadInt(configOptionJson, "echo");
|
||||||
digitalWrite(trig, LOW);
|
digitalWrite(trig, LOW);
|
||||||
delayMicroseconds(2);
|
delayMicroseconds(2);
|
||||||
digitalWrite(trig, HIGH);
|
digitalWrite(trig, HIGH);
|
||||||
delayMicroseconds(10);
|
delayMicroseconds(10);
|
||||||
digitalWrite(trig, LOW);
|
digitalWrite(trig, LOW);
|
||||||
duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m
|
duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m
|
||||||
distance_cm = duration_ / 29 / 2;
|
distance_cm = duration_ / 29 / 2;
|
||||||
distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром
|
distance_cm = medianFilter.filtered(distance_cm);//отсечение промахов медианным фильтром
|
||||||
counter++;
|
counter++;
|
||||||
if (counter > tank_level_times_to_send) {
|
if (counter > tank_level_times_to_send) {
|
||||||
counter = 0;
|
counter = 0;
|
||||||
level = map(distance_cm,
|
level = map(distance_cm,
|
||||||
jsonReadInt(optionJson, "e_lev"),
|
jsonReadInt(configOptionJson, "e_lev"),
|
||||||
jsonReadInt(optionJson, "f_lev"), 0, 100);
|
jsonReadInt(configOptionJson, "f_lev"), 0, 100);
|
||||||
jsonWriteInt(configJson, level_value_name, level);
|
|
||||||
eventGen(level_value_name, "");
|
jsonWriteInt(configLiveJson, levelPr_value_name, level);
|
||||||
sendSTATUS(level_value_name, String(level));
|
eventGen (levelPr_value_name, "");
|
||||||
Serial.println("[i] sensor '" + level_value_name + "' data: " + String(level));
|
sendSTATUS(levelPr_value_name, String(level));
|
||||||
}
|
Serial.println("[i] sensor '" + levelPr_value_name + "' data: " + String(level));
|
||||||
|
|
||||||
|
jsonWriteInt(configLiveJson, ultrasonicCm_value_name, distance_cm);
|
||||||
|
eventGen (ultrasonicCm_value_name, "");
|
||||||
|
sendSTATUS(ultrasonicCm_value_name, String(distance_cm));
|
||||||
|
Serial.println("[i] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
//=========================================================================================================================================
|
//=========================================================================================================================================
|
||||||
@@ -136,10 +161,10 @@ void analog() {
|
|||||||
String page_number = sCmd.next();
|
String page_number = sCmd.next();
|
||||||
analog_value_names_list += value_name + ",";
|
analog_value_names_list += value_name + ",";
|
||||||
enter_to_analog_counter++;
|
enter_to_analog_counter++;
|
||||||
jsonWriteStr(optionJson, value_name + "_st", analog_start);
|
jsonWriteStr(configOptionJson, value_name + "_st", analog_start);
|
||||||
jsonWriteStr(optionJson, value_name + "_end", analog_end);
|
jsonWriteStr(configOptionJson, value_name + "_end", analog_end);
|
||||||
jsonWriteStr(optionJson, value_name + "_st_out", analog_start_out);
|
jsonWriteStr(configOptionJson, value_name + "_st_out", analog_start_out);
|
||||||
jsonWriteStr(optionJson, value_name + "_end_out", analog_end_out);
|
jsonWriteStr(configOptionJson, value_name + "_end_out", analog_end_out);
|
||||||
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
|
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
|
||||||
if (enter_to_analog_counter == 1) {
|
if (enter_to_analog_counter == 1) {
|
||||||
sensors_reading_map[1] = 1;
|
sensors_reading_map[1] = 1;
|
||||||
@@ -158,11 +183,11 @@ void analog_reading1() {
|
|||||||
int analog_in = analogRead(A0);
|
int analog_in = analogRead(A0);
|
||||||
#endif
|
#endif
|
||||||
int analog = map(analog_in,
|
int analog = map(analog_in,
|
||||||
jsonReadInt(optionJson, value_name + "_st"),
|
jsonReadInt(configOptionJson, value_name + "_st"),
|
||||||
jsonReadInt(optionJson, value_name + "_end"),
|
jsonReadInt(configOptionJson, value_name + "_end"),
|
||||||
jsonReadInt(optionJson, value_name + "_st_out"),
|
jsonReadInt(configOptionJson, value_name + "_st_out"),
|
||||||
jsonReadInt(optionJson, value_name + "_end_out"));
|
jsonReadInt(configOptionJson, value_name + "_end_out"));
|
||||||
jsonWriteInt(configJson, value_name, analog);
|
jsonWriteInt(configLiveJson, value_name, analog);
|
||||||
eventGen(value_name, "");
|
eventGen(value_name, "");
|
||||||
sendSTATUS(value_name, String(analog));
|
sendSTATUS(value_name, String(analog));
|
||||||
Serial.println("[i] sensor '" + value_name + "' data: " + String(analog));
|
Serial.println("[i] sensor '" + value_name + "' data: " + String(analog));
|
||||||
@@ -177,11 +202,11 @@ void analog_reading2() {
|
|||||||
int analog_in = analogRead(A0);
|
int analog_in = analogRead(A0);
|
||||||
#endif
|
#endif
|
||||||
int analog = map(analog_in,
|
int analog = map(analog_in,
|
||||||
jsonReadInt(optionJson, value_name + "_st"),
|
jsonReadInt(configOptionJson, value_name + "_st"),
|
||||||
jsonReadInt(optionJson, value_name + "_end"),
|
jsonReadInt(configOptionJson, value_name + "_end"),
|
||||||
jsonReadInt(optionJson, value_name + "_st_out"),
|
jsonReadInt(configOptionJson, value_name + "_st_out"),
|
||||||
jsonReadInt(optionJson, value_name + "_end_out"));
|
jsonReadInt(configOptionJson, value_name + "_end_out"));
|
||||||
jsonWriteInt(configJson, value_name, analog);
|
jsonWriteInt(configLiveJson, value_name, analog);
|
||||||
eventGen(value_name, "");
|
eventGen(value_name, "");
|
||||||
sendSTATUS(value_name, String(analog));
|
sendSTATUS(value_name, String(analog));
|
||||||
Serial.println("[i] sensor '" + value_name + "' data: " + String(analog));
|
Serial.println("[i] sensor '" + value_name + "' data: " + String(analog));
|
||||||
@@ -210,7 +235,7 @@ void dallas_reading() {
|
|||||||
float temp = 0;
|
float temp = 0;
|
||||||
sensors.requestTemperatures();
|
sensors.requestTemperatures();
|
||||||
temp = sensors.getTempCByIndex(0);
|
temp = sensors.getTempCByIndex(0);
|
||||||
jsonWriteStr(configJson, "dallas", String(temp));
|
jsonWriteStr(configLiveJson, "dallas", String(temp));
|
||||||
eventGen("dallas", "");
|
eventGen("dallas", "");
|
||||||
sendSTATUS("dallas", String(temp));
|
sendSTATUS("dallas", String(temp));
|
||||||
Serial.println("[i] sensor 'dallas' send date " + String(temp));
|
Serial.println("[i] sensor 'dallas' send date " + String(temp));
|
||||||
@@ -250,7 +275,7 @@ void dhtT_reading() {
|
|||||||
value = dht.getTemperature();
|
value = dht.getTemperature();
|
||||||
if (String(value) != "nan") {
|
if (String(value) != "nan") {
|
||||||
eventGen(dhtT_value_name, "");
|
eventGen(dhtT_value_name, "");
|
||||||
jsonWriteStr(configJson, dhtT_value_name, String(value));
|
jsonWriteStr(configLiveJson, dhtT_value_name, String(value));
|
||||||
sendSTATUS(dhtT_value_name, String(value));
|
sendSTATUS(dhtT_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + dhtT_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + dhtT_value_name + "' data: " + String(value));
|
||||||
}
|
}
|
||||||
@@ -288,7 +313,7 @@ void dhtH_reading() {
|
|||||||
value = dht.getHumidity();
|
value = dht.getHumidity();
|
||||||
if (String(value) != "nan") {
|
if (String(value) != "nan") {
|
||||||
eventGen(dhtH_value_name, "");
|
eventGen(dhtH_value_name, "");
|
||||||
jsonWriteStr(configJson, dhtH_value_name, String(value));
|
jsonWriteStr(configLiveJson, dhtH_value_name, String(value));
|
||||||
sendSTATUS(dhtH_value_name, String(value));
|
sendSTATUS(dhtH_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + dhtH_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + dhtH_value_name + "' data: " + String(value));
|
||||||
}
|
}
|
||||||
@@ -309,9 +334,9 @@ void dhtP_reading() {
|
|||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
sendSTATUS("dhtPerception", String(dht.getStatusString()));
|
sendSTATUS("dhtPerception", String(dht.getStatusString()));
|
||||||
} else {
|
} else {
|
||||||
value = dht.computePerception(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false);
|
value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
||||||
String final_line = perception(value);
|
String final_line = perception(value);
|
||||||
jsonWriteStr(configJson, "dhtPerception", final_line);
|
jsonWriteStr(configLiveJson, "dhtPerception", final_line);
|
||||||
eventGen("dhtPerception", "");
|
eventGen("dhtPerception", "");
|
||||||
sendSTATUS("dhtPerception", final_line);
|
sendSTATUS("dhtPerception", final_line);
|
||||||
if (client_mqtt.connected()) {
|
if (client_mqtt.connected()) {
|
||||||
@@ -368,9 +393,9 @@ void dhtC_reading() {
|
|||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
sendSTATUS("dhtComfort", String(dht.getStatusString()));
|
sendSTATUS("dhtComfort", String(dht.getStatusString()));
|
||||||
} else {
|
} else {
|
||||||
value = dht.getComfortRatio(cf, jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false);
|
value = dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
||||||
String final_line = get_comfort_status(cf);
|
String final_line = get_comfort_status(cf);
|
||||||
jsonWriteStr(configJson, "dhtComfort", final_line);
|
jsonWriteStr(configLiveJson, "dhtComfort", final_line);
|
||||||
eventGen("dhtComfort", "");
|
eventGen("dhtComfort", "");
|
||||||
sendSTATUS("dhtComfort", final_line);
|
sendSTATUS("dhtComfort", final_line);
|
||||||
Serial.println("[i] sensor 'dhtComfort' send date " + final_line);
|
Serial.println("[i] sensor 'dhtComfort' send date " + final_line);
|
||||||
@@ -428,8 +453,8 @@ void dhtD_reading() {
|
|||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
sendSTATUS("dhtDewpoint", String(dht.getStatusString()));
|
sendSTATUS("dhtDewpoint", String(dht.getStatusString()));
|
||||||
} else {
|
} else {
|
||||||
value = dht.computeDewPoint(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false);
|
value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
|
||||||
jsonWriteInt(configJson, "dhtDewpoint", value);
|
jsonWriteInt(configLiveJson, "dhtDewpoint", value);
|
||||||
eventGen("dhtDewpoint", "");
|
eventGen("dhtDewpoint", "");
|
||||||
sendSTATUS("dhtDewpoint", String(value));
|
sendSTATUS("dhtDewpoint", String(value));
|
||||||
Serial.println("[i] sensor 'dhtDewpoint' data: " + String(value));
|
Serial.println("[i] sensor 'dhtDewpoint' data: " + String(value));
|
||||||
@@ -465,7 +490,7 @@ void bmp280T_reading() {
|
|||||||
sensors_event_t temp_event, pressure_event;
|
sensors_event_t temp_event, pressure_event;
|
||||||
bmp_temp->getEvent(&temp_event);
|
bmp_temp->getEvent(&temp_event);
|
||||||
value = temp_event.temperature;
|
value = temp_event.temperature;
|
||||||
jsonWriteStr(configJson, bmp280T_value_name, String(value));
|
jsonWriteStr(configLiveJson, bmp280T_value_name, String(value));
|
||||||
eventGen(bmp280T_value_name, "");
|
eventGen(bmp280T_value_name, "");
|
||||||
sendSTATUS(bmp280T_value_name, String(value));
|
sendSTATUS(bmp280T_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + bmp280T_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + bmp280T_value_name + "' data: " + String(value));
|
||||||
@@ -497,7 +522,7 @@ void bmp280P_reading() {
|
|||||||
bmp_pressure->getEvent(&pressure_event);
|
bmp_pressure->getEvent(&pressure_event);
|
||||||
value = pressure_event.pressure;
|
value = pressure_event.pressure;
|
||||||
value = value / 1.333224;
|
value = value / 1.333224;
|
||||||
jsonWriteStr(configJson, bmp280P_value_name, String(value));
|
jsonWriteStr(configLiveJson, bmp280P_value_name, String(value));
|
||||||
eventGen(bmp280P_value_name, "");
|
eventGen(bmp280P_value_name, "");
|
||||||
sendSTATUS(bmp280P_value_name, String(value));
|
sendSTATUS(bmp280P_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + bmp280P_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + bmp280P_value_name + "' data: " + String(value));
|
||||||
@@ -522,7 +547,7 @@ void bme280T() {
|
|||||||
void bme280T_reading() {
|
void bme280T_reading() {
|
||||||
float value = 0;
|
float value = 0;
|
||||||
value = bme.readTemperature();
|
value = bme.readTemperature();
|
||||||
jsonWriteStr(configJson, bme280T_value_name, String(value));
|
jsonWriteStr(configLiveJson, bme280T_value_name, String(value));
|
||||||
eventGen(bme280T_value_name, "");
|
eventGen(bme280T_value_name, "");
|
||||||
sendSTATUS(bme280T_value_name, String(value));
|
sendSTATUS(bme280T_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + bme280T_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + bme280T_value_name + "' data: " + String(value));
|
||||||
@@ -546,7 +571,7 @@ void bme280P_reading() {
|
|||||||
float value = 0;
|
float value = 0;
|
||||||
value = bme.readPressure();
|
value = bme.readPressure();
|
||||||
value = value / 1.333224;
|
value = value / 1.333224;
|
||||||
jsonWriteStr(configJson, bme280P_value_name, String(value));
|
jsonWriteStr(configLiveJson, bme280P_value_name, String(value));
|
||||||
eventGen(bme280P_value_name, "");
|
eventGen(bme280P_value_name, "");
|
||||||
sendSTATUS(bme280P_value_name, String(value));
|
sendSTATUS(bme280P_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + bme280P_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + bme280P_value_name + "' data: " + String(value));
|
||||||
@@ -569,7 +594,7 @@ void bme280H() {
|
|||||||
void bme280H_reading() {
|
void bme280H_reading() {
|
||||||
float value = 0;
|
float value = 0;
|
||||||
value = bme.readHumidity();
|
value = bme.readHumidity();
|
||||||
jsonWriteStr(configJson, bme280H_value_name, String(value));
|
jsonWriteStr(configLiveJson, bme280H_value_name, String(value));
|
||||||
eventGen(bme280H_value_name, "");
|
eventGen(bme280H_value_name, "");
|
||||||
sendSTATUS(bme280H_value_name, String(value));
|
sendSTATUS(bme280H_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + bme280H_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + bme280H_value_name + "' data: " + String(value));
|
||||||
@@ -592,7 +617,7 @@ void bme280A() {
|
|||||||
void bme280A_reading() {
|
void bme280A_reading() {
|
||||||
float value = 0;
|
float value = 0;
|
||||||
value = bme.readAltitude(1013.25);
|
value = bme.readAltitude(1013.25);
|
||||||
jsonWriteStr(configJson, bme280A_value_name, String(value));
|
jsonWriteStr(configLiveJson, bme280A_value_name, String(value));
|
||||||
eventGen(bme280A_value_name, "");
|
eventGen(bme280A_value_name, "");
|
||||||
sendSTATUS(bme280A_value_name, String(value));
|
sendSTATUS(bme280A_value_name, String(value));
|
||||||
Serial.println("[i] sensor '" + bme280A_value_name + "' data: " + String(value));
|
Serial.println("[i] sensor '" + bme280A_value_name + "' data: " + String(value));
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
void Time_Init() {
|
void Time_Init() {
|
||||||
server.on("/time", HTTP_GET, [](AsyncWebServerRequest* request) {
|
server.on("/time", HTTP_GET, [](AsyncWebServerRequest* request) {
|
||||||
if (request->hasArg("timezone")) {
|
if (request->hasArg("timezone")) {
|
||||||
jsonWriteStr(configSetup, "timezone", request->getParam("timezone")->value());
|
jsonWriteStr(configSetupJson, "timezone", request->getParam("timezone")->value());
|
||||||
}
|
}
|
||||||
if (request->hasArg("ntp")) {
|
if (request->hasArg("ntp")) {
|
||||||
jsonWriteStr(configSetup, "ntp", request->getParam("ntp")->value());
|
jsonWriteStr(configSetupJson, "ntp", request->getParam("ntp")->value());
|
||||||
}
|
}
|
||||||
saveConfig();
|
saveConfig();
|
||||||
reconfigTime();
|
reconfigTime();
|
||||||
@@ -29,7 +29,7 @@ void time_check() {
|
|||||||
|
|
||||||
void reconfigTime() {
|
void reconfigTime() {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
String ntp = jsonReadStr(configSetup, "ntp");
|
String ntp = jsonReadStr(configSetupJson, "ntp");
|
||||||
configTime(0, 0, ntp.c_str());
|
configTime(0, 0, ntp.c_str());
|
||||||
int i = 0;
|
int i = 0;
|
||||||
Serial.println("[i] Awaiting for time ");
|
Serial.println("[i] Awaiting for time ");
|
||||||
@@ -74,7 +74,7 @@ String GetTimeUnix() {
|
|||||||
// Получение текущего времени
|
// Получение текущего времени
|
||||||
String GetTime() {
|
String GetTime() {
|
||||||
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
||||||
int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt();
|
int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt();
|
||||||
now = now + zone;
|
now = now + zone;
|
||||||
String Time = ""; // Строка для результатов времени
|
String Time = ""; // Строка для результатов времени
|
||||||
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
||||||
@@ -85,7 +85,7 @@ String GetTime() {
|
|||||||
|
|
||||||
String GetTimeWOsec() {
|
String GetTimeWOsec() {
|
||||||
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
||||||
int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt();
|
int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt();
|
||||||
now = now + zone;
|
now = now + zone;
|
||||||
String Time = ""; // Строка для результатов времени
|
String Time = ""; // Строка для результатов времени
|
||||||
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
||||||
@@ -97,7 +97,7 @@ String GetTimeWOsec() {
|
|||||||
// Получение даты
|
// Получение даты
|
||||||
String GetDate() {
|
String GetDate() {
|
||||||
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
||||||
int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt();
|
int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt();
|
||||||
now = now + zone;
|
now = now + zone;
|
||||||
String Data = ""; // Строка для результатов времени
|
String Data = ""; // Строка для результатов времени
|
||||||
Data += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
Data += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
void Timer_countdown_init() {
|
void Timer_countdown_init() {
|
||||||
ts.add(
|
ts.add(
|
||||||
TIMER_COUNTDOWN, 1000, [&](void*) {
|
TIMER_COUNTDOWN, 1000, [&](void*) {
|
||||||
String old_line = jsonReadStr(optionJson, "timers");
|
String old_line = jsonReadStr(configOptionJson, "timers");
|
||||||
if (old_line != "") {
|
if (old_line != "") {
|
||||||
//Serial.println(old_line);
|
//Serial.println(old_line);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
@@ -16,7 +16,7 @@ void Timer_countdown_init() {
|
|||||||
int time = readTimer(number);
|
int time = readTimer(number);
|
||||||
if (time == 0) {
|
if (time == 0) {
|
||||||
delTimer(String(number));
|
delTimer(String(number));
|
||||||
jsonWriteStr(configJson, "timer" + String(number), "0");
|
jsonWriteStr(configLiveJson, "timer" + String(number), "0");
|
||||||
eventGen("timer", String(number));
|
eventGen("timer", String(number));
|
||||||
} else {
|
} else {
|
||||||
time--;
|
time--;
|
||||||
@@ -34,17 +34,17 @@ void timerStart_() {
|
|||||||
String period_of_time = sCmd.next();
|
String period_of_time = sCmd.next();
|
||||||
String type = sCmd.next();
|
String type = sCmd.next();
|
||||||
if (period_of_time.indexOf("digit") != -1) {
|
if (period_of_time.indexOf("digit") != -1) {
|
||||||
period_of_time = jsonReadStr(configJson, period_of_time);
|
period_of_time = jsonReadStr(configLiveJson, period_of_time);
|
||||||
}
|
}
|
||||||
if (type == "sec") period_of_time = period_of_time;
|
if (type == "sec") period_of_time = period_of_time;
|
||||||
if (type == "min") period_of_time = String(period_of_time.toInt() * 60);
|
if (type == "min") period_of_time = String(period_of_time.toInt() * 60);
|
||||||
if (type == "hours") period_of_time = String(period_of_time.toInt() * 60 * 60);
|
if (type == "hours") period_of_time = String(period_of_time.toInt() * 60 * 60);
|
||||||
addTimer(number, period_of_time);
|
addTimer(number, period_of_time);
|
||||||
jsonWriteStr(configJson, "timer" + number, "1");
|
jsonWriteStr(configLiveJson, "timer" + number, "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
void addTimer(String number, String time) {
|
void addTimer(String number, String time) {
|
||||||
String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120,
|
String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120,
|
||||||
String new_timer = number + ":" + time;
|
String new_timer = number + ":" + time;
|
||||||
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить
|
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить
|
||||||
if (psn1 != -1) { //если он есть
|
if (psn1 != -1) { //если он есть
|
||||||
@@ -56,7 +56,7 @@ void addTimer(String number, String time) {
|
|||||||
} else { //если его нет
|
} else { //если его нет
|
||||||
tmp += new_timer + ",";
|
tmp += new_timer + ",";
|
||||||
}
|
}
|
||||||
jsonWriteStr(optionJson, "timers", tmp);
|
jsonWriteStr(configOptionJson, "timers", tmp);
|
||||||
//Serial.println("ura");
|
//Serial.println("ura");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,18 +66,18 @@ void timerStop_() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void delTimer(String number) {
|
void delTimer(String number) {
|
||||||
String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120,
|
String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120,
|
||||||
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо удалить
|
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо удалить
|
||||||
if (psn1 != -1) { //если он есть
|
if (psn1 != -1) { //если он есть
|
||||||
int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой
|
int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой
|
||||||
String timer = tmp.substring(psn1, psn2) + ","; //1:60, выделяем таймер который надо удалить
|
String timer = tmp.substring(psn1, psn2) + ","; //1:60, выделяем таймер который надо удалить
|
||||||
tmp.replace(timer, ""); //удаляем таймер
|
tmp.replace(timer, ""); //удаляем таймер
|
||||||
jsonWriteStr(optionJson, "timers", tmp);
|
jsonWriteStr(configOptionJson, "timers", tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int readTimer(int number) {
|
int readTimer(int number) {
|
||||||
String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120,
|
String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120,
|
||||||
int psn1 = tmp.indexOf(String(number) + ":"); //0 ищем позицию таймера который надо прочитать
|
int psn1 = tmp.indexOf(String(number) + ":"); //0 ищем позицию таймера который надо прочитать
|
||||||
String timer;
|
String timer;
|
||||||
if (psn1 != -1) { //если он есть
|
if (psn1 != -1) { //если он есть
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ const String getFirmwareUrl() {
|
|||||||
|
|
||||||
void initUpgrade() {
|
void initUpgrade() {
|
||||||
String last_version = WiFi.status() == WL_CONNECTED ? getURL(getVersionUrl()) : "";
|
String last_version = WiFi.status() == WL_CONNECTED ? getURL(getVersionUrl()) : "";
|
||||||
jsonWriteStr(configSetup, "last_version", last_version);
|
jsonWriteStr(configSetupJson, "last_version", last_version);
|
||||||
|
|
||||||
Serial.printf("[i] Last firmware version: %s\n", last_version.c_str());
|
Serial.printf("[i] Last firmware version: %s\n", last_version.c_str());
|
||||||
|
|
||||||
@@ -73,17 +73,17 @@ void do_upgrade_url() {
|
|||||||
if (upgrade_url) {
|
if (upgrade_url) {
|
||||||
upgrade_url = false;
|
upgrade_url = false;
|
||||||
last_version = getURL(getVersionUrl());
|
last_version = getURL(getVersionUrl());
|
||||||
jsonWriteStr(configSetup, "last_version", last_version);
|
jsonWriteStr(configSetupJson, "last_version", last_version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void upgrade_firmware() {
|
void upgrade_firmware() {
|
||||||
String scenario_for_update;
|
String scenario_for_update;
|
||||||
String config_for_update;
|
String config_for_update;
|
||||||
String configSetup_for_update;
|
String configSetupJson_for_update;
|
||||||
scenario_for_update = readFile("firmware.s.txt", 4000);
|
scenario_for_update = readFile("firmware.s.txt", 4000);
|
||||||
config_for_update = readFile("firmware.c.txt", 4000);
|
config_for_update = readFile("firmware.c.txt", 4000);
|
||||||
configSetup_for_update = configSetup;
|
configSetupJson_for_update = configSetupJson;
|
||||||
|
|
||||||
Serial.println("Start upgrade SPIFFS, please wait...");
|
Serial.println("Start upgrade SPIFFS, please wait...");
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ void upgrade_firmware() {
|
|||||||
if (ret == HTTP_UPDATE_OK) {
|
if (ret == HTTP_UPDATE_OK) {
|
||||||
writeFile("firmware.s.txt", scenario_for_update);
|
writeFile("firmware.s.txt", scenario_for_update);
|
||||||
writeFile("firmware.c.txt", config_for_update);
|
writeFile("firmware.c.txt", config_for_update);
|
||||||
writeFile("config.json", configSetup_for_update);
|
writeFile("config.json", configSetupJson_for_update);
|
||||||
saveConfig();
|
saveConfig();
|
||||||
|
|
||||||
Serial.println("SPIFFS upgrade done!");
|
Serial.println("SPIFFS upgrade done!");
|
||||||
@@ -157,16 +157,16 @@ void do_upgrade() {
|
|||||||
if (spiffsData != "") { // Если нужно прошить FS
|
if (spiffsData != "") { // Если нужно прошить FS
|
||||||
String scenario_for_update;
|
String scenario_for_update;
|
||||||
String config_for_update;
|
String config_for_update;
|
||||||
String configSetup_for_update;
|
String configSetupJson_for_update;
|
||||||
Serial.println(spiffsData);
|
Serial.println(spiffsData);
|
||||||
scenario_for_update = readFile("firmware.s.txt", 2048);
|
scenario_for_update = readFile("firmware.s.txt", 2048);
|
||||||
config_for_update = readFile("config.all.txt", 2048);
|
config_for_update = readFile("config.all.txt", 2048);
|
||||||
configSetup_for_update = configSetup;
|
configSetupJson_for_update = configSetupJson;
|
||||||
ESPhttpUpdate.rebootOnUpdate(false); // Отключим перезагрузку после обновления
|
ESPhttpUpdate.rebootOnUpdate(false); // Отключим перезагрузку после обновления
|
||||||
updateHTTP(spiffsData, true);
|
updateHTTP(spiffsData, true);
|
||||||
writeFile("firmware.s.txt", scenario_for_update);
|
writeFile("firmware.s.txt", scenario_for_update);
|
||||||
writeFile("config.all.txt", config_for_update);
|
writeFile("config.all.txt", config_for_update);
|
||||||
writeFile("config.json", configSetup_for_update);
|
writeFile("config.json", configSetupJson_for_update);
|
||||||
saveConfig();
|
saveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ void Web_server_init() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
server.addHandler(new SPIFFSEditor(SPIFFS, jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str()));
|
server.addHandler(new SPIFFSEditor(SPIFFS, jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str()));
|
||||||
#elif defined(ESP8266)
|
#elif defined(ESP8266)
|
||||||
server.addHandler(new SPIFFSEditor(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str()));
|
server.addHandler(new SPIFFSEditor(jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* server.on("/heap", HTTP_GET, [](AsyncWebServerRequest * request) {
|
/* server.on("/heap", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||||
@@ -63,7 +63,7 @@ void Web_server_init() {
|
|||||||
server.serveStatic("/js/", SPIFFS, "/js/").setCacheControl("max-age=31536000");
|
server.serveStatic("/js/", SPIFFS, "/js/").setCacheControl("max-age=31536000");
|
||||||
server.serveStatic("/favicon.ico", SPIFFS, "/favicon.ico").setCacheControl("max-age=31536000");
|
server.serveStatic("/favicon.ico", SPIFFS, "/favicon.ico").setCacheControl("max-age=31536000");
|
||||||
|
|
||||||
server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm").setAuthentication(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str());
|
server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm").setAuthentication(jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str());
|
||||||
|
|
||||||
server.onNotFound([](AsyncWebServerRequest *request) {
|
server.onNotFound([](AsyncWebServerRequest *request) {
|
||||||
Serial.printf("NOT_FOUND: ");
|
Serial.printf("NOT_FOUND: ");
|
||||||
@@ -130,17 +130,17 @@ void Web_server_init() {
|
|||||||
|
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
// --------------------Выдаем данные configJson //config.live.json - динамические данные
|
// --------------------Выдаем данные configLiveJson //config.live.json - динамические данные
|
||||||
server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest *request) {
|
server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest *request) {
|
||||||
request->send(200, "application/json", configJson);
|
request->send(200, "application/json", configLiveJson);
|
||||||
});
|
});
|
||||||
// --------------------Выдаем данные optionJson //config.option.json - данные не являющиеся событиями
|
// --------------------Выдаем данные configOptionJson //config.option.json - данные не являющиеся событиями
|
||||||
server.on("/config.option.json", HTTP_GET, [](AsyncWebServerRequest *request) {
|
server.on("/config.option.json", HTTP_GET, [](AsyncWebServerRequest *request) {
|
||||||
request->send(200, "application/json", optionJson);
|
request->send(200, "application/json", configOptionJson);
|
||||||
});
|
});
|
||||||
// -------------------Выдаем данные configSetup //config.setup.json - для хранения постоянных данных
|
// -------------------Выдаем данные configSetupJson //config.setup.json - для хранения постоянных данных
|
||||||
server.on("/config.setup.json", HTTP_GET, [](AsyncWebServerRequest *request) {
|
server.on("/config.setup.json", HTTP_GET, [](AsyncWebServerRequest *request) {
|
||||||
request->send(200, "application/json", configSetup);
|
request->send(200, "application/json", configSetupJson);
|
||||||
});
|
});
|
||||||
|
|
||||||
// ------------------Выполнение команды из запроса
|
// ------------------Выполнение команды из запроса
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ void WIFI_init()
|
|||||||
server.on("/ssid", HTTP_GET, [](AsyncWebServerRequest *request) {
|
server.on("/ssid", HTTP_GET, [](AsyncWebServerRequest *request) {
|
||||||
if (request->hasArg("ssid"))
|
if (request->hasArg("ssid"))
|
||||||
{
|
{
|
||||||
jsonWriteStr(configSetup, "ssid", request->getParam("ssid")->value());
|
jsonWriteStr(configSetupJson, "ssid", request->getParam("ssid")->value());
|
||||||
}
|
}
|
||||||
if (request->hasArg("password"))
|
if (request->hasArg("password"))
|
||||||
{
|
{
|
||||||
jsonWriteStr(configSetup, "password", request->getParam("password")->value());
|
jsonWriteStr(configSetupJson, "password", request->getParam("password")->value());
|
||||||
}
|
}
|
||||||
saveConfig(); // Функция сохранения данных во Flash
|
saveConfig(); // Функция сохранения данных во Flash
|
||||||
request->send(200, "text/text", "OK"); // отправляем ответ о выполнении
|
request->send(200, "text/text", "OK"); // отправляем ответ о выполнении
|
||||||
@@ -21,11 +21,11 @@ void WIFI_init()
|
|||||||
server.on("/ssidap", HTTP_GET, [](AsyncWebServerRequest *request) {
|
server.on("/ssidap", HTTP_GET, [](AsyncWebServerRequest *request) {
|
||||||
if (request->hasArg("ssidAP"))
|
if (request->hasArg("ssidAP"))
|
||||||
{
|
{
|
||||||
jsonWriteStr(configSetup, "ssidAP", request->getParam("ssidAP")->value());
|
jsonWriteStr(configSetupJson, "ssidAP", request->getParam("ssidAP")->value());
|
||||||
}
|
}
|
||||||
if (request->hasArg("passwordAP"))
|
if (request->hasArg("passwordAP"))
|
||||||
{
|
{
|
||||||
jsonWriteStr(configSetup, "passwordAP", request->getParam("passwordAP")->value());
|
jsonWriteStr(configSetupJson, "passwordAP", request->getParam("passwordAP")->value());
|
||||||
}
|
}
|
||||||
saveConfig(); // Функция сохранения данных во Flash
|
saveConfig(); // Функция сохранения данных во Flash
|
||||||
request->send(200, "text/text", "OK"); // отправляем ответ о выполнении
|
request->send(200, "text/text", "OK"); // отправляем ответ о выполнении
|
||||||
@@ -35,11 +35,11 @@ void WIFI_init()
|
|||||||
server.on("/web", HTTP_GET, [](AsyncWebServerRequest *request) {
|
server.on("/web", HTTP_GET, [](AsyncWebServerRequest *request) {
|
||||||
if (request->hasArg("web_login"))
|
if (request->hasArg("web_login"))
|
||||||
{
|
{
|
||||||
jsonWriteStr(configSetup, "web_login", request->getParam("web_login")->value());
|
jsonWriteStr(configSetupJson, "web_login", request->getParam("web_login")->value());
|
||||||
}
|
}
|
||||||
if (request->hasArg("web_pass"))
|
if (request->hasArg("web_pass"))
|
||||||
{
|
{
|
||||||
jsonWriteStr(configSetup, "web_pass", request->getParam("web_pass")->value());
|
jsonWriteStr(configSetupJson, "web_pass", request->getParam("web_pass")->value());
|
||||||
}
|
}
|
||||||
saveConfig(); // Функция сохранения данных во Flash
|
saveConfig(); // Функция сохранения данных во Flash
|
||||||
//Web_server_init();
|
//Web_server_init();
|
||||||
@@ -64,8 +64,8 @@ void ROUTER_Connecting()
|
|||||||
WiFi.mode(WIFI_STA);
|
WiFi.mode(WIFI_STA);
|
||||||
|
|
||||||
byte tries = 20;
|
byte tries = 20;
|
||||||
String _ssid = jsonReadStr(configSetup, "ssid");
|
String _ssid = jsonReadStr(configSetupJson, "ssid");
|
||||||
String _password = jsonReadStr(configSetup, "password");
|
String _password = jsonReadStr(configSetupJson, "password");
|
||||||
//WiFi.persistent(false);
|
//WiFi.persistent(false);
|
||||||
|
|
||||||
if (_ssid == "" && _password == "")
|
if (_ssid == "" && _password == "")
|
||||||
@@ -86,7 +86,7 @@ void ROUTER_Connecting()
|
|||||||
{
|
{
|
||||||
Serial.println("[E] password is not correct");
|
Serial.println("[E] password is not correct");
|
||||||
tries = 1;
|
tries = 1;
|
||||||
jsonWriteInt(optionJson, "pass_status", 1);
|
jsonWriteInt(configOptionJson, "pass_status", 1);
|
||||||
}
|
}
|
||||||
Serial.print(".");
|
Serial.print(".");
|
||||||
delay(1000);
|
delay(1000);
|
||||||
@@ -104,7 +104,7 @@ void ROUTER_Connecting()
|
|||||||
Serial.print(WiFi.localIP());
|
Serial.print(WiFi.localIP());
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
|
||||||
jsonWriteStr(configJson, "ip", WiFi.localIP().toString());
|
jsonWriteStr(configLiveJson, "ip", WiFi.localIP().toString());
|
||||||
led_blink("off");
|
led_blink("off");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -116,21 +116,21 @@ bool StartAPMode()
|
|||||||
|
|
||||||
WiFi.mode(WIFI_AP);
|
WiFi.mode(WIFI_AP);
|
||||||
|
|
||||||
String _ssidAP = jsonReadStr(configSetup, "ssidAP");
|
String _ssidAP = jsonReadStr(configSetupJson, "ssidAP");
|
||||||
String _passwordAP = jsonReadStr(configSetup, "passwordAP");
|
String _passwordAP = jsonReadStr(configSetupJson, "passwordAP");
|
||||||
WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str());
|
WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str());
|
||||||
IPAddress myIP = WiFi.softAPIP();
|
IPAddress myIP = WiFi.softAPIP();
|
||||||
led_blink("on");
|
led_blink("on");
|
||||||
Serial.print("AP IP address: ");
|
Serial.print("AP IP address: ");
|
||||||
Serial.println(myIP);
|
Serial.println(myIP);
|
||||||
jsonWriteStr(configJson, "ip", myIP.toString());
|
jsonWriteStr(configLiveJson, "ip", myIP.toString());
|
||||||
|
|
||||||
if (jsonReadInt(optionJson, "pass_status") != 1)
|
if (jsonReadInt(configOptionJson, "pass_status") != 1)
|
||||||
{
|
{
|
||||||
ts.add(
|
ts.add(
|
||||||
ROUTER_SEARCHING, 10 * 1000, [&](void *) {
|
ROUTER_SEARCHING, 10 * 1000, [&](void *) {
|
||||||
Serial.println("->try find router");
|
Serial.println("->try find router");
|
||||||
if (RouterFind(jsonReadStr(configSetup, "ssid")))
|
if (RouterFind(jsonReadStr(configSetupJson, "ssid")))
|
||||||
{
|
{
|
||||||
ts.remove(ROUTER_SEARCHING);
|
ts.remove(ROUTER_SEARCHING);
|
||||||
WiFi.scanDelete();
|
WiFi.scanDelete();
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ void do_i2c_scanning() {
|
|||||||
if (tmp == "error") {
|
if (tmp == "error") {
|
||||||
tmp = i2c_scan();
|
tmp = i2c_scan();
|
||||||
Serial.println(tmp);
|
Serial.println(tmp);
|
||||||
jsonWriteStr(configJson, "i2c", tmp);
|
jsonWriteStr(configLiveJson, "i2c", tmp);
|
||||||
} else {
|
} else {
|
||||||
Serial.println(tmp);
|
Serial.println(tmp);
|
||||||
jsonWriteStr(configJson, "i2c", tmp);
|
jsonWriteStr(configLiveJson, "i2c", tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
|
|
||||||
void saveConfig() {
|
void saveConfig() {
|
||||||
writeFile("config.json", configSetup);
|
writeFile("config.json", configSetupJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------Посчитать -----------------------------------------------------------------------------------
|
//--------------------Посчитать -----------------------------------------------------------------------------------
|
||||||
@@ -49,7 +49,7 @@ void safeDataToFile(String data, String Folder) {
|
|||||||
fileName = Folder + "/" + fileName + ".txt";
|
fileName = Folder + "/" + fileName + ".txt";
|
||||||
// addFile(fileName, GetTime() + "/" + data);
|
// addFile(fileName, GetTime() + "/" + data);
|
||||||
Serial.println(fileName);
|
Serial.println(fileName);
|
||||||
jsonWriteStr(configJson, "test", fileName);
|
jsonWriteStr(configLiveJson, "test", fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------- Чтение файла в строку -------------------------------------------------------------------------------
|
// ------------- Чтение файла в строку -------------------------------------------------------------------------------
|
||||||
@@ -113,7 +113,7 @@ String readFileString(const String& filename, const String& str_to_found) {
|
|||||||
|
|
||||||
void sendCONFIG(String topik, String widgetConfig, String key, String date) {
|
void sendCONFIG(String topik, String widgetConfig, String key, String date) {
|
||||||
yield();
|
yield();
|
||||||
topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/status";
|
topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/status";
|
||||||
String outer = "{\"widgetConfig\":";
|
String outer = "{\"widgetConfig\":";
|
||||||
String inner = "{\"";
|
String inner = "{\"";
|
||||||
inner = inner + key;
|
inner = inner + key;
|
||||||
|
|||||||
38
src/udp.cpp
38
src/udp.cpp
@@ -11,11 +11,11 @@ void UDP_init() {
|
|||||||
value = request->getParam("arg")->value();
|
value = request->getParam("arg")->value();
|
||||||
}
|
}
|
||||||
if (value == "0") {
|
if (value == "0") {
|
||||||
jsonWriteStr(configSetup, "udponoff", value);
|
jsonWriteStr(configSetupJson, "udponoff", value);
|
||||||
request->send(200, "text/text", "ok");
|
request->send(200, "text/text", "ok");
|
||||||
}
|
}
|
||||||
if (value == "1") {
|
if (value == "1") {
|
||||||
jsonWriteStr(configSetup, "udponoff", value);
|
jsonWriteStr(configSetupJson, "udponoff", value);
|
||||||
request->send(200, "text/text", "ok");
|
request->send(200, "text/text", "ok");
|
||||||
}
|
}
|
||||||
if (value == "2") {
|
if (value == "2") {
|
||||||
@@ -33,8 +33,8 @@ void UDP_init() {
|
|||||||
});
|
});
|
||||||
server.on("/name", HTTP_GET, [](AsyncWebServerRequest * request) {
|
server.on("/name", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||||
if (request->hasArg("arg")) {
|
if (request->hasArg("arg")) {
|
||||||
jsonWriteStr(configSetup, "name", request->getParam("arg")->value());
|
jsonWriteStr(configSetupJson, "name", request->getParam("arg")->value());
|
||||||
jsonWriteStr(configJson, "name", request->getParam("arg")->value());
|
jsonWriteStr(configLiveJson, "name", request->getParam("arg")->value());
|
||||||
saveConfig();
|
saveConfig();
|
||||||
}
|
}
|
||||||
request->send(200, "text/text", "OK");
|
request->send(200, "text/text", "OK");
|
||||||
@@ -53,10 +53,10 @@ void UDP_init() {
|
|||||||
udp_period = random(50000, 60000);
|
udp_period = random(50000, 60000);
|
||||||
|
|
||||||
ts.add(UDP, udp_period, [&](void*) {
|
ts.add(UDP, udp_period, [&](void*) {
|
||||||
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetupJson, "udponoff") == "1") {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
if (!udp_busy) {
|
if (!udp_busy) {
|
||||||
String line_to_send = "iotm;" + chipID + ";" + jsonReadStr(configSetup, "name");
|
String line_to_send = "iotm;" + chipID + ";" + jsonReadStr(configSetupJson, "name");
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||||
Udp.write(line_to_send.c_str());
|
Udp.write(line_to_send.c_str());
|
||||||
@@ -74,7 +74,7 @@ void UDP_init() {
|
|||||||
|
|
||||||
void handleUdp() {
|
void handleUdp() {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetupJson, "udponoff") == "1") {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
int packetSize = Udp.parsePacket();
|
int packetSize = Udp.parsePacket();
|
||||||
if (packetSize) {
|
if (packetSize) {
|
||||||
@@ -105,7 +105,7 @@ void handleUdp_esp32() {
|
|||||||
udp.onPacket([](AsyncUDPPacket packet) {
|
udp.onPacket([](AsyncUDPPacket packet) {
|
||||||
received_udp_line = (char*)packet.data();
|
received_udp_line = (char*)packet.data();
|
||||||
received_ip = packet.remoteIP().toString();
|
received_ip = packet.remoteIP().toString();
|
||||||
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetupJson, "udponoff") == "1") {
|
||||||
|
|
||||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||||
udp_data_parse = true;
|
udp_data_parse = true;
|
||||||
@@ -127,11 +127,11 @@ void do_udp_data_parse() {
|
|||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(received_udp_line);
|
Serial.println(received_udp_line);
|
||||||
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
||||||
jsonWriteStr(configSetup, "mqttServer", jsonReadStr(received_udp_line, "mqttServer"));
|
jsonWriteStr(configSetupJson, "mqttServer", jsonReadStr(received_udp_line, "mqttServer"));
|
||||||
jsonWriteInt(configSetup, "mqttPort", jsonReadInt(received_udp_line, "mqttPort"));
|
jsonWriteInt(configSetupJson, "mqttPort", jsonReadInt(received_udp_line, "mqttPort"));
|
||||||
jsonWriteStr(configSetup, "mqttPrefix", jsonReadStr(received_udp_line, "mqttPrefix"));
|
jsonWriteStr(configSetupJson, "mqttPrefix", jsonReadStr(received_udp_line, "mqttPrefix"));
|
||||||
jsonWriteStr(configSetup, "mqttUser", jsonReadStr(received_udp_line, "mqttUser"));
|
jsonWriteStr(configSetupJson, "mqttUser", jsonReadStr(received_udp_line, "mqttUser"));
|
||||||
jsonWriteStr(configSetup, "mqttPass", jsonReadStr(received_udp_line, "mqttPass"));
|
jsonWriteStr(configSetupJson, "mqttPass", jsonReadStr(received_udp_line, "mqttPass"));
|
||||||
saveConfig();
|
saveConfig();
|
||||||
Serial.println("[V] new mqtt setting received from udp and saved");
|
Serial.println("[V] new mqtt setting received from udp and saved");
|
||||||
mqtt_connection = true;
|
mqtt_connection = true;
|
||||||
@@ -150,15 +150,15 @@ void add_dev_in_list(String fileName, String id, String dev_name, String ip) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void send_mqtt_to_udp() {
|
void send_mqtt_to_udp() {
|
||||||
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetupJson, "udponoff") == "1") {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
udp_busy = true;
|
udp_busy = true;
|
||||||
String mqtt_data = "{}";
|
String mqtt_data = "{}";
|
||||||
jsonWriteStr(mqtt_data, "mqttServer", jsonReadStr(configSetup, "mqttServer"));
|
jsonWriteStr(mqtt_data, "mqttServer", jsonReadStr(configSetupJson, "mqttServer"));
|
||||||
jsonWriteInt(mqtt_data, "mqttPort", jsonReadInt(configSetup, "mqttPort"));
|
jsonWriteInt(mqtt_data, "mqttPort", jsonReadInt(configSetupJson, "mqttPort"));
|
||||||
jsonWriteStr(mqtt_data, "mqttPrefix", jsonReadStr(configSetup, "mqttPrefix"));
|
jsonWriteStr(mqtt_data, "mqttPrefix", jsonReadStr(configSetupJson, "mqttPrefix"));
|
||||||
jsonWriteStr(mqtt_data, "mqttUser", jsonReadStr(configSetup, "mqttUser"));
|
jsonWriteStr(mqtt_data, "mqttUser", jsonReadStr(configSetupJson, "mqttUser"));
|
||||||
jsonWriteStr(mqtt_data, "mqttPass", jsonReadStr(configSetup, "mqttPass"));
|
jsonWriteStr(mqtt_data, "mqttPass", jsonReadStr(configSetupJson, "mqttPass"));
|
||||||
Serial.println(mqtt_data);
|
Serial.println(mqtt_data);
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||||
|
|||||||
Reference in New Issue
Block a user