доработки логирования

This commit is contained in:
Dmitry Borisenko
2022-09-08 18:48:27 +02:00
parent 12ef79c558
commit 5da6b61b36
9 changed files with 127 additions and 86 deletions

View File

@@ -14,8 +14,8 @@
"widget": "chart1",
"page": "Графики",
"descr": "График",
"int": 60,
"logid": "tmp",
"int": 1,
"logid": "t",
"num": 1,
"points": 300,
"keepdays": 2
@@ -30,8 +30,8 @@
"descr": "Таймер",
"int": 1,
"countDown": 15,
"ticker": 0,
"repeat": 0,
"ticker": 1,
"repeat": 1,
"needSave": 0,
"num": 2
},
@@ -72,7 +72,19 @@
"num": 5
},
{
"name": "6. Виртуальная кнопка",
"name": "6. Окно ввода текста",
"type": "Reading",
"subtype": "Variable",
"id": "txt",
"widget": "inputTxt",
"page": "Ввод",
"descr": "Введите текст",
"int": "0",
"val": "текст",
"num": 6
},
{
"name": "7. Виртуальная кнопка",
"type": "Reading",
"subtype": "VButton",
"id": "vbtn",
@@ -81,13 +93,13 @@
"descr": "Кнопка",
"int": "0",
"val": "0",
"num": 6
"num": 7
},
{
"header": "Сенсоры"
},
{
"name": "7. Cенсор температуры AHT20",
"name": "8. Cенсор температуры AHT20",
"type": "Reading",
"subtype": "Aht20t",
"id": "Temp20",
@@ -97,10 +109,10 @@
"int": 15,
"addr": "0x38",
"round": 1,
"num": 7
"num": 8
},
{
"name": "8. Cенсор влажности AHT20",
"name": "9. Cенсор влажности AHT20",
"type": "Reading",
"subtype": "Aht20h",
"id": "Hum20",
@@ -110,10 +122,10 @@
"int": 15,
"addr": "0x38",
"round": 1,
"num": 8
"num": 9
},
{
"name": "9. Аналоговый сенсор",
"name": "10. Аналоговый сенсор",
"type": "Reading",
"subtype": "AnalogAdc",
"id": "t",
@@ -127,10 +139,10 @@
"pin": 0,
"int": 15,
"avgSteps": 1,
"num": 9
"num": 10
},
{
"name": "10. Cенсор температуры Bme280",
"name": "11. Cенсор температуры Bme280",
"type": "Reading",
"subtype": "Bme280t",
"id": "tmp3",
@@ -140,10 +152,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 10
"num": 11
},
{
"name": "11. Cенсор давления Bme280",
"name": "12. Cенсор давления Bme280",
"type": "Reading",
"subtype": "Bme280p",
"id": "Press3",
@@ -153,10 +165,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 11
"num": 12
},
{
"name": "12. Cенсор влажности Bme280",
"name": "13. Cенсор влажности Bme280",
"type": "Reading",
"subtype": "Bme280h",
"id": "Hum3",
@@ -166,10 +178,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 12
"num": 13
},
{
"name": "13. Cенсор температуры Bmp280",
"name": "14. Cенсор температуры Bmp280",
"type": "Reading",
"subtype": "Bmp280t",
"id": "tmp3",
@@ -179,10 +191,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 13
"num": 14
},
{
"name": "14. Cенсор давления Bmp280",
"name": "15. Cенсор давления Bmp280",
"type": "Reading",
"subtype": "Bmp280p",
"id": "Press3",
@@ -192,10 +204,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 14
"num": 15
},
{
"name": "15. Cенсор температуры dht11",
"name": "16. Cенсор температуры dht11",
"type": "Reading",
"subtype": "Dht1122t",
"id": "tmp3",
@@ -205,10 +217,10 @@
"int": 15,
"pin": 0,
"senstype": "dht11",
"num": 15
"num": 16
},
{
"name": "16. Cенсор влажности dht11",
"name": "17. Cенсор влажности dht11",
"type": "Reading",
"subtype": "Dht1122h",
"id": "Hum3",
@@ -218,10 +230,10 @@
"int": 15,
"pin": 0,
"senstype": "dht11",
"num": 16
"num": 17
},
{
"name": "17. Cенсор температуры ds18b20",
"name": "18. Cенсор температуры ds18b20",
"type": "Reading",
"subtype": "Ds18b20",
"id": "dstmp",
@@ -233,10 +245,10 @@
"index": 0,
"addr": "",
"round": 1,
"num": 17
"num": 18
},
{
"name": "18. Cенсор температуры GY21",
"name": "19. Cенсор температуры GY21",
"type": "Reading",
"subtype": "GY21t",
"id": "tmp4",
@@ -245,10 +257,10 @@
"descr": "Температура",
"round": 1,
"int": 15,
"num": 18
"num": 19
},
{
"name": "19. Cенсор влажности GY21",
"name": "20. Cенсор влажности GY21",
"type": "Reading",
"subtype": "GY21h",
"id": "Hum4",
@@ -257,10 +269,10 @@
"descr": "Влажность",
"round": 1,
"int": 15,
"num": 19
"num": 20
},
{
"name": "20. Cенсор температуры HDC1080",
"name": "21. Cенсор температуры HDC1080",
"type": "Reading",
"subtype": "Hdc1080t",
"id": "Temp1080",
@@ -270,10 +282,10 @@
"int": 15,
"addr": "0x40",
"round": 1,
"num": 20
"num": 21
},
{
"name": "21. Cенсор влажности HDC1080",
"name": "22. Cенсор влажности HDC1080",
"type": "Reading",
"subtype": "Hdc1080h",
"id": "Hum1080",
@@ -283,10 +295,10 @@
"int": 15,
"addr": "0x40",
"round": 1,
"num": 21
"num": 22
},
{
"name": "22. Cенсор температуры MAX6675",
"name": "23. Cенсор температуры MAX6675",
"type": "Reading",
"subtype": "Max6675t",
"id": "maxtmp",
@@ -297,11 +309,11 @@
"DO": 12,
"CS": 13,
"CLK": 14,
"num": 22
"num": 23
},
{
"name": "23. Сканер кнопок 433 MHz",
"num": 23,
"name": "24. Сканер кнопок 433 MHz",
"num": 24,
"type": "Reading",
"subtype": "RCswitch",
"id": "rsw",
@@ -310,7 +322,7 @@
"pinTx": 12
},
{
"name": "24. Cенсор температуры Sht20",
"name": "25. Cенсор температуры Sht20",
"type": "Reading",
"subtype": "Sht20t",
"id": "tmp2",
@@ -319,10 +331,10 @@
"descr": "Температура",
"int": 15,
"round": 1,
"num": 24
"num": 25
},
{
"name": "25. Cенсор влажности Sht20",
"name": "26. Cенсор влажности Sht20",
"type": "Reading",
"subtype": "Sht20h",
"id": "Hum2",
@@ -331,10 +343,10 @@
"descr": "Влажность",
"int": 15,
"round": 1,
"num": 25
"num": 26
},
{
"name": "26. Cенсор температуры Sht30",
"name": "27. Cенсор температуры Sht30",
"type": "Reading",
"subtype": "Sht30t",
"id": "tmp30",
@@ -343,10 +355,10 @@
"descr": "SHT30 Температура",
"int": 15,
"round": 1,
"num": 26
"num": 27
},
{
"name": "27. Cенсор влажности Sht30",
"name": "28. Cенсор влажности Sht30",
"type": "Reading",
"subtype": "Sht30h",
"id": "Hum30",
@@ -355,11 +367,11 @@
"descr": "SHT30 Влажность",
"int": 15,
"round": 1,
"num": 27
"num": 28
},
{
"name": "28. Сонар HC-SR04",
"num": 28,
"name": "29. Сонар HC-SR04",
"num": 29,
"type": "Reading",
"subtype": "Sonar",
"id": "sonar",
@@ -374,7 +386,7 @@
"header": "Исполнительные устройства"
},
{
"name": "29. Кнопка подключенная к пину",
"name": "30. Кнопка подключенная к пину",
"type": "Writing",
"subtype": "ButtonIn",
"id": "btn",
@@ -387,10 +399,10 @@
"pinMode": "INPUT",
"debounceDelay": 50,
"fixState": 1,
"num": 29
"num": 30
},
{
"name": "30. Кнопка управляющая пином (Реле)",
"name": "31. Кнопка управляющая пином (Реле)",
"type": "Writing",
"subtype": "ButtonOut",
"id": "btn",
@@ -400,10 +412,10 @@
"int": 0,
"inv": 0,
"pin": 2,
"num": 30
"num": 31
},
{
"name": "31. Сервопривод",
"name": "32. Сервопривод",
"type": "Writing",
"subtype": "IoTServo",
"id": "servo",
@@ -414,10 +426,10 @@
"pin": 12,
"apin": -1,
"amap": "0, 4096, 0, 180",
"num": 31
"num": 32
},
{
"name": "32. Расширитель портов Mcp23017",
"name": "33. Расширитель портов Mcp23017",
"type": "Reading",
"subtype": "Mcp23017",
"id": "Mcp",
@@ -427,10 +439,10 @@
"int": "0",
"addr": "0x20",
"index": 1,
"num": 32
"num": 33
},
{
"name": "33. MP3 плеер",
"name": "34. MP3 плеер",
"type": "Reading",
"subtype": "Mp3",
"id": "mp3",
@@ -440,25 +452,27 @@
"int": 1,
"pins": "14,12",
"volume": 20,
"num": 33
"num": 34
},
{
"name": "34. PWM ESP8266",
"name": "35. PWM ESP32",
"type": "Writing",
"subtype": "Pwm8266",
"subtype": "Pwm32",
"id": "pwm",
"widget": "range",
"page": "Кнопки",
"descr": "PWM",
"int": 0,
"pin": 15,
"pin": 2,
"freq": 5000,
"ledChannel": 2,
"PWM_resolution": 10,
"val": 0,
"apin": -1,
"num": 34
"num": 35
},
{
"name": "35. Телеграм-Лайт",
"name": "36. Телеграм-Лайт",
"type": "Writing",
"subtype": "TelegramLT",
"id": "tg",
@@ -467,13 +481,13 @@
"descr": "",
"token": "",
"chatID": "",
"num": 35
"num": 36
},
{
"header": "Экраны"
},
{
"name": "36. LCD экран 2004",
"name": "37. LCD экран 2004",
"type": "Reading",
"subtype": "Lcd2004",
"id": "Lcd",
@@ -485,10 +499,10 @@
"size": "20,4",
"coord": "0,0",
"id2show": "id датчика",
"num": 36
"num": 37
},
{
"name": "37. LCD экран 1602",
"name": "38. LCD экран 1602",
"type": "Reading",
"subtype": "Lcd2004",
"id": "Lcd",
@@ -500,6 +514,6 @@
"size": "16,2",
"coord": "0,0",
"id2show": "id датчика",
"num": 37
"num": 38
}
]

