From 4e630fd0b04de78be0b747deb6b9c920c3494148 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 4 Jan 2021 01:02:54 +0100 Subject: [PATCH 1/4] 275 --- data/set.device.json.gz | Bin 2682 -> 2682 bytes data_ungzip/set.device.json | 2 +- include/Consts.h | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/set.device.json.gz b/data/set.device.json.gz index 7ed66e68cd717990c4f62f7c2c7b26fcde352300..08608508c527a52f918319ef96bdf4cd852a04f7 100644 GIT binary patch delta 2486 zcmV;n2}$<)6#5hgABzYGxmxm(2O}tla-zS@QYb4?(L=p)(H*lDRxx8IZ9^Z6^cglxrW*R-aZNp=^cmG;y-0sz zRz(bp(c_V&BsY0eL2;#V?>T=+Wg3lDtGZlPE?nro!v`a4ip8RNr65-{Hs;@TArh=v zQ}t8BbZ@P&J+i9rmy!V$e_`t-9sanmI zRCCw%3l|nr+kT1Hc>{D!JCmqGH5XJqe}JO-taBHIGqtSf#@PkcaM(ntD7`|h1r^R8 z052DvN#1nsO8h%6iF2JdVL@8Fi8>3aRX!_Q%84_IWrM{no_6Ole=O7t{|ZJig@z$v zKUxRTdov@Y){ZZr?rPOmi@K~W?1Y{Z;5z(%<1HYR*U>cKQjlpW%GUEtu}4=rss}RV z92+)ySW{iqi^-9ZgcO`wEWzoK1&_>K-ZIR*aaQj^1L;6WR5UYMv9x4x=yd~b&y6-a zuL)(UZEEuQjH*LIe^3Sz;A8d2mbn4wCjW?j#GB|Vl5?AXMVEo!Ip>lD∈k={q_T zcy)b)ZOXbtKsO#6%YkpRV`G~(#IbwReEoiQhD^Iz&gXYArMxkTN|Q1EgwKJEe@BTB z&na}&!EwKWwcl}W@H%)j>ZH47gTs)g})f zUr7)f@Z48mfA$(coQA1Sx@mw=H!ynfCQh<9V>`7FxW^Iqc#OYCW&y<|#E&aB3rcE8 zkTdBqIg40FWc7gBc3C1@sC z`dXB}wx4upip(#B1&dmTqSpDM5K~(iE&~4u7oT8+e^#(1GD$=%$23yowm!oXq!ZS= zJxAweFoN}nV10}~!UP2@G+|-UG|}9JYQi+rX+=G^;HSWUMW7GXoJ>&ENObB(9cT&Y zyVPC7c}RIXxh|VZgpev?QL#&M*!a1R9`_4njWC%@Z(vNQo*vxr3kH6H~LAWe8H246yYDU`piBe4*z9`Gj2=rca(<~I`MX@C)rSjvKz zVelfLsAF7$$+>y3CSoq3nGq#PMYdQ(D#9KfS#!4@lMwK5_^bP1MFH7s8tJ!YyWD{)zaxjMn1^-x;*lY1B@3H5VqRrYN+f5)jyZS}-r8wY1k7 z_@Vxfv<^4>?tsTSRb5!5qBZq57Of(+!TL`xY{|OcQlQl?T3@3|tTeoBnnbk_UZZW| z>U-%20H7az7ro96&olWf+7E&zZ~a8e7&;pUgjeD|6x&)aYTy;f8x0xURigxVjgzDW zA%73N;?xsKPTbQ;G=8Pgc@dZ(PS10|Fq*x3^?|R(cjQSBw^Hl_M4at#>8`>aT2rgS zsPyXB2i*!=UajxcJmS4lP|UZ_9Eak&u=Twl>gQ7J5C=TJWuUYFcyAVy z8BN=c;Y*1a%zkjDJFDhdDU(bjmQM^kgLm!3md_|y64=2B_O~C%4}aOf-%!l_+KzRY zoi}}t?m1L)ZVut%qu}BVCoVqO=8u=g~jK5R0<(o3}MNmVT-2yCYu?4 zzPcf=o{`AvH?AnlR#DZX%rL?5&2tm(b=F|aD2uKYn>G~SH5DE&k=Ep@bF-7#2P=Qyklh6P$>;nnf64Fh zXZ$ggq#q>sbC2KWPvP<%f3qQ;-4v6cO?eps`A3T_++R_)Z@GzkrX$M_!1KLbY}T<5 zb877kO7BL5?r(EUTckPfK-A?L<+w+#*V}AkjpxqY7m2TtHpES+)zMtw1I%pGh=yBA z4RO0y9Yt4jMA3gmPwC;8xC6!{>>`}1t(!BP<53pegGUfX$D%yp3{u&tFR$- zybzA(o0AXzOLBi(!;Q(kX=Hm^90GUg!}udV znnP~-vIm#*2z0LWAutSiyU+_oBbd5fqkH1W%w;Q(Ylji@3TYuv`$qJ9@z1>aMk0#K zZduZYCVKA5SO{MQ2L4804J7P225FqC2umF&fbN;}6#UTcx?T4Ahq=MUTuxJDT{DV{ zPfkE3`VxPSTg6+o-fUbSG7V8(mu0;oYkzzeQ2q$u_^QTzA;?=DUkVZLrl!Q68|@zb zz&m;#GS3oYrk#n$iz+Ksvaks($9EZr_Q*PX)ymp$87Gw-o7WRRtDaI9pO2AEzLXvq zSIg%GoWYshgv}T7ktwL>l>7wN`s0x0HKo9)Au@XZ>cqVIpT?po>cY)LRMy}dG#Q8q zOtB^g6I4?3c|{*_a>4%0KZ;XG;m=)PUUF)ELfmlUr)1T0104LAhHjJ2qenenk01ZH z?17H2{(F;nG14w4D4xTy#Q~%(z$A#;pRx-0wyV;y#-e$A>5>aS0G!grV~Z;Q01Z~S ADF6Tf delta 2486 zcmV;n2}$<)6#5hgABzYG!MEp;2O}t_T=+Wg3lDtGZlP&Y$nT!v`a4ip8RNr65-{Hs;@TJ`${1 zQ}vU>bZ@D!-Lk6hlac`ye`4z=p_Z&s9~d7zvz^-{r{+vK7o7|I8~=hWKF#YHsanmI zRCDLH^XC^*+dhfcc>{FKI8&%YH5XJqzmKB%taAs2GqtSf#+e1xaL7cdD7`|h1r^Tk z11}exDc*GMNc=l4iF1uNVL@8Fi8>3aRX!tI%JI{RWrM{no_6OFe=O7&{uPX38Vy6j zezXpv_eMratr=fH-PNkC7Ij%$*aSE28&Ih*wlz(rIpTJRue;|Qbe_0i*E{*Eao$5eH z6NFp@wRKQ<6NXUTO8A_i*obk_xx+uh@SHoyTP_@@7Lj-ZaRMNs`y0vljNuF)5D|77 zmcqHhXXx<@*ymgh0e2kXj(4$h36~Z`T*cG|U4SPdIaeuQ&LI=H?B6gT!QVUB)g})f zUr7)f@Z48mfA%UsoPnuNxoLn`7FxF-fW&y=T#E&aB3rcE8 zkTc~mIg46@ip+3|R+A!# zEHBAq8YK5-SMUNQ7*5D9KTDJv8X`TQBYB~8e-^#gsfntvD{x3F=chS8bYJ6*5CJy1 zhEPI;dPUXqEMk#B%?CjQNE6KK<`a&8{1iI_`hzKD{fB3mpX6=4sLthrl{DF}Et{MCI_s^rZOXx9;1h-^=A zf41<`bTe4p3t`Q9;TE$n|495?LhJE^?-#Vz8Pra8H5VqRrYN+f5)jyZS}-r8wY1k7 z_@Vv}v<^4=?tsTSRh?g?qBZq57Of(+!TQfEY{|OMQlQl?T3?|`tTeoBnnbk_UZZW| z>U-%20H7az7roAP&olWf+7E&zZ~aKi7&;pUgjeD|5ZhWWYTy;f8x0xURigxVm6N0e zA%FM1;?xsKPTbQ;G=8Pgc@dZ(&dhVbFq*x3^}eshcjPG$w^Hl_M4at#>8`>aTGOk- zsPyXB``rp#UajxcJmS4lP|UZ_9Eak&=w%4(4$2Xsu(zvY=Q4`&(_UkKh1tN3m6s^O zt%Fx9KO7u}BVd@erO=8vL`NijaR0<(o3}MNmVY8@bjR#DZX%rL?5&9js4b=F|aD2uKY8`l@$H5eWnwpoEZQF`Jlad&UT5?{k*cmBpo-~C%c)VyC6+ItCiSXdE?GyMj zDVY#{!AwAu(954=0fN@pacDwCqp(jeh>DE&f!5@TbEA{l2P=PHpWO)i$!Gixf5Gqa zr~DC=r0*s8bC=)aPvG(`f4x4Q-58UgO?eps`A3T_++R_)Z@G#4OGlO;faiO=*sNnA z=G597l-`X9-QVVzwn%f{fvC$h%5jfeueI668qb}(FA`rPt&f{ftE0KV2bkH$5e>JL z8sc^@JBqI6h@yYJL^g2KWakupu=ehvt-A(n1_b~Vzv0Lc{5W=OY+$0QR^g7(U%eGn zfH@@lq0ksR%R*(plA;z%ER&u9HypMe{F_${3QodMpz11H`~Wy|(hRhY-KQAaTVX@! zcrF~zJ%y^fMnVpH!?`H@ra=z*5q-7qxd5LH;?TtbmgIl7h8vT6)5!L;I0Ww0hw(># zG>6>uWe+ar5$Ig*Ltq&4cA^)GMlf|dNB6{$nafrn*A64*CDKBk_KoQI?4Nn{jYJfe z-Lj+)P4wL5u@Jrr4E&A08c5hP4AMAN5tcem0Npd`Y51Ytb-V2K4|9WyxtylRx@Hs? zpPYb7^aXz&w~DuFz1g@vWE!HnF3WmF*8cb`p!^ZQ@l}ocLXfvQz7!(fO-+kEH`+b= zfp_#gWS%9)Ogj^g7gbiOWMLCnj_))M?v{1cY)LRMy}dG#Q8q zOtB^h6I4?3c|{*_a>4%0KZsLE;m=)PUUF)ELfmlUr)1T0104LAhHjJ2BS$=5j~)BB z?17H2{(F;nKGH5HD4xTy#eSqMz$A#;pRx-0wyV;y#-e#_>5}t50ET*%|BEXC0KgHy AbN~PV diff --git a/data_ungzip/set.device.json b/data_ungzip/set.device.json index 2fe56516..289fcf9e 100644 --- a/data_ungzip/set.device.json +++ b/data_ungzip/set.device.json @@ -43,7 +43,7 @@ }, { "type": "h4", - "title": "Версия файловой системы: 274" + "title": "Версия файловой системы: 275" }, { "type": "h4", diff --git a/include/Consts.h b/include/Consts.h index 6bb81719..9a0b5bbb 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -1,6 +1,6 @@ #pragma once -#define FIRMWARE_VERSION 274 +#define FIRMWARE_VERSION 275 #ifdef esp8266_4mb #define FIRMWARE_NAME "esp8266_4mb" From e822414187453a6ceca871453e2d41a0a4bd22c5 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 4 Jan 2021 01:17:11 +0100 Subject: [PATCH 2/4] Uptime --- include/BufferExecute.h | 18 +----------------- include/items/sysUptime.h | 5 +++++ src/BufferExecute.cpp | 1 + src/Utils/WiFiUtils.cpp | 3 ++- src/items/sysUptime.cpp | 2 +- 5 files changed, 10 insertions(+), 19 deletions(-) create mode 100644 include/items/sysUptime.h diff --git a/include/BufferExecute.h b/include/BufferExecute.h index 28644b59..b63e40be 100644 --- a/include/BufferExecute.h +++ b/include/BufferExecute.h @@ -14,22 +14,6 @@ extern void buttonInSet(); -extern void bme280Temp(); -extern void bme280ReadingTemp(); -extern void bme280Hum(); -extern void bme280ReadingHum(); -extern void bme280Press(); -extern void bme280ReadingPress(); - -extern void bmp280Temp(); -extern void bmp280ReadingTemp(); -extern void bmp280Press(); -extern void bmp280ReadingPress(); - -//extern void modbus(); -//extern void modbusReading(); - -extern void sysUptime(); -extern void uptimeReading(); + diff --git a/include/items/sysUptime.h b/include/items/sysUptime.h new file mode 100644 index 00000000..9e9b3f7c --- /dev/null +++ b/include/items/sysUptime.h @@ -0,0 +1,5 @@ + +#pragma once + +extern void sysUptime(); +extern void uptimeReading(); \ No newline at end of file diff --git a/src/BufferExecute.cpp b/src/BufferExecute.cpp index 2a28b95f..0f5c487d 100644 --- a/src/BufferExecute.cpp +++ b/src/BufferExecute.cpp @@ -2,6 +2,7 @@ #include "Global.h" #include "SoftUART.h" // +#include "items/sysUptime.h" #include "items/vSensorDallas.h" #include "items/vSensorUltrasonic.h" #include "items/vButtonOut.h" diff --git a/src/Utils/WiFiUtils.cpp b/src/Utils/WiFiUtils.cpp index 2f09705d..d69c1a59 100644 --- a/src/Utils/WiFiUtils.cpp +++ b/src/Utils/WiFiUtils.cpp @@ -1,5 +1,5 @@ #include "Utils/WiFiUtils.h" - +#include "items/sysUptime.h" #include "FileSystem.h" void routerConnect() { @@ -141,6 +141,7 @@ uint8_t RSSIquality() { void wifiSignalInit() { ts.add( SYGNAL, 1000 * 60, [&](void*) { + //uptimeReading(); SerialPrint("I", "System", printMemoryStatus()); #ifdef ESP8266 getFSInfo(); diff --git a/src/items/sysUptime.cpp b/src/items/sysUptime.cpp index 58a9e12c..b20029d9 100644 --- a/src/items/sysUptime.cpp +++ b/src/items/sysUptime.cpp @@ -1,3 +1,4 @@ +#include "items/sysUptime.h" #include "Class/LineParsing.h" #include "BufferExecute.h" #include "Global.h" @@ -7,7 +8,6 @@ void sysUptime() { myLineParsing.update(); String key = myLineParsing.gkey(); sCmd.addCommand(key.c_str(), uptimeReading); - //ensorReadingMap30sec += key + ","; myLineParsing.clear(); } From a4ae02736cda0cd314f01bf9dbb6760bb5a17b2a Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 4 Jan 2021 01:49:57 +0100 Subject: [PATCH 3/4] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=81=D0=B5=D0=BD=D1=81=D0=BE=D1=80=20ccs811?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/items/vSensorCcs811.h | 39 +++++++++++++++ platformio.ini | 1 + src/items/vSensorCcs811.cpp | 89 +++++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 include/items/vSensorCcs811.h create mode 100644 src/items/vSensorCcs811.cpp diff --git a/include/items/vSensorCcs811.h b/include/items/vSensorCcs811.h new file mode 100644 index 00000000..a6ce5c41 --- /dev/null +++ b/include/items/vSensorCcs811.h @@ -0,0 +1,39 @@ +#pragma once +#include + +#include "Adafruit_CCS811.h" +#include "Global.h" +#include "GyverFilters.h" + +class SensorCcs811; + +typedef std::vector MySensorCcs811Vector; + +struct paramsCcs811 { + String key; + String addr; + unsigned long interval; + float c; +}; + +class SensorCcs811 { + public: + SensorCcs811(const paramsCcs811& paramsCo2, const paramsCcs811& paramsPpm); + ~SensorCcs811(); + + Adafruit_CCS811* ccs811; + + void loop(); + void read(); + + private: + paramsCcs811 _paramsCo2; + paramsCcs811 _paramsPpm; + + unsigned long prevMillis; + unsigned long difference; +}; + +extern MySensorCcs811Vector* mySensorCcs811; + +extern void ccs811Sensor(); \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 7af0d773..bb600258 100644 --- a/platformio.ini +++ b/platformio.ini @@ -22,6 +22,7 @@ lib_deps_external = beegee-tokyo/DHT sensor library for ESPx adafruit/Adafruit BMP280 Library adafruit/Adafruit BME280 Library + adafruit/Adafruit CCS811 Library milesburton/DallasTemperature lib_deps_internal = ESP Async WebServer diff --git a/src/items/vSensorCcs811.cpp b/src/items/vSensorCcs811.cpp new file mode 100644 index 00000000..07c3bed6 --- /dev/null +++ b/src/items/vSensorCcs811.cpp @@ -0,0 +1,89 @@ +#include "items/vSensorCcs811.h" + +#include + +#include "BufferExecute.h" +#include "Class/LineParsing.h" +#include "Global.h" + +SensorCcs811::SensorCcs811(const paramsCcs811& paramsCo2, const paramsCcs811& paramsPpm) { + _paramsCo2 = paramsCcs811(paramsCo2); + _paramsPpm = paramsCcs811(paramsPpm); + + ccs811 = new Adafruit_CCS811(); + + if (!ccs811->begin()) SerialPrint("E", "Sensor CCS", "Wire not connected"); +} + +SensorCcs811::~SensorCcs811() {} + +void SensorCcs811::loop() { + difference = millis() - prevMillis; + if (difference >= _paramsPpm.interval) { + prevMillis = millis(); + read(); + } +} + +void SensorCcs811::read() { + float co2; + float ppm; + if (ccs811->available()) { + if (!ccs811->readData()) { + co2 = ccs811->geteCO2(); + ppm = ccs811->getTVOC(); + + co2 = co2 * _paramsCo2.c; + ppm = ppm * _paramsPpm.c; + + eventGen2(_paramsCo2.key, String(co2)); + jsonWriteStr(configLiveJson, _paramsCo2.key, String(co2)); + publishStatus(_paramsCo2.key, String(co2)); + SerialPrint("I", "Sensor", "'" + _paramsCo2.key + "' data: " + String(co2)); + + eventGen2(_paramsPpm.key, String(ppm)); + jsonWriteStr(configLiveJson, _paramsPpm.key, String(ppm)); + publishStatus(_paramsPpm.key, String(ppm)); + SerialPrint("I", "Sensor", "'" + _paramsPpm.key + "' data: " + String(ppm)); + } else { + SerialPrint("E", "Sensor CCS", "Error"); + } + } +} + +MySensorCcs811Vector* mySensorCcs811 = nullptr; + +void ccs811Sensor() { + myLineParsing.update(); + String key = myLineParsing.gkey(); + String addr = myLineParsing.gaddr(); + String interval = myLineParsing.gint(); + String c = myLineParsing.gc(); + myLineParsing.clear(); + + static int enterCnt = -1; + enterCnt++; + + static paramsCcs811 paramsCo2; + static paramsCcs811 paramsPpm; + + if (enterCnt == 0) { + paramsCo2.key = key; + paramsCo2.interval = interval.toInt() * 1000; + paramsCo2.c = c.toFloat(); + } + + if (enterCnt == 1) { + paramsPpm.key = key; + paramsPpm.addr = addr; + paramsPpm.interval = interval.toInt() * 1000; + paramsPpm.c = c.toFloat(); + + static bool firstTime = true; + if (firstTime) mySensorCcs811 = new MySensorCcs811Vector(); + firstTime = false; + mySensorCcs811->push_back(SensorCcs811(paramsCo2, paramsPpm)); + + enterCnt = -1; + } +} From 3cdd8fc2b9015d3f8bdb6d1726871303a4f65b27 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 4 Jan 2021 16:56:20 +0100 Subject: [PATCH 4/4] =?UTF-8?q?=D0=9E=D1=82=D1=80=D0=B5=D0=BC=D0=B0=D0=BD?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20uptime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/items/items.txt | 2 +- include/items/sysUptime.h | 5 ---- include/items/vSensorUptime.h | 33 +++++++++++++++++++++++ src/BufferExecute.cpp | 4 +-- src/Utils/WiFiUtils.cpp | 2 -- src/items/sysUptime.cpp | 20 -------------- src/items/vSensorUptime.cpp | 49 +++++++++++++++++++++++++++++++++++ src/main.cpp | 6 +++++ 8 files changed, 91 insertions(+), 30 deletions(-) delete mode 100644 include/items/sysUptime.h create mode 100644 include/items/vSensorUptime.h delete mode 100644 src/items/sysUptime.cpp create mode 100644 src/items/vSensorUptime.cpp diff --git a/data/items/items.txt b/data/items/items.txt index 3b9d7ca4..52db5c4d 100644 --- a/data/items/items.txt +++ b/data/items/items.txt @@ -22,4 +22,4 @@ 0;count-down;cntid;anydata;Таймер;Обратный#отчет;order* 0;inoutput;txtid;anydata;Вывод;Вывод#uart;order* 0;logging;crtid;chart;Графики;История;order;val[any];int[60];cnt[100]* -0;uptime;uptid;anydataTime;Системные;%name%#uptime;order* \ No newline at end of file +0;uptime;uptid;anydataTime;Системные;%name%#uptime;order;int[60]* \ No newline at end of file diff --git a/include/items/sysUptime.h b/include/items/sysUptime.h deleted file mode 100644 index 9e9b3f7c..00000000 --- a/include/items/sysUptime.h +++ /dev/null @@ -1,5 +0,0 @@ - -#pragma once - -extern void sysUptime(); -extern void uptimeReading(); \ No newline at end of file diff --git a/include/items/vSensorUptime.h b/include/items/vSensorUptime.h new file mode 100644 index 00000000..ff8df7eb --- /dev/null +++ b/include/items/vSensorUptime.h @@ -0,0 +1,33 @@ +#pragma once +#include + +#include "Global.h" +#include "GyverFilters.h" + +class SensorUptime; + +typedef std::vector MySensorUptimeVector; + +struct paramsUptime { + String key; + unsigned long interval; +}; + +class SensorUptime { + public: + SensorUptime(const paramsUptime& paramsUpt); + ~SensorUptime(); + + void loop(); + void read(); + + private: + paramsUptime _paramsUpt; + + unsigned long prevMillis; + unsigned long difference; +}; + +extern MySensorUptimeVector* mySensorUptime; + +extern void uptimeSensor(); \ No newline at end of file diff --git a/src/BufferExecute.cpp b/src/BufferExecute.cpp index 0f5c487d..2d079244 100644 --- a/src/BufferExecute.cpp +++ b/src/BufferExecute.cpp @@ -2,7 +2,7 @@ #include "Global.h" #include "SoftUART.h" // -#include "items/sysUptime.h" +#include "items/vSensorUptime.h" #include "items/vSensorDallas.h" #include "items/vSensorUltrasonic.h" #include "items/vButtonOut.h" @@ -92,7 +92,7 @@ void csvCmdExecute(String& cmdStr) { } #endif else if (order == F("uptime")) { - sCmd.addCommand(order.c_str(), sysUptime); + sCmd.addCommand(order.c_str(), uptimeSensor); } else if (order == F("logging")) { sCmd.addCommand(order.c_str(), logging); diff --git a/src/Utils/WiFiUtils.cpp b/src/Utils/WiFiUtils.cpp index d69c1a59..dfebd244 100644 --- a/src/Utils/WiFiUtils.cpp +++ b/src/Utils/WiFiUtils.cpp @@ -1,5 +1,4 @@ #include "Utils/WiFiUtils.h" -#include "items/sysUptime.h" #include "FileSystem.h" void routerConnect() { @@ -141,7 +140,6 @@ uint8_t RSSIquality() { void wifiSignalInit() { ts.add( SYGNAL, 1000 * 60, [&](void*) { - //uptimeReading(); SerialPrint("I", "System", printMemoryStatus()); #ifdef ESP8266 getFSInfo(); diff --git a/src/items/sysUptime.cpp b/src/items/sysUptime.cpp deleted file mode 100644 index b20029d9..00000000 --- a/src/items/sysUptime.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "items/sysUptime.h" -#include "Class/LineParsing.h" -#include "BufferExecute.h" -#include "Global.h" -#include - -void sysUptime() { - myLineParsing.update(); - String key = myLineParsing.gkey(); - sCmd.addCommand(key.c_str(), uptimeReading); - myLineParsing.clear(); -} - -void uptimeReading() { - String key = sCmd.order(); - String uptime = timeNow->getUptime(); - jsonWriteStr(configLiveJson, key, uptime); - publishStatus(key, uptime); - SerialPrint("I", "Sensor", "'" + key + "' data: " + uptime); -} \ No newline at end of file diff --git a/src/items/vSensorUptime.cpp b/src/items/vSensorUptime.cpp new file mode 100644 index 00000000..595e76ce --- /dev/null +++ b/src/items/vSensorUptime.cpp @@ -0,0 +1,49 @@ +#include "items/vSensorUptime.h" + +#include + +#include "BufferExecute.h" +#include "Class/LineParsing.h" +#include "Global.h" + +SensorUptime::SensorUptime(const paramsUptime& paramsUpt) { + _paramsUpt = paramsUptime(paramsUpt); +} + +SensorUptime::~SensorUptime() {} + +void SensorUptime::loop() { + difference = millis() - prevMillis; + if (difference >= _paramsUpt.interval) { + prevMillis = millis(); + read(); + } +} + +void SensorUptime::read() { + String upt = timeNow->getUptime(); + + eventGen2(_paramsUpt.key, upt); + jsonWriteStr(configLiveJson, _paramsUpt.key, upt); + publishStatus(_paramsUpt.key, upt); + SerialPrint("I", "Sensor", "'" + _paramsUpt.key + "' data: " + upt); +} + +MySensorUptimeVector* mySensorUptime = nullptr; + +void uptimeSensor() { + myLineParsing.update(); + String key = myLineParsing.gkey(); + String interval = myLineParsing.gint(); + myLineParsing.clear(); + + static paramsUptime paramsUpt; + + paramsUpt.key = key; + paramsUpt.interval = interval.toInt() * 1000; + + static bool firstTime = true; + if (firstTime) mySensorUptime = new MySensorUptimeVector(); + firstTime = false; + mySensorUptime->push_back(SensorUptime(paramsUpt)); +} diff --git a/src/main.cpp b/src/main.cpp index bd065a05..df2f4462 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,6 +19,7 @@ #include "Utils/Timings.h" #include "Utils/WebUtils.h" #include "items/ButtonInClass.h" +#include "items/vSensorUptime.h" #include "items/vCountDown.h" #include "items/vImpulsOut.h" #include "items/vLogging.h" @@ -153,4 +154,9 @@ void loop() { mySensorBmp280->at(i).loop(); } } + if (mySensorUptime != nullptr) { + for (unsigned int i = 0; i < mySensorUptime->size(); i++) { + mySensorUptime->at(i).loop(); + } + } } \ No newline at end of file