From 19f728e209353f5036bbf6ddc59707a067e83c88 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 18 Dec 2020 21:48:06 +0100 Subject: [PATCH] prime and sec broker --- data/config.json | 13 ++++-- data/items/items.txt | 24 +++++------ data/set.mqtt.json.gz | Bin 831 -> 978 bytes data_ungzip/set.mqtt.json | 82 +++++++++++++++++++++++++++++++++++++- src/ItemsList.cpp | 4 +- src/Web.cpp | 55 ++++++++++++++++++++----- 6 files changed, 148 insertions(+), 30 deletions(-) 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 6ee1c9ab6f4cbcea53eba60dce852f3b3893da47..f6c1c7c4139144305d39340df0cc1ce0515b8f28 100644 GIT binary patch literal 978 zcmV;@11gFc5y9#D9oD8!rTC3TR3T zleTGZOl&aiq3T20xT#0#1jmIUR0+o8_8Z22!p2q&Cc$q={?X1(+_aFkX;<1lpsLCF z&hdTzY~ST_GWSGL=F1MLV9T4=l>%>rW+hZDdx+KDNN&#MAV#hAx zPOIzCx2?p?7TS{&V$@Kx8QWr*hK(pwO;j=JHk%La&81%B+nDSpdw5xA+Xf~(hSlxJ zC^PI3-e)DreTfkT{%Xl~%KKbO4W&v4cgZGU^}hvY{*8a@UyAFs;{OazLHO&pg42!% zJa!yDaD+`()ibNBPjeO9F_>k`j?($EHHjfqk+Fd#oTDFT6(CT~oVm|002+ThGF zNm^zlb!dZg$9QSUCV@E)>y{)puH#`|`RK53k(pzTt7pL{XGC8ILBd#d8@U?H1rt@+ zR86QDYQX!YjV+>=5tMy2msCAfv1uYQ5PYf5m_vHjZM()HZ1W+~SWyYxS!s{zDI1R47Wae8P31pAwd*yKm1?8X>blw6d=xn zGZ1*(xaJZ>kK5!gmpn31bnu=N(lam!x`vDm@DUlcSBKwml%gpu zOxmWsF|on4hpG>5{)lL${;_R#6^M)%tvQ z@qPa6yGu_N7Yw7&X4D~WP_T@KoP(wqt5yRnLVxvhz-VDbn><8a^|Q*u*d#5@m3S!+ z1+b7@(=&sv$s7mPFv~_VFPD_mwY6nU&tE9PbG4zO=Nk|@K`Ag5DM|%iVG_qamO(pJ z@Es|M@RauCgrY9)_fuO66M2{m)5Z=8JyD45{gu4+Jwo@hBfJX5HX?Kfx#NLQTM$O2 zPcbWeOHc#8X3JykeJR}5oDH#LDcjvbGPEjrdl=~>P3 z7!sC;9Z{Palu$nuS#fXZ;5d}3dmu!N!bIF1!+=BrHuaf=a(#r76Ss2<_9j!a!?>6y zDKdUOCEDX53E|iwy}44N5KJazI?5T-@-diy0!a+{w8S0{n>Iq`Zt@;bzK9S z786UF++a&5iB;cmuxT-|=z|7}7Guk7dvQ$Pz4*y$%hU!@5bDAOok(Q>u8(gg(Z%pI zx{kg_0~jxdUxr_e;Tb3f(a-2Ix`Ocv#sMe|x!;L9Y;E{Y+vLzt&uuOz$tx4Qd?T4#45;qLs^zV^18=wTjhFGw<(7xq`=Imn5-ljFm|I5K z?->E}h;1yrc`ZLRBQ}{F*(3}sqvH2K2amg)h153Xityml+p7H33?JDx+$>lsjyt+` zpAe_ze!pJyx9UX+1_s!~))QGdWUbwYtlPY`|Jz8^y~pBCy`=j1dP#JlO2Q!e6@80- z3{QvWASDIje0T+VPkc8wG21VB$YXkhD#iP@aLvwMV{|CjE J&0Qc50072kkcI#N 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);