View File

@@ -35,7 +35,7 @@
#define USE_LITTLEFS false
#endif
#define START_DATETIME 1640995200 // 01.01.2022 00:00:00 константа для сокращения unix time
#define START_DATETIME 1661990400 // 01.09.2022 00:00:00 константа для сокращения unix time
#define MIN_DATETIME 1575158400
#define LEAP_YEAR(Y) (((1970 + Y) > 0) && !((1970 + Y) % 4) && (((1970 + Y) % 100) || !((1970 + Y) % 400)))

View File

@@ -21,7 +21,7 @@
},
"projectProp": {
"platformio": {
"default_envs": "esp8266_4mb",
"default_envs": "esp32_4mb",
"data_dir": "data_svelte"
}
},

View File

@@ -40,7 +40,7 @@ build_src_filter =
${env:esp32_4mb_fromitems.build_src_filter}
[platformio]
default_envs = esp8266_4mb
default_envs = esp32_4mb
data_dir = data_svelte
[common_env_data]
@@ -135,5 +135,6 @@ build_src_filter =
+<modules\exec\Mcp23017>
+<modules\exec\Mp3>
+<modules\exec\Pwm32>
+<modules\exec\TelegramLT>
+<modules\display\Lcd2004>

View File

@@ -22,7 +22,7 @@ void* getAPI_ButtonOut(String subtype, String params);
void* getAPI_IoTServo(String subtype, String params);
void* getAPI_Mcp23017(String subtype, String params);
void* getAPI_Mp3(String subtype, String params);
void* getAPI_Pwm8266(String subtype, String params);
void* getAPI_Pwm32(String subtype, String params);
void* getAPI_TelegramLT(String subtype, String params);
void* getAPI_Lcd2004(String subtype, String params);
@@ -50,7 +50,7 @@ if ((tmpAPI = getAPI_ButtonOut(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_IoTServo(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Mcp23017(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Mp3(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Pwm8266(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Pwm32(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_TelegramLT(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Lcd2004(subtype, params)) != nullptr) return tmpAPI;
return nullptr;

View File

@@ -11,7 +11,7 @@ class Loging : public IoTItem {
int points;
int keepdays;
int interval;
unsigned long interval;
bool firstTime = true;
public:
@@ -24,6 +24,7 @@ class Loging : public IoTItem {
SerialPrint("E", F("Loging"), "'" + id + "' user set more points than allowed, value reset to 300");
}
jsonRead(parameters, F("int"), interval);
interval = interval * 1000 * 60;
jsonRead(parameters, F("keepdays"), keepdays);
}
@@ -31,6 +32,17 @@ class Loging : public IoTItem {
return "";
}
void loop() {
if (enableDoByInt) {
currentMillis = millis();
difference = currentMillis - prevMillis;
if (difference >= interval) {
prevMillis = millis();
this->doByInterval();
}
}
}
void doByInterval() {
//если объект логгирования не был создан
if (!isItemExist(logid)) {
@@ -267,6 +279,8 @@ class Loging : public IoTItem {
int calculateMaxCount() {
return 86400 / interval;
}
// new Variable(param);
};
void *getAPI_Loging(String subtype, String param) {

View File

@@ -9,8 +9,8 @@
"widget": "chart1",
"page": "Графики",
"descr": "График",
"int": 60,
"logid": "tmp",
"int": 1,
"logid": "t",
"num": 1,
"points": 300,
"keepdays": 2
@@ -22,10 +22,10 @@
"authorGit": "https://github.com/DmitryBorisenko33",
"specialThanks": "",
"moduleName": "Loging",
"moduleVersion": "1.0",
"moduleVersion": "2.0",
"moduleDesc": "Расширение позволяющее логировать любую величину в график. Графики доступны в мобильном приложении и в веб интерфейсе",
"propInfo": {
"int": "Интервал логирования",
"int": "Интервал логирования в мнутах, рекомендуется для esp8266 использоать интервал не менее 5ти минут.",
"logid": "ID величины которую будем логировать",
"points": "Максимальное количество точек в одном файле, может быть не более 300",
"keepdays": "Количество дней за которое необходимо хранить историю. Данные старее будут удалены автоматически"

View File

@@ -11,8 +11,8 @@
"descr": "Таймер",
"int": 1,
"countDown": 15,
"ticker": 0,
"repeat": 0,
"ticker": 1,
"repeat": 1,
"needSave": 0,
"num": 1
}
@@ -33,22 +33,22 @@
"needSave": "Требуется сохранять(1) или нет(0) состояние в энерго независимую память. Функция находится в разработке."
},
"funcInfo": [
{
{
"name": "stop",
"descr": "Поставить процесс на паузу, при этом не будет событий и не будет уменьшаться счетчик.",
"params": []
},
{
{
"name": "reset",
"descr": "Вернуть таймер к началу, установленному в countDown.",
"params": []
},
{
{
"name": "continue",
"descr": "Продолжить выполнение с момента остановки.",
"params": []
},
{
{
"name": "int",
"descr": "Можно изменить шаг тиков.",
"params": []

View File

@@ -36,6 +36,18 @@
"int": "0",
"val": "24.05.2022",
"num": 4
},
{
"name": "Окно ввода текста",
"type": "Reading",
"subtype": "Variable",
"id": "txt",
"widget": "inputTxt",
"page": "Ввод",
"descr": "Введите текст",
"int": "0",
"val": "текст",
"num": 5
}
],
"about": {