Структурируем модули как надо

This commit is contained in:
2022-08-11 17:40:42 +03:00
parent 1ddc3aab9c
commit 799aff3383
70 changed files with 281 additions and 281 deletions

View File

@@ -4,114 +4,10 @@
"num": 0
},
{
"header": "Экраны"
"header": "Виртуальные элементы"
},
{
"name": "1. LCD экран 2004",
"type": "Reading",
"subtype": "Lcd2004",
"id": "Lcd",
"widget": "",
"page": "",
"descr": "T",
"int": 15,
"addr": "0x27",
"size": "20,4",
"coord": "0,0",
"id2show": "id датчика",
"num": 1
},
{
"name": "2. LCD экран 1602",
"type": "Reading",
"subtype": "Lcd2004",
"id": "Lcd",
"widget": "",
"page": "",
"descr": "T",
"int": 15,
"addr": "0x27",
"size": "16,2",
"coord": "0,0",
"id2show": "id датчика",
"num": 2
},
{
"header": "Модули управления"
},
{
"name": "3. Кнопка (подключенная физически)",
"type": "Writing",
"subtype": "ButtonIn",
"id": "btn",
"widget": "toggle",
"page": "Кнопки",
"descr": "",
"int": 0,
"pin": 16,
"execLevel": "1",
"pinMode": "INPUT",
"debounceDelay": 50,
"fixState": 1,
"num": 3
},
{
"name": "4. Кнопка управляющая пином (Реле с кнопкой)",
"type": "Writing",
"subtype": "ButtonOut",
"id": "btn",
"widget": "toggle",
"page": "Кнопки",
"descr": "",
"int": 0,
"inv": 0,
"pin": 2,
"num": 4
},
{
"name": "5. Сервопривод",
"type": "Writing",
"subtype": "IoTServo",
"id": "servo",
"widget": "range",
"page": "servo",
"descr": "угол",
"int": 1,
"pin": 12,
"apin": -1,
"amap": "0, 4096, 0, 180",
"num": 5
},
{
"name": "6. MP3 плеер",
"type": "Reading",
"subtype": "Mp3",
"id": "mp3",
"widget": "",
"page": "",
"descr": "",
"int": 1,
"pins": "14,12",
"volume": 20,
"num": 6
},
{
"name": "7. PWM ESP8266",
"type": "Writing",
"subtype": "Pwm8266",
"id": "pwm",
"widget": "range",
"page": "Кнопки",
"descr": "PWM",
"int": 0,
"pin": 15,
"freq": 5000,
"val": 0,
"apin": -1,
"num": 7
},
{
"name": "8. Таймер",
"name": "1. Таймер",
"type": "Writing",
"subtype": "Timer",
"id": "timer",
@@ -123,13 +19,25 @@
"ticker": 0,
"repeat": 0,
"needSave": 0,
"num": 8
"num": 1
},
{
"name": "2. Переменная",
"type": "Reading",
"subtype": "Variable",
"id": "var",
"widget": "",
"page": "",
"descr": "",
"int": "0",
"val": "0",
"num": 2
},
{
"header": "Сенсоры"
},
{
"name": "9. Cенсор температуры AHT20",
"name": "3. Cенсор температуры AHT20",
"type": "Reading",
"subtype": "Aht20t",
"id": "Temp20",
@@ -139,10 +47,10 @@
"int": 15,
"addr": "0x38",
"round": 1,
"num": 9
"num": 3
},
{
"name": "10. Cенсор влажности AHT20",
"name": "4. Cенсор влажности AHT20",
"type": "Reading",
"subtype": "Aht20h",
"id": "Hum20",
@@ -152,10 +60,10 @@
"int": 15,
"addr": "0x38",
"round": 1,
"num": 10
"num": 4
},
{
"name": "11. Аналоговый сенсор",
"name": "5. Аналоговый сенсор",
"type": "Reading",
"subtype": "AnalogAdc",
"id": "t",
@@ -169,10 +77,10 @@
"pin": 0,
"int": 15,
"avgSteps": 1,
"num": 11
"num": 5
},
{
"name": "12. Cенсор температуры Bme280",
"name": "6. Cенсор температуры Bme280",
"type": "Reading",
"subtype": "Bme280t",
"id": "tmp3",
@@ -182,10 +90,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 12
"num": 6
},
{
"name": "13. Cенсор давления Bme280",
"name": "7. Cенсор давления Bme280",
"type": "Reading",
"subtype": "Bme280p",
"id": "Press3",
@@ -195,10 +103,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 13
"num": 7
},
{
"name": "14. Cенсор влажности Bme280",
"name": "8. Cенсор влажности Bme280",
"type": "Reading",
"subtype": "Bme280h",
"id": "Hum3",
@@ -208,10 +116,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 14
"num": 8
},
{
"name": "15. Cенсор температуры Bmp280",
"name": "9. Cенсор температуры Bmp280",
"type": "Reading",
"subtype": "Bmp280t",
"id": "tmp3",
@@ -221,10 +129,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 15
"num": 9
},
{
"name": "16. Cенсор давления Bmp280",
"name": "10. Cенсор давления Bmp280",
"type": "Reading",
"subtype": "Bmp280p",
"id": "Press3",
@@ -234,10 +142,10 @@
"int": 15,
"addr": "0x77",
"round": 1,
"num": 16
"num": 10
},
{
"name": "17. Cенсор температуры dht11",
"name": "11. Cенсор температуры dht11",
"type": "Reading",
"subtype": "Dht1122t",
"id": "tmp3",
@@ -247,10 +155,10 @@
"int": 15,
"pin": 0,
"senstype": "dht11",
"num": 17
"num": 11
},
{
"name": "18. Cенсор влажности dht11",
"name": "12. Cенсор влажности dht11",
"type": "Reading",
"subtype": "Dht1122h",
"id": "Hum3",
@@ -260,10 +168,10 @@
"int": 15,
"pin": 0,
"senstype": "dht11",
"num": 18
"num": 12
},
{
"name": "19. Cенсор температуры ds18b20",
"name": "13. Cенсор температуры ds18b20",
"type": "Reading",
"subtype": "Ds18b20",
"id": "dstmp",
@@ -275,10 +183,10 @@
"index": 0,
"addr": "",
"round": 1,
"num": 19
"num": 13
},
{
"name": "20. Cенсор температуры GY21",
"name": "14. Cенсор температуры GY21",
"type": "Reading",
"subtype": "GY21t",
"id": "tmp4",
@@ -287,10 +195,10 @@
"descr": "Температура",
"round": 1,
"int": 15,
"num": 20
"num": 14
},
{
"name": "21. Cенсор влажности GY21",
"name": "15. Cенсор влажности GY21",
"type": "Reading",
"subtype": "GY21h",
"id": "Hum4",
@@ -299,10 +207,10 @@
"descr": "Влажность",
"round": 1,
"int": 15,
"num": 21
"num": 15
},
{
"name": "22. Cенсор температуры HDC1080",
"name": "16. Cенсор температуры HDC1080",
"type": "Reading",
"subtype": "Hdc1080t",
"id": "Temp1080",
@@ -312,10 +220,10 @@
"int": 15,
"addr": "0x40",
"round": 1,
"num": 22
"num": 16
},
{
"name": "23. Cенсор влажности HDC1080",
"name": "17. Cенсор влажности HDC1080",
"type": "Reading",
"subtype": "Hdc1080h",
"id": "Hum1080",
@@ -325,10 +233,10 @@
"int": 15,
"addr": "0x40",
"round": 1,
"num": 23
"num": 17
},
{
"name": "24. Cенсор температуры MAX6675",
"name": "18. Cенсор температуры MAX6675",
"type": "Reading",
"subtype": "Max6675t",
"id": "maxtmp",
@@ -339,11 +247,11 @@
"DO": 12,
"CS": 13,
"CLK": 14,
"num": 24
"num": 18
},
{
"name": "25. Сканер кнопок 433 MHz",
"num": 25,
"name": "19. Сканер кнопок 433 MHz",
"num": 19,
"type": "Reading",
"subtype": "RCswitch",
"id": "rsw",
@@ -352,7 +260,7 @@
"pinTx": 12
},
{
"name": "26. Cенсор температуры Sht20",
"name": "20. Cенсор температуры Sht20",
"type": "Reading",
"subtype": "Sht20t",
"id": "tmp2",
@@ -361,10 +269,10 @@
"descr": "Температура",
"int": 15,
"round": 1,
"num": 26
"num": 20
},
{
"name": "27. Cенсор влажности Sht20",
"name": "21. Cенсор влажности Sht20",
"type": "Reading",
"subtype": "Sht20h",
"id": "Hum2",
@@ -373,10 +281,10 @@
"descr": "Влажность",
"int": 15,
"round": 1,
"num": 27
"num": 21
},
{
"name": "28. Cенсор температуры Sht30",
"name": "22. Cенсор температуры Sht30",
"type": "Reading",
"subtype": "Sht30t",
"id": "tmp30",
@@ -385,10 +293,10 @@
"descr": "SHT30 Температура",
"int": 15,
"round": 1,
"num": 28
"num": 22
},
{
"name": "29. Cенсор влажности Sht30",
"name": "23. Cенсор влажности Sht30",
"type": "Reading",
"subtype": "Sht30h",
"id": "Hum30",
@@ -397,11 +305,11 @@
"descr": "SHT30 Влажность",
"int": 15,
"round": 1,
"num": 29
"num": 23
},
{
"name": "30. Сонар HC-SR04",
"num": 30,
"name": "24. Сонар HC-SR04",
"num": 24,
"type": "Reading",
"subtype": "Sonar",
"id": "sonar",
@@ -413,10 +321,39 @@
"int": 5
},
{
"header": "Расширения"
"header": "Исполнительные устройства"
},
{
"name": "31. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",
"name": "25. Кнопка (подключенная физически)",
"type": "Writing",
"subtype": "ButtonIn",
"id": "btn",
"widget": "toggle",
"page": "Кнопки",
"descr": "",
"int": 0,
"pin": 16,
"execLevel": "1",
"pinMode": "INPUT",
"debounceDelay": 50,
"fixState": 1,
"num": 25
},
{
"name": "26. Кнопка управляющая пином (Реле с кнопкой)",
"type": "Writing",
"subtype": "ButtonOut",
"id": "btn",
"widget": "toggle",
"page": "Кнопки",
"descr": "",
"int": 0,
"inv": 0,
"pin": 2,
"num": 26
},
{
"name": "27. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",
"type": "Reading",
"subtype": "IarduinoRTC",
"id": "RTC",
@@ -430,10 +367,24 @@
"dat": 4,
"defFormat": "d-m-Y",
"ticker": 0,
"num": 31
"num": 27
},
{
"name": "32. Расширитель портов Mcp23017",
"name": "28. Сервопривод",
"type": "Writing",
"subtype": "IoTServo",
"id": "servo",
"widget": "range",
"page": "servo",
"descr": "угол",
"int": 1,
"pin": 12,
"apin": -1,
"amap": "0, 4096, 0, 180",
"num": 28
},
{
"name": "29. Расширитель портов Mcp23017",
"type": "Reading",
"subtype": "Mcp23017",
"id": "Mcp",
@@ -443,10 +394,38 @@
"int": "0",
"addr": "0x20",
"index": 1,
"num": 32
"num": 29
},
{
"name": "33. Доп. функции системы",
"name": "30. MP3 плеер",
"type": "Reading",
"subtype": "Mp3",
"id": "mp3",
"widget": "",
"page": "",
"descr": "",
"int": 1,
"pins": "14,12",
"volume": 20,
"num": 30
},
{
"name": "31. PWM ESP8266",
"type": "Writing",
"subtype": "Pwm8266",
"id": "pwm",
"widget": "range",
"page": "Кнопки",
"descr": "PWM",
"int": 0,
"pin": 15,
"freq": 5000,
"val": 0,
"apin": -1,
"num": 31
},
{
"name": "32. Доп. функции системы",
"type": "Reading",
"subtype": "SysExt",
"id": "SysExt",
@@ -454,18 +433,39 @@
"page": "",
"descr": "",
"int": 15,
"num": 32
},
{
"header": "Экраны"
},
{
"name": "33. LCD экран 2004",
"type": "Reading",
"subtype": "Lcd2004",
"id": "Lcd",
"widget": "",
"page": "",
"descr": "T",
"int": 15,
"addr": "0x27",
"size": "20,4",
"coord": "0,0",
"id2show": "id датчика",
"num": 33
},
{
"name": "34. Переменная",
"name": "34. LCD экран 1602",
"type": "Reading",
"subtype": "Variable",
"id": "var",
"subtype": "Lcd2004",
"id": "Lcd",
"widget": "",
"page": "",
"descr": "",
"int": "0",
"val": "0",
"descr": "T",
"int": 15,
"addr": "0x27",
"size": "16,2",
"coord": "0,0",
"id2show": "id датчика",
"num": 34
}
]

