mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
исправлена конфигурация виртуальных элементов
This commit is contained in:
@@ -61,7 +61,7 @@
|
|||||||
"name": "5. Кнопка",
|
"name": "5. Кнопка",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "VButton",
|
"subtype": "VButton",
|
||||||
"id": "btn",
|
"id": "vbtn",
|
||||||
"widget": "button",
|
"widget": "button",
|
||||||
"page": "Кнопки",
|
"page": "Кнопки",
|
||||||
"descr": "Кнопка1",
|
"descr": "Кнопка1",
|
||||||
@@ -207,7 +207,7 @@
|
|||||||
"num": 15
|
"num": 15
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "15. Cенсор температуры ds18b20",
|
"name": "16. Cенсор температуры ds18b20",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Ds18b20",
|
"subtype": "Ds18b20",
|
||||||
"id": "dstmp",
|
"id": "dstmp",
|
||||||
@@ -222,7 +222,7 @@
|
|||||||
"num": 16
|
"num": 16
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "16. Cенсор температуры GY21",
|
"name": "17. Cенсор температуры GY21",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "GY21t",
|
"subtype": "GY21t",
|
||||||
"id": "tmp4",
|
"id": "tmp4",
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
"num": 17
|
"num": 17
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "17. Cенсор влажности GY21",
|
"name": "18. Cенсор влажности GY21",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "GY21h",
|
"subtype": "GY21h",
|
||||||
"id": "Hum4",
|
"id": "Hum4",
|
||||||
@@ -246,7 +246,7 @@
|
|||||||
"num": 18
|
"num": 18
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "18. Cенсор температуры HDC1080",
|
"name": "19. Cенсор температуры HDC1080",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Hdc1080t",
|
"subtype": "Hdc1080t",
|
||||||
"id": "Temp1080",
|
"id": "Temp1080",
|
||||||
@@ -259,7 +259,7 @@
|
|||||||
"num": 19
|
"num": 19
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "19. Cенсор влажности HDC1080",
|
"name": "20. Cенсор влажности HDC1080",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Hdc1080h",
|
"subtype": "Hdc1080h",
|
||||||
"id": "Hum1080",
|
"id": "Hum1080",
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
"num": 20
|
"num": 20
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "20. Cенсор температуры MAX6675",
|
"name": "21. Cенсор температуры MAX6675",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Max6675t",
|
"subtype": "Max6675t",
|
||||||
"id": "maxtmp",
|
"id": "maxtmp",
|
||||||
@@ -286,7 +286,7 @@
|
|||||||
"num": 21
|
"num": 21
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "21. Сканер кнопок 433 MHz",
|
"name": "22. Сканер кнопок 433 MHz",
|
||||||
"num": 22,
|
"num": 22,
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "RCswitch",
|
"subtype": "RCswitch",
|
||||||
@@ -296,7 +296,7 @@
|
|||||||
"pinTx": 12
|
"pinTx": 12
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "22. Cенсор температуры Sht20",
|
"name": "23. Cенсор температуры Sht20",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Sht20t",
|
"subtype": "Sht20t",
|
||||||
"id": "tmp2",
|
"id": "tmp2",
|
||||||
@@ -308,7 +308,7 @@
|
|||||||
"num": 23
|
"num": 23
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "23. Cенсор влажности Sht20",
|
"name": "24. Cенсор влажности Sht20",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Sht20h",
|
"subtype": "Sht20h",
|
||||||
"id": "Hum2",
|
"id": "Hum2",
|
||||||
@@ -320,7 +320,7 @@
|
|||||||
"num": 24
|
"num": 24
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "24. Cенсор температуры Sht30",
|
"name": "25. Cенсор температуры Sht30",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Sht30t",
|
"subtype": "Sht30t",
|
||||||
"id": "tmp30",
|
"id": "tmp30",
|
||||||
@@ -332,7 +332,7 @@
|
|||||||
"num": 25
|
"num": 25
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "25. Cенсор влажности Sht30",
|
"name": "26. Cенсор влажности Sht30",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Sht30h",
|
"subtype": "Sht30h",
|
||||||
"id": "Hum30",
|
"id": "Hum30",
|
||||||
@@ -344,7 +344,7 @@
|
|||||||
"num": 26
|
"num": 26
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "26. Сонар HC-SR04",
|
"name": "27. Сонар HC-SR04",
|
||||||
"num": 27,
|
"num": 27,
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Sonar",
|
"subtype": "Sonar",
|
||||||
@@ -360,7 +360,7 @@
|
|||||||
"header": "Исполнительные устройства"
|
"header": "Исполнительные устройства"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "27. Кнопка подключенная к пину",
|
"name": "28. Кнопка подключенная к пину",
|
||||||
"type": "Writing",
|
"type": "Writing",
|
||||||
"subtype": "ButtonIn",
|
"subtype": "ButtonIn",
|
||||||
"id": "btn",
|
"id": "btn",
|
||||||
@@ -376,7 +376,7 @@
|
|||||||
"num": 28
|
"num": 28
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "28. Кнопка управляющая пином (Реле)",
|
"name": "29. Кнопка управляющая пином (Реле)",
|
||||||
"type": "Writing",
|
"type": "Writing",
|
||||||
"subtype": "ButtonOut",
|
"subtype": "ButtonOut",
|
||||||
"id": "btn",
|
"id": "btn",
|
||||||
@@ -389,7 +389,7 @@
|
|||||||
"num": 29
|
"num": 29
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "29. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",
|
"name": "30. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "IarduinoRTC",
|
"subtype": "IarduinoRTC",
|
||||||
"id": "RTC",
|
"id": "RTC",
|
||||||
@@ -406,7 +406,7 @@
|
|||||||
"num": 30
|
"num": 30
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "30. Сервопривод",
|
"name": "31. Сервопривод",
|
||||||
"type": "Writing",
|
"type": "Writing",
|
||||||
"subtype": "IoTServo",
|
"subtype": "IoTServo",
|
||||||
"id": "servo",
|
"id": "servo",
|
||||||
@@ -420,7 +420,7 @@
|
|||||||
"num": 31
|
"num": 31
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "31. Расширитель портов Mcp23017",
|
"name": "32. Расширитель портов Mcp23017",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Mcp23017",
|
"subtype": "Mcp23017",
|
||||||
"id": "Mcp",
|
"id": "Mcp",
|
||||||
@@ -433,7 +433,7 @@
|
|||||||
"num": 32
|
"num": 32
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "32. MP3 плеер",
|
"name": "33. MP3 плеер",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Mp3",
|
"subtype": "Mp3",
|
||||||
"id": "mp3",
|
"id": "mp3",
|
||||||
@@ -446,7 +446,7 @@
|
|||||||
"num": 33
|
"num": 33
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "33. PWM ESP8266",
|
"name": "34. PWM ESP8266",
|
||||||
"type": "Writing",
|
"type": "Writing",
|
||||||
"subtype": "Pwm8266",
|
"subtype": "Pwm8266",
|
||||||
"id": "pwm",
|
"id": "pwm",
|
||||||
@@ -461,7 +461,7 @@
|
|||||||
"num": 34
|
"num": 34
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "34. Доп. функции системы",
|
"name": "35. Доп. функции системы",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "SysExt",
|
"subtype": "SysExt",
|
||||||
"id": "SysExt",
|
"id": "SysExt",
|
||||||
@@ -475,7 +475,7 @@
|
|||||||
"header": "Экраны"
|
"header": "Экраны"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "35. LCD экран 2004",
|
"name": "36. LCD экран 2004",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Lcd2004",
|
"subtype": "Lcd2004",
|
||||||
"id": "Lcd",
|
"id": "Lcd",
|
||||||
@@ -490,7 +490,7 @@
|
|||||||
"num": 36
|
"num": 36
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "36. LCD экран 1602",
|
"name": "37. LCD экран 1602",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Lcd2004",
|
"subtype": "Lcd2004",
|
||||||
"id": "Lcd",
|
"id": "Lcd",
|
||||||
|
|||||||
@@ -5,9 +5,10 @@
|
|||||||
struct IoTValue {
|
struct IoTValue {
|
||||||
float valD = 0;
|
float valD = 0;
|
||||||
String valS = "";
|
String valS = "";
|
||||||
|
|
||||||
bool isDecimal = true;
|
bool isDecimal = true;
|
||||||
|
|
||||||
uint8_t *extBinInfo = NULL; // дополнительные бинарные данные из модуля
|
uint8_t* extBinInfo = NULL; // дополнительные бинарные данные из модуля
|
||||||
size_t extBinInfoSize = 0; // размер дополнительных данных в байтах
|
size_t extBinInfoSize = 0; // размер дополнительных данных в байтах
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -17,7 +18,7 @@ class IoTItem {
|
|||||||
virtual ~IoTItem() {}
|
virtual ~IoTItem() {}
|
||||||
virtual void loop();
|
virtual void loop();
|
||||||
virtual void doByInterval();
|
virtual void doByInterval();
|
||||||
virtual IoTValue execute(String command, std::vector<IoTValue> ¶m);
|
virtual IoTValue execute(String command, std::vector<IoTValue>& param);
|
||||||
|
|
||||||
void regEvent(String value, String consoleInfo);
|
void regEvent(String value, String consoleInfo);
|
||||||
void regEvent(float value, String consoleInfo);
|
void regEvent(float value, String consoleInfo);
|
||||||
@@ -63,12 +64,10 @@ IoTItem* findIoTItem(String name); // поиск экземпляра элем
|
|||||||
String getItemValue(String name); // поиск плюс получение значения
|
String getItemValue(String name); // поиск плюс получение значения
|
||||||
StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON(); // сбор всех локальных занчений Items
|
StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON(); // сбор всех локальных занчений Items
|
||||||
|
|
||||||
|
class externalVariable : IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
|
||||||
class externalVariable: IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
externalVariable(String parameters);
|
externalVariable(String parameters);
|
||||||
~externalVariable();
|
~externalVariable();
|
||||||
void doByInterval(); // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
void doByInterval(); // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -70,10 +70,11 @@ void IoTItem::setValue(String valStr) {
|
|||||||
|
|
||||||
void IoTItem::setValue(IoTValue Value) {
|
void IoTItem::setValue(IoTValue Value) {
|
||||||
value = Value;
|
value = Value;
|
||||||
if (value.isDecimal)
|
if (value.isDecimal) {
|
||||||
regEvent(value.valD, "");
|
regEvent(value.valD, "");
|
||||||
else
|
} else {
|
||||||
regEvent(value.valS, "");
|
regEvent(value.valS, "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//когда событие случилось
|
//когда событие случилось
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
{
|
{
|
||||||
"menuSection": "Виртуальные элементы",
|
"menuSection": "Виртуальные элементы",
|
||||||
|
"configItem": [
|
||||||
"configItem": [{
|
{
|
||||||
"name": "Таймер",
|
"name": "Таймер",
|
||||||
"type": "Writing",
|
"type": "Writing",
|
||||||
"subtype": "Timer",
|
"subtype": "Timer",
|
||||||
"id": "timer",
|
"id": "timer",
|
||||||
"widget": "",
|
"widget": "anydataDef",
|
||||||
"page": "",
|
"page": "Таймеры",
|
||||||
"descr": "",
|
"descr": "Таймер",
|
||||||
|
|
||||||
"int": 1,
|
"int": 1,
|
||||||
"countDown": 15,
|
"countDown": 15,
|
||||||
"ticker": 0,
|
"ticker": 0,
|
||||||
"repeat": 0,
|
"repeat": 0,
|
||||||
"needSave": 0
|
"needSave": 0,
|
||||||
}],
|
"num": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
"about": {
|
"about": {
|
||||||
"authorName": "Ilya Belyakov",
|
"authorName": "Ilya Belyakov",
|
||||||
"authorContact": "https://t.me/Biveraxe",
|
"authorContact": "https://t.me/Biveraxe",
|
||||||
@@ -33,9 +33,7 @@
|
|||||||
"needSave": "Требуется сохранять(1) или нет(0) состояние в энерго независимую память. Функция находится в разработке."
|
"needSave": "Требуется сохранять(1) или нет(0) состояние в энерго независимую память. Функция находится в разработке."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"defActive": true,
|
"defActive": true,
|
||||||
|
|
||||||
"devices": {
|
"devices": {
|
||||||
"esp32_4mb": [],
|
"esp32_4mb": [],
|
||||||
"esp8266_4mb": []
|
"esp8266_4mb": []
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "classes/IoTItem.h"
|
#include "classes/IoTItem.h"
|
||||||
|
|
||||||
|
//дочь - родитель
|
||||||
class Variable : public IoTItem {
|
class Variable : public IoTItem {
|
||||||
private:
|
private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Variable(String parameters): IoTItem(parameters) {
|
Variable(String parameters) : IoTItem(parameters) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// особенность данного модуля - просто хранение значения для сценария, нет событий
|
// особенность данного модуля - просто хранение значения для сценария, нет событий
|
||||||
@@ -16,7 +14,6 @@ class Variable : public IoTItem {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
void doByInterval() {
|
void doByInterval() {
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,44 +1,43 @@
|
|||||||
{
|
{
|
||||||
"menuSection": "Виртуальные элементы",
|
"menuSection": "Виртуальные элементы",
|
||||||
|
|
||||||
"configItem": [
|
"configItem": [
|
||||||
{
|
{
|
||||||
"name": "Окно ввода цифры",
|
"name": "Окно ввода цифры (переменная)",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Variable",
|
"subtype": "Variable",
|
||||||
"id": "dedit",
|
"id": "value",
|
||||||
"widget": "",
|
"widget": "inputDgt",
|
||||||
"page": "",
|
"page": "Ввод",
|
||||||
"descr": "",
|
"descr": "Введите цифру",
|
||||||
|
|
||||||
"int": "0",
|
"int": "0",
|
||||||
"val": "0"
|
"val": "0",
|
||||||
|
"num": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Окно ввода времени",
|
"name": "Окно ввода времени",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Variable",
|
"subtype": "Variable",
|
||||||
"id": "tedit",
|
"id": "time",
|
||||||
"widget": "",
|
"widget": "inputTm",
|
||||||
"page": "",
|
"page": "Ввод",
|
||||||
"descr": "",
|
"descr": "Введите время",
|
||||||
|
|
||||||
"int": "0",
|
"int": "0",
|
||||||
"val": "0"
|
"val": "0",
|
||||||
|
"num": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Переменная",
|
"name": "Окно ввода даты",
|
||||||
"type": "Reading",
|
"type": "Reading",
|
||||||
"subtype": "Variable",
|
"subtype": "Variable",
|
||||||
"id": "var",
|
"id": "time",
|
||||||
"widget": "",
|
"widget": "inputDate",
|
||||||
"page": "",
|
"page": "Ввод",
|
||||||
"descr": "",
|
"descr": "Введите дату",
|
||||||
|
|
||||||
"int": "0",
|
"int": "0",
|
||||||
"val": "0"
|
"val": "0",
|
||||||
}],
|
"num": 4
|
||||||
|
}
|
||||||
|
],
|
||||||
"about": {
|
"about": {
|
||||||
"authorName": "Ilya Belyakov",
|
"authorName": "Ilya Belyakov",
|
||||||
"authorContact": "https://t.me/Biveraxe",
|
"authorContact": "https://t.me/Biveraxe",
|
||||||
@@ -52,9 +51,7 @@
|
|||||||
"val": "Не используется"
|
"val": "Не используется"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"defActive": true,
|
"defActive": true,
|
||||||
|
|
||||||
"devices": {
|
"devices": {
|
||||||
"esp32_4mb": [],
|
"esp32_4mb": [],
|
||||||
"esp8266_4mb": []
|
"esp8266_4mb": []
|
||||||
|
|||||||
Reference in New Issue
Block a user