diff --git a/data/config.json b/data/config.json index 84768aa7..57cfd757 100644 --- a/data/config.json +++ b/data/config.json @@ -12,10 +12,15 @@ "mqttPrefix": "/iotTest", "mqttUser": "rise", "mqttPass": "23ri22se32", + "mqttServer2": "", + "mqttPort2": 1883, + "mqttPrefix2": "/iotTest", + "mqttUser2": "", + "mqttPass2": "", "scen": "1", "telegramApi": "1416711569:AAEI0j83GmXqwzb_gnK1B0Am0gDwZoJt5xo", "telegonof": "0", - "teleginput":"0", + "teleginput": "0", "weblogin": "admin", "webpass": "admin", "MqttIn": "0", @@ -24,7 +29,7 @@ "oneWirePin": "2", "serverip": "http://206.189.49.244", "uart": "0", - "uartS":"9600", - "uartTX":"12", - "uartRX":"13" + "uartS": "9600", + "uartTX": "12", + "uartRX": "13" } \ No newline at end of file diff --git a/data/items/items.txt b/data/items/items.txt index d19eba63..3ff53afd 100644 --- a/data/items/items.txt +++ b/data/items/items.txt @@ -1,24 +1,24 @@ -1;0;button-out;id;toggle;Кнопки;Освещение;order;pin -2;0;button-out;id;toggle;Кнопки;Освещение;order;pin;inv[1] +1;0;button-out;id;toggle;Кнопки;Освещение;order;gpio +2;0;button-out;id;toggle;Кнопки;Освещение;order;gpio;inv[1] 3;0;button-out;id;toggle;Кнопки;Освещение;order -4;0;button-in;id;toggle;Кнопки;Освещение;order;pin;db[20] -5;0;pwm-out;id;range;Ползунки;Яркость;order;pin +4;0;button-in;id;toggle;Кнопки;Освещение;order;gpio;db[20] +5;0;pwm-out;id;range;Ползунки;Яркость;order;gpio 6;0;inoutput;id;inputDigit;Ввод;Введите#цифру;order 7;0;inoutput;id;inputTime;Ввод;Введите#время;order 8;0;inoutput;id;anydata;Вывод;Сигнализация;order -9;0;analog-adc;id;fillgauge;Сенсоры;Аналоговый;order;gol;map[0,1024,0,100];c[1] -10;0;dallas-temp;id;anydataTemp;Сенсоры;Температура;order;sal;index[0];int[10] -11;0;ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;cin;map[0,500,0,100];c[1];int[10] -12;0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;thd;type[dht11];c[1] -13;0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;thd;type[dht11];c[1] -14;0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;thd;type[dht22];c[1] -15;0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;thd;type[dht22];c[1] +9;0;analog-adc;id;fillgauge;Сенсоры;Аналоговый;order;gpio;map[0,1024,0,100];c[1] +10;0;dallas-temp;id;anydataTemp;Сенсоры;Температура;order;pin[2];index[0];int[10] +11;0;ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin[12,13];map[0,500,0,100];c[1];int[10] +12;0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;pin[2];type[dht11];c[1] +13;0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;pin[2];type[dht11];c[1] +14;0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;pin[2];type[dht22];c[1] +15;0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;pin[2];type[dht22];c[1] 16;0;bme280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1] 17;0;bme280-hum;id;anydataHum;Сенсоры;Влажность;order;addr[0x76];c[1] 18;0;bme280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1] 19;0;bmp280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1] 20;0;bmp280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1] -21;0;impuls-out;id;na;na;na;order;pin +21;0;impuls-out;id;na;na;na;order;gpio 22;0;count-down;id;anydata;Таймер;Обратный#отчет;order 23;0;inoutput;id;anydata;Вывод;Вывод#uart;order 24;0;logging;id;chart;Графики;История;order;val[any];int[60];cnt[100] diff --git a/data/set.mqtt.json.gz b/data/set.mqtt.json.gz index 6ee1c9ab..f6c1c7c4 100644 Binary files a/data/set.mqtt.json.gz and b/data/set.mqtt.json.gz differ diff --git a/data_ungzip/set.mqtt.json b/data_ungzip/set.mqtt.json index 58223acf..179f19d6 100644 --- a/data_ungzip/set.mqtt.json +++ b/data_ungzip/set.mqtt.json @@ -19,6 +19,14 @@ { "type": "hr" }, + { + "type": "h3", + "title": "Основной брокер", + "style": "width:100%;float:left;" + }, + { + "type": "hr" + }, { "type": "h4", "title": "{{SetMQTTServerName}}", @@ -79,6 +87,77 @@ "state": "{{mqttPass}}", "style": "width:40%;float:right" }, + { + "type": "hr" + }, + { + "type": "h3", + "title": "Резервный брокер", + "style": "width:100%;float:left;" + }, + { + "type": "hr" + }, + { + "type": "h4", + "title": "{{SetMQTTServerName}}", + "style": "width:60%;float:left;" + }, + { + "type": "input", + "title": "", + "name": "mqttServer2-arg", + "state": "{{mqttServer2}}", + "style": "width:40%;float:right" + }, + { + "type": "h4", + "title": "{{SetMQTTPort}}", + "style": "width:60%;float:left;" + }, + { + "type": "input", + "title": "", + "name": "mqttPort2-arg", + "state": "{{mqttPort2}}", + "style": "width:40%;float:right" + }, + { + "type": "h4", + "title": "{{SetMQTTPrefix}}", + "style": "width:60%;float:left;" + }, + { + "type": "input", + "title": "", + "name": "mqttPrefix2-arg", + "state": "{{mqttPrefix2}}", + "style": "width:40%;float:right" + }, + { + "type": "h4", + "title": "{{SetMQTTUserName}}", + "style": "width:60%;float:left;" + }, + { + "type": "input", + "title": "", + "name": "mqttUser2-arg", + "state": "{{mqttUser2}}", + "style": "width:40%;float:right" + }, + { + "type": "h4", + "title": "{{SetMQTTPassword}}", + "style": "width:60%;float:left;" + }, + { + "type": "input", + "title": "", + "name": "mqttPass2-arg", + "state": "{{mqttPass2}}", + "style": "width:40%;float:right" + }, { "type": "h3", "name": "my-block", @@ -89,9 +168,10 @@ "type": "button", "title": "{{ButSave}}", "style": "width:100%;float:left;", - "action": "set?mqttServer=[[mqttServer-arg]]&mqttPort=[[mqttPort-arg]]&mqttPrefix=[[mqttPrefix-arg]]&mqttUser=[[mqttUser-arg]]&mqttPass=[[mqttPass-arg]]", + "action": "set?mqttServer=[[mqttServer-arg]]&mqttPort=[[mqttPort-arg]]&mqttPrefix=[[mqttPrefix-arg]]&mqttUser=[[mqttUser-arg]]&mqttPass=[[mqttPass-arg]]&mqttServer2=[[mqttServer2-arg]]&mqttPort2=[[mqttPort2-arg]]&mqttPrefix2=[[mqttPrefix2-arg]]&mqttUser2=[[mqttUser2-arg]]&mqttPass2=[[mqttPass2-arg]]", "class": "btn btn-block btn-default" }, + { "type": "button", "style": "width:100%;float:left;", diff --git a/src/ItemsList.cpp b/src/ItemsList.cpp index df27a11c..361b0538 100644 --- a/src/ItemsList.cpp +++ b/src/ItemsList.cpp @@ -48,8 +48,8 @@ void addItem2(String param) { seachingLine.replace("id", name + String(rnd)); seachingLine.replace("order", String(getNewElementNumber("order.txt"))); - if (seachingLine.indexOf("pin") != -1) { - seachingLine.replace("pin", "pin[" + String(getFreePinAll()) + "]"); + if (seachingLine.indexOf("gpio") != -1) { + seachingLine.replace("gpio", "pin[" + String(getFreePinAll()) + "]"); } seachingLine = deleteBeforeDelimiter(seachingLine, ";"); diff --git a/src/Web.cpp b/src/Web.cpp index e3ff767e..0d4c5875 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -171,33 +171,66 @@ void web_init() { } //==============================mqtt settings============================================= - if (request->hasArg("mqttServer")) { - jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value()); + //primary + if (request->hasArg(F("mqttServer"))) { + jsonWriteStr(configSetupJson, F("mqttServer"), request->getParam(F("mqttServer"))->value()); saveConfig(); myNotAsyncActions->make(do_MQTTPARAMSCHANGED); request->send(200); } - if (request->hasArg("mqttPort")) { - int port = (request->getParam("mqttPort")->value()).toInt(); - jsonWriteInt(configSetupJson, "mqttPort", port); + if (request->hasArg(F("mqttPort"))) { + int port = (request->getParam(F("mqttPort"))->value()).toInt(); + jsonWriteInt(configSetupJson, F("mqttPort"), port); saveConfig(); myNotAsyncActions->make(do_MQTTPARAMSCHANGED); request->send(200); } - if (request->hasArg("mqttPrefix")) { - jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value()); + if (request->hasArg(F("mqttPrefix"))) { + jsonWriteStr(configSetupJson, F("mqttPrefix"), request->getParam(F("mqttPrefix"))->value()); saveConfig(); myNotAsyncActions->make(do_MQTTPARAMSCHANGED); request->send(200); } - if (request->hasArg("mqttUser")) { - jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value()); + if (request->hasArg(F("mqttUser"))) { + jsonWriteStr(configSetupJson, F("mqttUser"), request->getParam(F("mqttUser"))->value()); saveConfig(); myNotAsyncActions->make(do_MQTTPARAMSCHANGED); request->send(200); } - if (request->hasArg("mqttPass")) { - jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value()); + if (request->hasArg(F("mqttPass"))) { + jsonWriteStr(configSetupJson, F("mqttPass"), request->getParam(F("mqttPass"))->value()); + saveConfig(); + myNotAsyncActions->make(do_MQTTPARAMSCHANGED); + request->send(200); + } + //secondary + if (request->hasArg(F("mqttServer2"))) { + jsonWriteStr(configSetupJson, F("mqttServer2"), request->getParam(F("mqttServer2"))->value()); + saveConfig(); + myNotAsyncActions->make(do_MQTTPARAMSCHANGED); + request->send(200); + } + if (request->hasArg(F("mqttPort2"))) { + int port = (request->getParam(F("mqttPort2"))->value()).toInt(); + jsonWriteInt(configSetupJson, F("mqttPort2"), port); + saveConfig(); + myNotAsyncActions->make(do_MQTTPARAMSCHANGED); + request->send(200); + } + if (request->hasArg(F("mqttPrefix2"))) { + jsonWriteStr(configSetupJson, F("mqttPrefix2"), request->getParam(F("mqttPrefix2"))->value()); + saveConfig(); + myNotAsyncActions->make(do_MQTTPARAMSCHANGED); + request->send(200); + } + if (request->hasArg(F("mqttUser2"))) { + jsonWriteStr(configSetupJson, F("mqttUser2"), request->getParam(F("mqttUser2"))->value()); + saveConfig(); + myNotAsyncActions->make(do_MQTTPARAMSCHANGED); + request->send(200); + } + if (request->hasArg(F("mqttPass2"))) { + jsonWriteStr(configSetupJson, F("mqttPass2"), request->getParam(F("mqttPass2"))->value()); saveConfig(); myNotAsyncActions->make(do_MQTTPARAMSCHANGED); request->send(200);