diff --git a/data_svelte/build/bundle.css.gz b/data_svelte/build/bundle.css.gz
index d1b51f45..ffa08922 100644
Binary files a/data_svelte/build/bundle.css.gz and b/data_svelte/build/bundle.css.gz differ
diff --git a/data_svelte/build/bundle.js.gz b/data_svelte/build/bundle.js.gz
index 982ec426..eaae70a7 100644
Binary files a/data_svelte/build/bundle.js.gz and b/data_svelte/build/bundle.js.gz differ
diff --git a/data_svelte/index.html b/data_svelte/index.html
index 9f21ca72..f58d8370 100644
--- a/data_svelte/index.html
+++ b/data_svelte/index.html
@@ -4,7 +4,7 @@
-
IoT Manager 4.4.1
+ IoT Manager 4.4.2
diff --git a/data_svelte/items.json b/data_svelte/items.json
index 6216f176..218963dd 100644
--- a/data_svelte/items.json
+++ b/data_svelte/items.json
@@ -37,22 +37,35 @@
},
{
"global": 0,
- "name": "3. График дневного расхода",
+ "name": "3. График по событию",
+ "type": "Writing",
+ "subtype": "Loging",
+ "id": "log",
+ "widget": "chart2",
+ "page": "Графики",
+ "descr": "Температура",
+ "int": 0,
+ "num": 3,
+ "points": 300
+ },
+ {
+ "global": 0,
+ "name": "4. График дневного расхода",
"type": "Writing",
"subtype": "LogingDaily",
"id": "log",
"widget": "chart3",
"page": "Графики",
"descr": "Температура",
- "num": 3,
+ "num": 4,
"int": 1,
"logid": "t",
"points": 365,
- "test": 0
+ "column": 0
},
{
"global": 0,
- "name": "4. Таймер",
+ "name": "5. Таймер",
"type": "Writing",
"subtype": "Timer",
"id": "timer",
@@ -64,11 +77,11 @@
"ticker": 1,
"repeat": 1,
"needSave": 0,
- "num": 4
+ "num": 5
},
{
"global": 0,
- "name": "5. Окно ввода числа (переменная)",
+ "name": "6. Окно ввода числа (переменная)",
"type": "Reading",
"subtype": "Variable",
"id": "value",
@@ -82,11 +95,11 @@
"plus": 0,
"multiply": 1,
"round": 0,
- "num": 5
+ "num": 6
},
{
"global": 0,
- "name": "6. Окно ввода времени",
+ "name": "7. Окно ввода времени",
"type": "Reading",
"subtype": "Variable",
"id": "time",
@@ -96,11 +109,11 @@
"descr": "Введите время",
"int": "0",
"val": "02:00",
- "num": 6
+ "num": 7
},
{
"global": 0,
- "name": "7. Окно ввода даты",
+ "name": "8. Окно ввода даты",
"type": "Reading",
"subtype": "Variable",
"id": "time",
@@ -110,11 +123,11 @@
"descr": "Введите дату",
"int": "0",
"val": "24.05.2022",
- "num": 7
+ "num": 8
},
{
"global": 0,
- "name": "8. Окно ввода текста",
+ "name": "9. Окно ввода текста",
"type": "Reading",
"subtype": "Variable",
"id": "txt",
@@ -124,11 +137,11 @@
"descr": "Введите текст",
"int": "0",
"val": "текст",
- "num": 8
+ "num": 9
},
{
"global": 0,
- "name": "9. Виртуальная кнопка",
+ "name": "10. Виртуальная кнопка",
"type": "Reading",
"subtype": "VButton",
"id": "vbtn",
@@ -138,13 +151,13 @@
"descr": "Кнопка",
"int": "0",
"val": "0",
- "num": 9
+ "num": 10
},
{
"header": "Сенсоры"
},
{
- "name": "10. Acs712 Ток",
+ "name": "11. Acs712 Ток",
"type": "Reading",
"subtype": "Acs712",
"id": "amp",
@@ -154,11 +167,11 @@
"round": 3,
"pin": 39,
"int": 5,
- "num": 10
+ "num": 11
},
{
"global": 0,
- "name": "11. AHTXX Температура",
+ "name": "12. AHTXX Температура",
"type": "Reading",
"subtype": "AhtXXt",
"id": "Temp20",
@@ -169,11 +182,11 @@
"addr": "0x38",
"shtType": 1,
"round": 1,
- "num": 11
+ "num": 12
},
{
"global": 0,
- "name": "12. AHTXX Влажность",
+ "name": "13. AHTXX Влажность",
"type": "Reading",
"subtype": "AhtXXh",
"id": "Hum20",
@@ -184,11 +197,11 @@
"addr": "0x38",
"shtType": 1,
"round": 1,
- "num": 12
+ "num": 13
},
{
"global": 0,
- "name": "13. Аналоговый сенсор",
+ "name": "14. Аналоговый сенсор",
"type": "Reading",
"subtype": "AnalogAdc",
"id": "t",
@@ -202,11 +215,11 @@
"pin": 0,
"int": 15,
"avgSteps": 1,
- "num": 13
+ "num": 14
},
{
"global": 0,
- "name": "14. BME280 Температура",
+ "name": "15. BME280 Температура",
"type": "Reading",
"subtype": "Bme280t",
"id": "tmp3",
@@ -216,11 +229,11 @@
"int": 15,
"addr": "0x77",
"round": 1,
- "num": 14
+ "num": 15
},
{
"global": 0,
- "name": "15. BME280 Давление",
+ "name": "16. BME280 Давление",
"type": "Reading",
"subtype": "Bme280p",
"id": "Press3",
@@ -230,11 +243,11 @@
"int": 15,
"addr": "0x77",
"round": 1,
- "num": 15
+ "num": 16
},
{
"global": 0,
- "name": "16. BME280 Влажность",
+ "name": "17. BME280 Влажность",
"type": "Reading",
"subtype": "Bme280h",
"id": "Hum3",
@@ -244,11 +257,11 @@
"int": 15,
"addr": "0x77",
"round": 1,
- "num": 16
+ "num": 17
},
{
"global": 0,
- "name": "17. BMP280 Температура",
+ "name": "18. BMP280 Температура",
"type": "Reading",
"subtype": "Bmp280t",
"id": "tmp3",
@@ -258,11 +271,11 @@
"int": 15,
"addr": "0x77",
"round": 1,
- "num": 17
+ "num": 18
},
{
"global": 0,
- "name": "18. BMP280 Давление",
+ "name": "19. BMP280 Давление",
"type": "Reading",
"subtype": "Bmp280p",
"id": "Press3",
@@ -272,11 +285,11 @@
"int": 15,
"addr": "0x77",
"round": 1,
- "num": 18
+ "num": 19
},
{
"global": 0,
- "name": "19. DHT11 Температура",
+ "name": "20. DHT11 Температура",
"type": "Reading",
"subtype": "Dht1122t",
"id": "tmp3",
@@ -286,11 +299,11 @@
"int": 15,
"pin": 0,
"senstype": "dht11",
- "num": 19
+ "num": 20
},
{
"global": 0,
- "name": "20. DHT11 Влажность",
+ "name": "21. DHT11 Влажность",
"type": "Reading",
"subtype": "Dht1122h",
"id": "Hum3",
@@ -300,11 +313,11 @@
"int": 15,
"pin": 0,
"senstype": "dht11",
- "num": 20
+ "num": 21
},
{
"global": 0,
- "name": "21. DS18B20 Температура",
+ "name": "22. DS18B20 Температура",
"type": "Reading",
"subtype": "Ds18b20",
"id": "dstmp",
@@ -316,11 +329,11 @@
"index": 0,
"addr": "",
"round": 1,
- "num": 21
+ "num": 22
},
{
"global": 0,
- "name": "22. GY21 Температура",
+ "name": "23. GY21 Температура",
"type": "Reading",
"subtype": "GY21t",
"id": "tmp4",
@@ -329,11 +342,11 @@
"descr": "Температура",
"round": 1,
"int": 15,
- "num": 22
+ "num": 23
},
{
"global": 0,
- "name": "23. GY21 Влажность",
+ "name": "24. GY21 Влажность",
"type": "Reading",
"subtype": "GY21h",
"id": "Hum4",
@@ -342,11 +355,11 @@
"descr": "Влажность",
"round": 1,
"int": 15,
- "num": 23
+ "num": 24
},
{
"global": 0,
- "name": "24. HDC1080 Температура",
+ "name": "25. HDC1080 Температура",
"type": "Reading",
"subtype": "Hdc1080t",
"id": "Temp1080",
@@ -356,11 +369,11 @@
"int": 15,
"addr": "0x40",
"round": 1,
- "num": 24
+ "num": 25
},
{
"global": 0,
- "name": "25. HDC1080 Влажность",
+ "name": "26. HDC1080 Влажность",
"type": "Reading",
"subtype": "Hdc1080h",
"id": "Hum1080",
@@ -370,11 +383,11 @@
"int": 15,
"addr": "0x40",
"round": 1,
- "num": 25
+ "num": 26
},
{
"global": 0,
- "name": "26. MAX6675 Температура",
+ "name": "27. MAX6675 Температура",
"type": "Reading",
"subtype": "Max6675t",
"id": "maxtmp",
@@ -385,11 +398,11 @@
"DO": 12,
"CS": 13,
"CLK": 14,
- "num": 26
+ "num": 27
},
{
"global": 0,
- "name": "27. PZEM 004t Напряжение",
+ "name": "28. PZEM 004t Напряжение",
"type": "Reading",
"subtype": "Pzem004v",
"id": "v",
@@ -399,11 +412,11 @@
"int": 15,
"addr": "0xF8",
"round": 1,
- "num": 27
+ "num": 28
},
{
"global": 0,
- "name": "28. PZEM 004t Сила тока",
+ "name": "29. PZEM 004t Сила тока",
"type": "Reading",
"subtype": "Pzem004a",
"id": "a",
@@ -413,11 +426,11 @@
"int": 15,
"addr": "0xF8",
"round": 1,
- "num": 28
+ "num": 29
},
{
"global": 0,
- "name": "29. PZEM 004t Мощность",
+ "name": "30. PZEM 004t Мощность",
"type": "Reading",
"subtype": "Pzem004w",
"id": "w",
@@ -427,11 +440,11 @@
"int": 15,
"addr": "0xF8",
"round": 1,
- "num": 29
+ "num": 30
},
{
"global": 0,
- "name": "30. PZEM 004t Энергия",
+ "name": "31. PZEM 004t Энергия",
"type": "Reading",
"subtype": "Pzem004wh",
"id": "wh",
@@ -441,11 +454,11 @@
"int": 15,
"addr": "0xF8",
"round": 1,
- "num": 30
+ "num": 31
},
{
"global": 0,
- "name": "31. PZEM 004t Частота",
+ "name": "32. PZEM 004t Частота",
"type": "Reading",
"subtype": "Pzem004hz",
"id": "hz",
@@ -455,11 +468,11 @@
"int": 15,
"addr": "0xF8",
"round": 1,
- "num": 31
+ "num": 32
},
{
"global": 0,
- "name": "32. PZEM 004t Косинус",
+ "name": "33. PZEM 004t Косинус",
"type": "Reading",
"subtype": "Pzem004pf",
"id": "pf",
@@ -469,12 +482,12 @@
"int": 15,
"addr": "0xF8",
"round": 1,
- "num": 32
+ "num": 33
},
{
"global": 0,
- "name": "33. Сканер кнопок 433 MHz",
- "num": 33,
+ "name": "34. Сканер кнопок 433 MHz",
+ "num": 34,
"type": "Reading",
"subtype": "RCswitch",
"id": "rsw",
@@ -484,7 +497,7 @@
},
{
"global": 0,
- "name": "34. Sht20 Температура",
+ "name": "35. Sht20 Температура",
"type": "Reading",
"subtype": "Sht20t",
"id": "tmp2",
@@ -493,11 +506,11 @@
"descr": "Температура",
"int": 15,
"round": 1,
- "num": 34
+ "num": 35
},
{
"global": 0,
- "name": "35. Sht20 Влажность",
+ "name": "36. Sht20 Влажность",
"type": "Reading",
"subtype": "Sht20h",
"id": "Hum2",
@@ -506,11 +519,11 @@
"descr": "Влажность",
"int": 15,
"round": 1,
- "num": 35
+ "num": 36
},
{
"global": 0,
- "name": "36. Sht30 Температура",
+ "name": "37. Sht30 Температура",
"type": "Reading",
"subtype": "Sht30t",
"id": "tmp30",
@@ -519,11 +532,11 @@
"descr": "SHT30 Температура",
"int": 15,
"round": 1,
- "num": 36
+ "num": 37
},
{
"global": 0,
- "name": "37. Sht30 Влажность",
+ "name": "38. Sht30 Влажность",
"type": "Reading",
"subtype": "Sht30h",
"id": "Hum30",
@@ -532,12 +545,12 @@
"descr": "SHT30 Влажность",
"int": 15,
"round": 1,
- "num": 37
+ "num": 38
},
{
"global": 0,
- "name": "38. HC-SR04 Ультразвуковой дальномер",
- "num": 38,
+ "name": "39. HC-SR04 Ультразвуковой дальномер",
+ "num": 39,
"type": "Reading",
"subtype": "Sonar",
"id": "sonar",
@@ -549,7 +562,7 @@
"int": 5
},
{
- "name": "39. UART",
+ "name": "40. UART",
"type": "Reading",
"subtype": "UART",
"page": "",
@@ -561,14 +574,14 @@
"line": 2,
"speed": 9600,
"eventFormat": 0,
- "num": 39
+ "num": 40
},
{
"header": "Исполнительные устройства"
},
{
"global": 0,
- "name": "40. Кнопка подключенная к пину",
+ "name": "41. Кнопка подключенная к пину",
"type": "Writing",
"subtype": "ButtonIn",
"id": "btn",
@@ -582,11 +595,11 @@
"pinMode": "INPUT",
"debounceDelay": 50,
"fixState": 0,
- "num": 40
+ "num": 41
},
{
"global": 0,
- "name": "41. Управление пином",
+ "name": "42. Управление пином",
"type": "Writing",
"subtype": "ButtonOut",
"needSave": 0,
@@ -597,11 +610,11 @@
"int": 0,
"inv": 0,
"pin": 2,
- "num": 41
+ "num": 42
},
{
"global": 0,
- "name": "42. Сервопривод",
+ "name": "43. Сервопривод",
"type": "Writing",
"subtype": "IoTServo",
"id": "servo",
@@ -612,11 +625,11 @@
"pin": 12,
"apin": -1,
"amap": "0, 4096, 0, 180",
- "num": 42
+ "num": 43
},
{
"global": 0,
- "name": "43. Расширитель портов Mcp23017",
+ "name": "44. Расширитель портов Mcp23017",
"type": "Reading",
"subtype": "Mcp23017",
"id": "Mcp",
@@ -626,11 +639,11 @@
"int": "0",
"addr": "0x20",
"index": 1,
- "num": 43
+ "num": 44
},
{
"global": 0,
- "name": "44. MP3 плеер",
+ "name": "45. MP3 плеер",
"type": "Reading",
"subtype": "Mp3",
"id": "mp3",
@@ -640,11 +653,11 @@
"int": 1,
"pins": "14,12",
"volume": 20,
- "num": 44
+ "num": 45
},
{
"global": 0,
- "name": "45. Сенсорная кнопка",
+ "name": "46. Сенсорная кнопка",
"type": "Writing",
"subtype": "Multitouch",
"id": "impulse",
@@ -658,11 +671,11 @@
"pinMode": "INPUT",
"debounceDelay": 50,
"PWMDelay": 500,
- "num": 45
+ "num": 46
},
{
"global": 0,
- "name": "46. Расширитель портов Pcf8574",
+ "name": "47. Расширитель портов Pcf8574",
"type": "Reading",
"subtype": "Pcf8574",
"id": "Pcf",
@@ -672,11 +685,11 @@
"int": "0",
"addr": "0x20",
"index": 1,
- "num": 46
+ "num": 47
},
{
"global": 0,
- "name": "47. PWM ESP8266",
+ "name": "48. PWM ESP8266",
"type": "Writing",
"subtype": "Pwm8266",
"id": "pwm",
@@ -688,11 +701,11 @@
"freq": 5000,
"val": 0,
"apin": -1,
- "num": 47
+ "num": 48
},
{
"global": 0,
- "name": "48. Телеграм-Лайт",
+ "name": "49. Телеграм-Лайт",
"type": "Writing",
"subtype": "TelegramLT",
"id": "tg",
@@ -701,14 +714,14 @@
"descr": "",
"token": "",
"chatID": "",
- "num": 48
+ "num": 49
},
{
"header": "Экраны"
},
{
"global": 0,
- "name": "49. LCD экран 2004",
+ "name": "50. LCD экран 2004",
"type": "Reading",
"subtype": "Lcd2004",
"id": "Lcd",
@@ -720,10 +733,10 @@
"size": "20,4",
"coord": "0,0",
"id2show": "id датчика",
- "num": 49
+ "num": 50
},
{
- "name": "50. LCD экран 1602",
+ "name": "51. LCD экран 1602",
"type": "Reading",
"subtype": "Lcd2004",
"id": "Lcd",
@@ -735,11 +748,11 @@
"size": "16,2",
"coord": "0,0",
"id2show": "id датчика",
- "num": 50
+ "num": 51
},
{
"global": 0,
- "name": "51. Strip ws2812b",
+ "name": "52. Strip ws2812b",
"type": "Reading",
"subtype": "Ws2812b",
"id": "strip",
@@ -755,6 +768,6 @@
"min": "15",
"max": "30",
"idshow": "t",
- "num": 51
+ "num": 52
}
]
\ No newline at end of file
diff --git a/data_svelte/settings.json b/data_svelte/settings.json
index affb351a..b7707bf7 100644
--- a/data_svelte/settings.json
+++ b/data_svelte/settings.json
@@ -16,6 +16,7 @@
"serverip": "http://iotmanager.org",
"log": 0,
"mqttin": 0,
+ "i2c": 0,
"pinSCL": 0,
"pinSDA": 0,
"i2cFreq": 100000,
diff --git a/include/Const.h b/include/Const.h
index 4581349c..ba4cd200 100644
--- a/include/Const.h
+++ b/include/Const.h
@@ -1,7 +1,7 @@
#pragma once
//Версия прошивки
-#define FIRMWARE_VERSION 431
+#define FIRMWARE_VERSION 432
#ifdef esp8266_1mb_ota
#define FIRMWARE_NAME "esp8266_1mb_ota"
@@ -53,11 +53,11 @@ enum TimerTask_t { WIFI_SCAN,
TIME,
TIME_SYNC,
UPTIME,
- UDP, // UDPP
- TIMES, // периодические секундные проверки
+ UDP, // UDPP
+ TIMES, // периодические секундные проверки
PTASK,
ST,
- END};
+ END };
//задачи которые надо протащить через loop
enum NotAsyncActions {
diff --git a/src/Main.cpp b/src/Main.cpp
index 34860c02..94ae3e25 100644
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -59,11 +59,12 @@ void setup() {
mqttInit();
// настраиваем i2c шину
- int pinSCL, pinSDA, i2cFreq;
+ int i2c, pinSCL, pinSDA, i2cFreq;
jsonRead(settingsFlashJson, "pinSCL", pinSCL, false);
jsonRead(settingsFlashJson, "pinSDA", pinSDA, false);
jsonRead(settingsFlashJson, "i2cFreq", i2cFreq, false);
- if (pinSCL && pinSDA && i2cFreq) {
+ jsonRead(settingsFlashJson, "i2c", i2c, false);
+ if (i2c != 0) {
#ifdef esp32_4mb
Wire.end();
Wire.begin(pinSDA, pinSCL, (uint32_t)i2cFreq);
@@ -71,6 +72,7 @@ void setup() {
Wire.begin(pinSDA, pinSCL);
Wire.setClock(i2cFreq);
#endif
+ SerialPrint("i", "i2c", F("i2c pins overriding done"));
}
//настраиваем микроконтроллер
@@ -95,21 +97,21 @@ void setup() {
// настраиваем секундные обслуживания системы
ts.add(
- TIMES, 1000, [&](void*) {
+ TIMES, 1000, [&](void *) {
// сохраняем значения IoTItems в файл каждую секунду, если были изменения (установлены маркеры на сохранение)
if (needSaveValues) {
syncValuesFlashJson();
needSaveValues = false;
}
-
+
// проверяем все элементы на тухлость
for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
(*it)->checkIntFromNet();
-
- //Serial.printf("[ITEM] size: %d, id: %s, int: %d, intnet: %d\n", sizeof(**it), (*it)->getID(), (*it)->getInterval(), (*it)->getIntFromNet());
- }
+
+ // Serial.printf("[ITEM] size: %d, id: %s, int: %d, intnet: %d\n", sizeof(**it), (*it)->getID(), (*it)->getInterval(), (*it)->getIntFromNet());
+ }
},
- nullptr, true);
+ nullptr, true);
// test
Serial.println("-------test start--------");
@@ -152,8 +154,8 @@ void loop() {
// передаем управление каждому элементу конфигурации для выполнения своих функций
for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
(*it)->loop();
-
- //if ((*it)->iAmDead) {
+
+ // if ((*it)->iAmDead) {
if (!((*it)->iAmLocal) && (*it)->getIntFromNet() == -1) {
delete *it;
IoTItems.erase(it);
@@ -164,10 +166,10 @@ void loop() {
handleOrder();
handleEvent();
-// #ifdef LOOP_DEBUG
-// loopPeriod = millis() - st;
-// if (loopPeriod > 2) Serial.println(loopPeriod);
-// #endif
+ // #ifdef LOOP_DEBUG
+ // loopPeriod = millis() - st;
+ // if (loopPeriod > 2) Serial.println(loopPeriod);
+ // #endif
}
//отправка json
diff --git a/src/utils/SerialPrint.cpp b/src/utils/SerialPrint.cpp
index e633df9c..d057beb3 100644
--- a/src/utils/SerialPrint.cpp
+++ b/src/utils/SerialPrint.cpp
@@ -13,21 +13,17 @@ void SerialPrint(const String& errorLevel, const String& module, const String& m
if (isNetworkActive()) {
if (jsonReadInt(settingsFlashJson, F("log")) != 0) {
- // String pl = "/log|" + tosend;
- // standWebSocket.broadcastTXT(pl);
sendStringToWs("corelg", tosend, -1);
}
}
- if (errorLevel == "E") {
- cleanString(tosend);
- // создаем событие об ошибке для возможной реакции в сценарии
- if (itemId != "") {
- createItemFromNet(itemId + "_onError", tosend, -4);
- } else {
- createItemFromNet("onError", tosend, -4);
- }
- }
-
-
+ // if (errorLevel == "E") {
+ // cleanString(tosend);
+ // // создаем событие об ошибке для возможной реакции в сценарии
+ // if (itemId != "") {
+ // createItemFromNet(itemId + "_onError", tosend, -4);
+ // } else {
+ // createItemFromNet("onError", tosend, -4);
+ // }
+ // }
}
\ No newline at end of file