View File

@@ -26,143 +26,143 @@
}
},
"modules": {
"Экраны": [
"Виртуальные элементы": [
{
"path": "src\\modules\\display\\Lcd2004",
"active": true
}
],
"Модули управления": [
{
"path": "src\\modules\\exec\\ButtonIn",
"path": "src\\modules\\1.virtual\\Timer",
"active": true
},
{
"path": "src\\modules\\exec\\ButtonOut",
"active": true
},
{
"path": "src\\modules\\exec\\EspCam",
"active": false
},
{
"path": "src\\modules\\exec\\IoTServo",
"active": true
},
{
"path": "src\\modules\\exec\\Mp3",
"active": true
},
{
"path": "src\\modules\\exec\\Pwm32",
"active": true
},
{
"path": "src\\modules\\exec\\Pwm8266",
"active": true
},
{
"path": "src\\modules\\exec\\SDcard",
"active": false
},
{
"path": "src\\modules\\exec\\Telegram",
"active": false
},
{
"path": "src\\modules\\exec\\Timer",
"path": "src\\modules\\1.virtual\\Variable",
"active": true
}
],
"Сенсоры": [
{
"path": "src\\modules\\sensors\\Ads1115",
"path": "src\\modules\\2.sensors\\Ads1115",
"active": false
},
{
"path": "src\\modules\\sensors\\Aht20",
"path": "src\\modules\\2.sensors\\Aht20",
"active": true
},
{
"path": "src\\modules\\sensors\\AnalogAdc",
"path": "src\\modules\\2.sensors\\AnalogAdc",
"active": true
},
{
"path": "src\\modules\\sensors\\Bme280",
"path": "src\\modules\\2.sensors\\Bme280",
"active": true
},
{
"path": "src\\modules\\sensors\\Bmp280",
"path": "src\\modules\\2.sensors\\Bmp280",
"active": true
},
{
"path": "src\\modules\\sensors\\Dht1122",
"path": "src\\modules\\2.sensors\\Dht1122",
"active": true
},
{
"path": "src\\modules\\sensors\\Ds18b20",
"path": "src\\modules\\2.sensors\\Ds18b20",
"active": true
},
{
"path": "src\\modules\\sensors\\Emon",
"path": "src\\modules\\2.sensors\\Emon",
"active": false
},
{
"path": "src\\modules\\sensors\\GY21",
"path": "src\\modules\\2.sensors\\GY21",
"active": true
},
{
"path": "src\\modules\\sensors\\Hdc1080",
"path": "src\\modules\\2.sensors\\Hdc1080",
"active": true
},
{
"path": "src\\modules\\sensors\\IoTWiegand",
"path": "src\\modules\\2.sensors\\IoTWiegand",
"active": false
},
{
"path": "src\\modules\\sensors\\Max6675",
"path": "src\\modules\\2.sensors\\Max6675",
"active": true
},
{
"path": "src\\modules\\sensors\\Mhz19",
"path": "src\\modules\\2.sensors\\Mhz19",
"active": false
},
{
"path": "src\\modules\\sensors\\RCswitch",
"path": "src\\modules\\2.sensors\\RCswitch",
"active": true
},
{
"path": "src\\modules\\sensors\\Sds011",
"path": "src\\modules\\2.sensors\\Sds011",
"active": false
},
{
"path": "src\\modules\\sensors\\Sht20",
"path": "src\\modules\\2.sensors\\Sht20",
"active": true
},
{
"path": "src\\modules\\sensors\\Sht30",
"path": "src\\modules\\2.sensors\\Sht30",
"active": true
},
{
"path": "src\\modules\\sensors\\Sonar",
"path": "src\\modules\\2.sensors\\Sonar",
"active": true
}
],
"Расширения": [
"Исполнительные устройства": [
{
"path": "src\\modules\\system\\IarduinoRTC",
"path": "src\\modules\\3.exec\\ButtonIn",
"active": true
},
{
"path": "src\\modules\\system\\Mcp23017",
"path": "src\\modules\\3.exec\\ButtonOut",
"active": true
},
{
"path": "src\\modules\\system\\SysExt",
"path": "src\\modules\\3.exec\\EspCam",
"active": false
},
{
"path": "src\\modules\\3.exec\\IarduinoRTC",
"active": true
},
{
"path": "src\\modules\\system\\Variable",
"path": "src\\modules\\3.exec\\IoTServo",
"active": true
},
{
"path": "src\\modules\\3.exec\\Mcp23017",
"active": true
},
{
"path": "src\\modules\\3.exec\\Mp3",
"active": true
},
{
"path": "src\\modules\\3.exec\\Pwm32",
"active": true
},
{
"path": "src\\modules\\3.exec\\Pwm8266",
"active": true
},
{
"path": "src\\modules\\3.exec\\SDcard",
"active": false
},
{
"path": "src\\modules\\3.exec\\SysExt",
"active": true
},
{
"path": "src\\modules\\3.exec\\Telegram",
"active": false
}
],
"Экраны": [
{
"path": "src\\modules\\4.display\\Lcd2004",
"active": true
}
]

View File

@@ -50,8 +50,6 @@ lib_deps_external =
[env:esp8266_4mb_fromitems]
lib_deps =
marcoschwartz/LiquidCrystal_I2C@^1.1.4
dfrobot/DFRobotDFPlayerMini @ ^1.0.5
Adafruit AHTX0
adafruit/Adafruit BME280 Library
adafruit/Adafruit BMP280 Library
@@ -65,31 +63,33 @@ lib_deps =
WEMOS SHT3x@1.0.0
adafruit/Adafruit MCP23017 Arduino Library@^2.0.2
adafruit/Adafruit BusIO @ ^1.13.0
dfrobot/DFRobotDFPlayerMini @ ^1.0.5
marcoschwartz/LiquidCrystal_I2C@^1.1.4
build_src_filter =
+<modules\display\Lcd2004>
+<modules\exec\ButtonIn>
+<modules\exec\ButtonOut>
+<modules\exec\IoTServo>
+<modules\exec\Mp3>
+<modules\exec\Pwm8266>
+<modules\exec\Timer>
+<modules\sensors\Aht20>
+<modules\sensors\AnalogAdc>
+<modules\sensors\Bme280>
+<modules\sensors\Bmp280>
+<modules\sensors\Dht1122>
+<modules\sensors\Ds18b20>
+<modules\sensors\GY21>
+<modules\sensors\Hdc1080>
+<modules\sensors\Max6675>
+<modules\sensors\RCswitch>
+<modules\sensors\Sht20>
+<modules\sensors\Sht30>
+<modules\sensors\Sonar>
+<modules\system\IarduinoRTC>
+<modules\system\Mcp23017>
+<modules\system\SysExt>
+<modules\system\Variable>
+<modules\1.virtual\Timer>
+<modules\1.virtual\Variable>
+<modules\2.sensors\Aht20>
+<modules\2.sensors\AnalogAdc>
+<modules\2.sensors\Bme280>
+<modules\2.sensors\Bmp280>
+<modules\2.sensors\Dht1122>
+<modules\2.sensors\Ds18b20>
+<modules\2.sensors\GY21>
+<modules\2.sensors\Hdc1080>
+<modules\2.sensors\Max6675>
+<modules\2.sensors\RCswitch>
+<modules\2.sensors\Sht20>
+<modules\2.sensors\Sht30>
+<modules\2.sensors\Sonar>
+<modules\3.exec\ButtonIn>
+<modules\3.exec\ButtonOut>
+<modules\3.exec\IarduinoRTC>
+<modules\3.exec\IoTServo>
+<modules\3.exec\Mcp23017>
+<modules\3.exec\Mp3>
+<modules\3.exec\Pwm8266>
+<modules\3.exec\SysExt>
+<modules\4.display\Lcd2004>
[env:esp32_4mb_fromitems]
lib_deps =

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Виртуальные элементы",
"configItem": [{
"name": "Таймер",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Расширения",
"menuSection": "Виртуальные элементы",
"configItem": [{
"name": "Переменная",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Кнопка (подключенная физически)",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Кнопка управляющая пином (Реле с кнопкой)",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Camera OV2640 (ESPcam)",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Расширения",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Сервопривод",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Расширения",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Расширитель портов Mcp23017",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "MP3 плеер",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "PWM ESP32",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "PWM ESP8266",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "SD карта",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Расширения",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Доп. функции системы",

View File

@@ -1,5 +1,5 @@
{
"menuSection": "Модули управления",
"menuSection": "Исполнительные устройства",
"configItem": [{
"name": "Телеграм-Бот",

View File

@@ -1,12 +1,7 @@
#include "ESPConfiguration.h"
void* getAPI_Lcd2004(String subtype, String params);
void* getAPI_ButtonIn(String subtype, String params);
void* getAPI_ButtonOut(String subtype, String params);
void* getAPI_IoTServo(String subtype, String params);
void* getAPI_Mp3(String subtype, String params);
void* getAPI_Pwm8266(String subtype, String params);
void* getAPI_Timer(String subtype, String params);
void* getAPI_Variable(String subtype, String params);
void* getAPI_Aht20(String subtype, String params);
void* getAPI_AnalogAdc(String subtype, String params);
void* getAPI_Bme280(String subtype, String params);
@@ -20,20 +15,20 @@ void* getAPI_RCswitch(String subtype, String params);
void* getAPI_Sht20(String subtype, String params);
void* getAPI_Sht30(String subtype, String params);
void* getAPI_Sonar(String subtype, String params);
void* getAPI_ButtonIn(String subtype, String params);
void* getAPI_ButtonOut(String subtype, String params);
void* getAPI_IarduinoRTC(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_SysExt(String subtype, String params);
void* getAPI_Variable(String subtype, String params);
void* getAPI_Lcd2004(String subtype, String params);
void* getAPI(String subtype, String params) {
void* tmpAPI;
if ((tmpAPI = getAPI_Lcd2004(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_ButtonIn(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_ButtonOut(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_IoTServo(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_Timer(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Variable(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Aht20(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_AnalogAdc(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Bme280(subtype, params)) != nullptr) return tmpAPI;
@@ -47,9 +42,14 @@ if ((tmpAPI = getAPI_RCswitch(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Sht20(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Sht30(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Sonar(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_ButtonIn(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_ButtonOut(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_IarduinoRTC(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_SysExt(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Variable(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Lcd2004(subtype, params)) != nullptr) return tmpAPI;
return nullptr;
}