Merge pull request #333 from biveraxe/ver4dev

Корректируем структуру проекта для компиляции
This commit is contained in:
2023-10-07 22:54:51 +03:00
committed by GitHub
25 changed files with 271 additions and 1187 deletions

View File

@@ -32,6 +32,7 @@ import configparser
import os, json, sys, getopt import os, json, sys, getopt
from pathlib import Path from pathlib import Path
import shutil import shutil
from distutils.dir_util import copy_tree
config = configparser.ConfigParser() # создаём объекта парсера INI config = configparser.ConfigParser() # создаём объекта парсера INI
@@ -125,23 +126,19 @@ else:
# определяем какое устройство используется в профиле # определяем какое устройство используется в профиле
deviceName = profJson['projectProp']['platformio']['default_envs'] deviceName = profJson['projectProp']['platformio']['default_envs']
# назначаем папку с файлами прошивки в зависимости от устройства и запоминаем в профиле # заполняем папку /data файлами прошивки в зависимости от устройства
dataDir = 'data_svelte'
if deviceName == 'esp8266_1mb_ota' or deviceName == 'esp8285_1mb_ota' or deviceName == 'esp8266_2mb_ota': if deviceName == 'esp8266_1mb_ota' or deviceName == 'esp8285_1mb_ota' or deviceName == 'esp8266_2mb_ota':
dataDir = 'data_svelte_lite' copy_tree("data_lite", "data_svelte")
profJson['projectProp'] = { else:
'platformio': { copy_tree("data_plus", "data_svelte")
'data_dir': dataDir
}
}
# генерируем файлы проекта на основе подготовленного профиля # генерируем файлы проекта на основе подготовленного профиля
# заполняем конфигурационный файл прошивки параметрами из профиля # заполняем конфигурационный файл прошивки параметрами из профиля
with open(dataDir + "/settings.json", "r", encoding='utf-8') as read_file: with open("data_svelte/settings.json", "r", encoding='utf-8') as read_file:
iotmJson = json.load(read_file) iotmJson = json.load(read_file)
for key, value in profJson['iotmSettings'].items(): for key, value in profJson['iotmSettings'].items():
iotmJson[key] = value iotmJson[key] = value
with open(dataDir + "/settings.json", "w", encoding='utf-8') as write_file: with open("data_svelte/settings.json", "w", encoding='utf-8') as write_file:
json.dump(iotmJson, write_file, ensure_ascii=False, indent=4, sort_keys=False) json.dump(iotmJson, write_file, ensure_ascii=False, indent=4, sort_keys=False)
@@ -170,7 +167,7 @@ for section, modules in profJson['modules'].items():
configItemsJson['name'] = str(itemsCount) + ". " + configItemsJson['name'] configItemsJson['name'] = str(itemsCount) + ". " + configItemsJson['name']
itemsCount = itemsCount + 1 itemsCount = itemsCount + 1
itemsJson.append(configItemsJson) itemsJson.append(configItemsJson)
with open(dataDir + "/items.json", "w", encoding='utf-8') as write_file: with open("data_svelte/items.json", "w", encoding='utf-8') as write_file:
json.dump(itemsJson, write_file, ensure_ascii=False, indent=4, sort_keys=False) json.dump(itemsJson, write_file, ensure_ascii=False, indent=4, sort_keys=False)
@@ -205,14 +202,23 @@ config.read("platformio.ini")
config["env:" + deviceName + "_fromitems"]["lib_deps"] = allLibs config["env:" + deviceName + "_fromitems"]["lib_deps"] = allLibs
config["env:" + deviceName + "_fromitems"]["build_src_filter"] = includeDirs config["env:" + deviceName + "_fromitems"]["build_src_filter"] = includeDirs
config["platformio"]["default_envs"] = deviceName config["platformio"]["default_envs"] = deviceName
config["platformio"]["data_dir"] = profJson['projectProp']['platformio']['data_dir'] # config["platformio"]["data_dir"] = profJson['projectProp']['platformio']['data_dir']
with open("platformio.ini", 'w') as configFile: with open("platformio.ini", 'w') as configFile:
config.write(configFile) config.write(configFile)
# сохраняем применяемый профиль в папку data_svelte для загрузки на контроллер и дальнейшего переиспользования
print(f"Saving profile {profile} in {dataDir}") # сохраняем часть применяемого профиля в папку data_svelte для загрузки на контроллер и дальнейшего переиспользования
shutil.copy(profile, dataDir + "/" + profile) print(f"Saving profile {profile} in /data_svelte/flashProfile.json")
shortProfJson = json.loads('{}')
shortProfJson['projectProp'] = {
'platformio': {
'default_envs': deviceName
}
}
shortProfJson['modules'] = profJson['modules']
with open("data_svelte/flashProfile.json", "w", encoding='utf-8') as write_file:
json.dump(shortProfJson, write_file, ensure_ascii=False, indent=4, sort_keys=False)
# import ctypes # An included library with Python install. # import ctypes # An included library with Python install.
# if update: # if update:
@@ -221,6 +227,7 @@ shutil.copy(profile, dataDir + "/" + profile)
# ctypes.windll.user32.MessageBoxW(0, "Профиль " + profile + " применен, можно запускать компиляцию и прошивку.", "Операция завершена.", 0) # ctypes.windll.user32.MessageBoxW(0, "Профиль " + profile + " применен, можно запускать компиляцию и прошивку.", "Операция завершена.", 0)
if update: if update:
shutil.copy(profile, "compilerProfile.json")
print(f"\x1b[1;31;42m Profile modules " + profile + " updated, profile applied, you can run compilation and firmware.\x1b[0m") print(f"\x1b[1;31;42m Profile modules " + profile + " updated, profile applied, you can run compilation and firmware.\x1b[0m")
else: else:

View File

@@ -25,7 +25,7 @@
"projectProp": { "projectProp": {
"platformio": { "platformio": {
"default_envs": "esp8266_4mb", "default_envs": "esp8266_4mb",
"comments_default_envs": "choose from: esp8266_4mb or esp32_4mb or esp32s2_4mb or esp8266_1mb or esp8266_1mb_ota or esp8285_1mb or esp8285_1mb_ota", "comments_default_envs": "choose from: esp8266_4mb or esp32_4mb or esp32cam_4mb or esp32s2_4mb or esp8266_1mb or esp8266_1mb_ota or esp8285_1mb or esp8285_1mb_ota",
"envs": [ "envs": [
{ {
"name": "esp8266_4mb", "name": "esp8266_4mb",
@@ -45,6 +45,14 @@
"partitions": "0x8000", "partitions": "0x8000",
"littlefs": "0x290000" "littlefs": "0x290000"
}, },
{
"name": "esp32cam_4mb",
"boot_app0": "0xe000",
"bootloader_qio_80m": "0x1000",
"firmware": "0x10000",
"partitions": "0x8000",
"littlefs": "0x290000"
},
{ {
"name": "esp32_16mb", "name": "esp32_16mb",
"boot_app0": "0xe000", "boot_app0": "0xe000",
@@ -112,6 +120,10 @@
"path": "src/modules/virtual/LogingDaily", "path": "src/modules/virtual/LogingDaily",
"active": true "active": true
}, },
{
"path": "src/modules/virtual/owmWeather",
"active": true
},
{ {
"path": "src/modules/virtual/Timer", "path": "src/modules/virtual/Timer",
"active": true "active": true
@@ -372,6 +384,10 @@
"path": "src/modules/exec/TelegramLT", "path": "src/modules/exec/TelegramLT",
"active": true "active": true
}, },
{
"path": "src/modules/exec/Telegram_v2",
"active": false
},
{ {
"path": "src/modules/exec/Thermostat", "path": "src/modules/exec/Thermostat",
"active": false "active": false

0
data_lite/favicon.ico Normal file
View File

Binary file not shown.

Binary file not shown.

BIN
data_plus/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

16
data_plus/index.html Normal file
View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>IoT Manager 4.5.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/build/bundle.css?4520" />
<script defer src="/build/bundle.js?4520"></script>
</head>
<body></body>
</html>

View File

@@ -1,31 +1,7 @@
{ {
"iotmSettings": {
"name": "IoTmanagerVer4",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "rise",
"routerpass": "hostel3333",
"timezone": 2,
"ntp": "pool.ntp.org",
"weblogin": "admin",
"webpass": "admin",
"mqttServer": "",
"mqttPort": 8021,
"mqttPrefix": "/risenew",
"mqttUser": "rise",
"mqttPass": "3hostel3",
"serverip": "http://iotmanager.org",
"log": 0,
"mqttin": 0,
"pinSCL": 0,
"pinSDA": 0,
"i2cFreq": 100000,
"wg": "group1"
},
"projectProp": { "projectProp": {
"platformio": { "platformio": {
"default_envs": "esp8266_1mb_ota", "default_envs": "esp8266_4mb"
"comments_default_envs": "choose from: esp8266_4mb or esp32_4mb or esp8266_1mb or esp8266_1mb_ota or esp8285_1mb or esp8285_1mb_ota"
} }
}, },
"modules": { "modules": {
@@ -34,6 +10,10 @@
"path": "src/modules/virtual/Cron", "path": "src/modules/virtual/Cron",
"active": true "active": true
}, },
{
"path": "src/modules/virtual/GoogleSheet",
"active": false
},
{ {
"path": "src/modules/virtual/Loging", "path": "src/modules/virtual/Loging",
"active": true "active": true
@@ -42,6 +22,10 @@
"path": "src/modules/virtual/LogingDaily", "path": "src/modules/virtual/LogingDaily",
"active": true "active": true
}, },
{
"path": "src/modules/virtual/owmWeather",
"active": true
},
{ {
"path": "src/modules/virtual/Timer", "path": "src/modules/virtual/Timer",
"active": true "active": true
@@ -64,6 +48,10 @@
} }
], ],
"sensors": [ "sensors": [
{
"path": "src/modules/sensors/A02Distance",
"active": true
},
{ {
"path": "src/modules/sensors/Acs712", "path": "src/modules/sensors/Acs712",
"active": true "active": true
@@ -112,6 +100,10 @@
"path": "src/modules/sensors/Emon", "path": "src/modules/sensors/Emon",
"active": false "active": false
}, },
{
"path": "src/modules/sensors/ExampleModule",
"active": false
},
{ {
"path": "src/modules/sensors/ExternalMQTT", "path": "src/modules/sensors/ExternalMQTT",
"active": false "active": false
@@ -144,10 +136,18 @@
"path": "src/modules/sensors/Ina219", "path": "src/modules/sensors/Ina219",
"active": false "active": false
}, },
{
"path": "src/modules/sensors/Ina226",
"active": false
},
{ {
"path": "src/modules/sensors/IoTWiegand", "path": "src/modules/sensors/IoTWiegand",
"active": false "active": false
}, },
{
"path": "src/modules/sensors/ld2410",
"active": false
},
{ {
"path": "src/modules/sensors/Max6675", "path": "src/modules/sensors/Max6675",
"active": false "active": false
@@ -156,6 +156,10 @@
"path": "src/modules/sensors/Mhz19", "path": "src/modules/sensors/Mhz19",
"active": false "active": false
}, },
{
"path": "src/modules/sensors/Ntc",
"active": false
},
{ {
"path": "src/modules/sensors/Pzem004t", "path": "src/modules/sensors/Pzem004t",
"active": true "active": true
@@ -168,6 +172,14 @@
"path": "src/modules/sensors/RTC", "path": "src/modules/sensors/RTC",
"active": true "active": true
}, },
{
"path": "src/modules/sensors/S8",
"active": true
},
{
"path": "src/modules/sensors/Scd40",
"active": false
},
{ {
"path": "src/modules/sensors/Sds011", "path": "src/modules/sensors/Sds011",
"active": false "active": false
@@ -202,10 +214,22 @@
"path": "src/modules/exec/ButtonOut", "path": "src/modules/exec/ButtonOut",
"active": true "active": true
}, },
{
"path": "src/modules/exec/Buzzer",
"active": true
},
{
"path": "src/modules/exec/Enconder",
"active": true
},
{ {
"path": "src/modules/exec/EspCam", "path": "src/modules/exec/EspCam",
"active": false "active": false
}, },
{
"path": "src/modules/exec/Ftp",
"active": false
},
{ {
"path": "src/modules/exec/HttpGet", "path": "src/modules/exec/HttpGet",
"active": false "active": false
@@ -262,9 +286,17 @@
"path": "src/modules/exec/TelegramLT", "path": "src/modules/exec/TelegramLT",
"active": true "active": true
}, },
{
"path": "src/modules/exec/Telegram_v2",
"active": false
},
{ {
"path": "src/modules/exec/Thermostat", "path": "src/modules/exec/Thermostat",
"active": false "active": false
},
{
"path": "src/modules/sensors/Ds2423",
"active": false
} }
], ],
"screens": [ "screens": [
@@ -280,6 +312,18 @@
"path": "src/modules/display/NextionUpload", "path": "src/modules/display/NextionUpload",
"active": false "active": false
}, },
{
"path": "src/modules/display/Oled128",
"active": false
},
{
"path": "src/modules/display/Smi2_m",
"active": true
},
{
"path": "src/modules/display/TM16XX",
"active": true
},
{ {
"path": "src/modules/display/Ws2812b", "path": "src/modules/display/Ws2812b",
"active": false "active": false

View File

@@ -68,7 +68,29 @@
}, },
{ {
"global": 0, "global": 0,
"name": "5. Таймер", "name": "5. Погода OWM",
"type": "Reading",
"subtype": "owmWeather",
"id": "owm",
"needSave": 0,
"widget": "nil",
"page": "Погода",
"descr": "Температура на улице",
"int": 30,
"API_key": "",
"сity": "Moscow",
"lon": "37.54",
"lat": "57.74",
"lang": "ru",
"param": "",
"round": 1,
"val": "...",
"debug": 0,
"num": 5
},
{
"global": 0,
"name": "6. Таймер",
"type": "Writing", "type": "Writing",
"subtype": "Timer", "subtype": "Timer",
"id": "timer", "id": "timer",
@@ -80,11 +102,11 @@
"ticker": 1, "ticker": 1,
"repeat": 1, "repeat": 1,
"needSave": 0, "needSave": 0,
"num": 5 "num": 6
}, },
{ {
"global": 0, "global": 0,
"name": "6. Окно ввода числа (переменная)", "name": "7. Окно ввода числа (переменная)",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "value", "id": "value",
@@ -98,11 +120,11 @@
"plus": 0, "plus": 0,
"multiply": 1, "multiply": 1,
"round": 0, "round": 0,
"num": 6 "num": 7
}, },
{ {
"global": 0, "global": 0,
"name": "7. Окно ввода времени", "name": "8. Окно ввода времени",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "time", "id": "time",
@@ -112,11 +134,11 @@
"descr": "Введите время", "descr": "Введите время",
"int": "0", "int": "0",
"val": "02:00", "val": "02:00",
"num": 7 "num": 8
}, },
{ {
"global": 0, "global": 0,
"name": "8. Окно ввода даты", "name": "9. Окно ввода даты",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "time", "id": "time",
@@ -126,11 +148,11 @@
"descr": "Введите дату", "descr": "Введите дату",
"int": "0", "int": "0",
"val": "24.05.2022", "val": "24.05.2022",
"num": 8 "num": 9
}, },
{ {
"global": 0, "global": 0,
"name": "9. Окно ввода текста", "name": "10. Окно ввода текста",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "txt", "id": "txt",
@@ -140,11 +162,11 @@
"descr": "Введите текст", "descr": "Введите текст",
"int": "0", "int": "0",
"val": "текст", "val": "текст",
"num": 9 "num": 10
}, },
{ {
"global": 0, "global": 0,
"name": "10. Вывод значения", "name": "11. Вывод значения",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "vout", "id": "vout",
@@ -158,11 +180,11 @@
"plus": 0, "plus": 0,
"multiply": 1, "multiply": 1,
"round": 0, "round": 0,
"num": 10 "num": 11
}, },
{ {
"global": 0, "global": 0,
"name": "11. Цветной текст", "name": "12. Цветной текст",
"type": "Reading", "type": "Reading",
"subtype": "VariableColor", "subtype": "VariableColor",
"id": "color", "id": "color",
@@ -172,11 +194,11 @@
"descr": "Цветной текст", "descr": "Цветной текст",
"val": "...", "val": "...",
"round": 0, "round": 0,
"num": 11 "num": 12
}, },
{ {
"global": 0, "global": 0,
"name": "12. Виртуальная кнопка", "name": "13. Виртуальная кнопка",
"type": "Reading", "type": "Reading",
"subtype": "VButton", "subtype": "VButton",
"id": "vbtn", "id": "vbtn",
@@ -186,13 +208,13 @@
"descr": "Кнопка", "descr": "Кнопка",
"int": "0", "int": "0",
"val": "0", "val": "0",
"num": 12 "num": 13
}, },
{ {
"header": "sensors" "header": "sensors"
}, },
{ {
"name": "13. A02 Дальность", "name": "14. A02 Дальность",
"type": "Reading", "type": "Reading",
"subtype": "A02Distance", "subtype": "A02Distance",
"id": "dist", "id": "dist",
@@ -201,10 +223,10 @@
"descr": "Дальность", "descr": "Дальность",
"int": 5, "int": 5,
"round": 1, "round": 1,
"num": 13 "num": 14
}, },
{ {
"name": "14. Acs712 Ток", "name": "15. Acs712 Ток",
"type": "Reading", "type": "Reading",
"subtype": "Acs712", "subtype": "Acs712",
"id": "amp", "id": "amp",
@@ -219,11 +241,11 @@
"sens": 100, "sens": 100,
"adczero": 512, "adczero": 512,
"btn-setZero": "nil", "btn-setZero": "nil",
"num": 14 "num": 15
}, },
{ {
"global": 0, "global": 0,
"name": "15. AHTXX Температура", "name": "16. AHTXX Температура",
"type": "Reading", "type": "Reading",
"subtype": "AhtXXt", "subtype": "AhtXXt",
"id": "Temp20", "id": "Temp20",
@@ -234,11 +256,11 @@
"addr": "0x38", "addr": "0x38",
"shtType": 1, "shtType": 1,
"round": 1, "round": 1,
"num": 15 "num": 16
}, },
{ {
"global": 0, "global": 0,
"name": "16. AHTXX Влажность", "name": "17. AHTXX Влажность",
"type": "Reading", "type": "Reading",
"subtype": "AhtXXh", "subtype": "AhtXXh",
"id": "Hum20", "id": "Hum20",
@@ -249,11 +271,11 @@
"addr": "0x38", "addr": "0x38",
"shtType": 1, "shtType": 1,
"round": 1, "round": 1,
"num": 16 "num": 17
}, },
{ {
"global": 0, "global": 0,
"name": "17. Аналоговый сенсор", "name": "18. Аналоговый сенсор",
"type": "Reading", "type": "Reading",
"subtype": "AnalogAdc", "subtype": "AnalogAdc",
"id": "t", "id": "t",
@@ -267,11 +289,11 @@
"pin": 0, "pin": 0,
"int": 15, "int": 15,
"avgSteps": 1, "avgSteps": 1,
"num": 17 "num": 18
}, },
{ {
"global": 0, "global": 0,
"name": "18. BME280 Температура", "name": "19. BME280 Температура",
"type": "Reading", "type": "Reading",
"subtype": "Bme280t", "subtype": "Bme280t",
"id": "Tmp3", "id": "Tmp3",
@@ -281,11 +303,11 @@
"int": 15, "int": 15,
"addr": "0x77", "addr": "0x77",
"round": 1, "round": 1,
"num": 18 "num": 19
}, },
{ {
"global": 0, "global": 0,
"name": "19. BME280 Давление", "name": "20. BME280 Давление",
"type": "Reading", "type": "Reading",
"subtype": "Bme280p", "subtype": "Bme280p",
"id": "Press3", "id": "Press3",
@@ -295,11 +317,11 @@
"int": 15, "int": 15,
"addr": "0x77", "addr": "0x77",
"round": 1, "round": 1,
"num": 19 "num": 20
}, },
{ {
"global": 0, "global": 0,
"name": "20. BME280 Влажность", "name": "21. BME280 Влажность",
"type": "Reading", "type": "Reading",
"subtype": "Bme280h", "subtype": "Bme280h",
"id": "Hum3", "id": "Hum3",
@@ -309,11 +331,11 @@
"int": 15, "int": 15,
"addr": "0x77", "addr": "0x77",
"round": 1, "round": 1,
"num": 20 "num": 21
}, },
{ {
"global": 0, "global": 0,
"name": "21. BME280 Tочка росы", "name": "22. BME280 Tочка росы",
"type": "Reading", "type": "Reading",
"subtype": "Bme280dp", "subtype": "Bme280dp",
"id": "Dew3", "id": "Dew3",
@@ -323,11 +345,11 @@
"int": 15, "int": 15,
"addr": "0x77", "addr": "0x77",
"round": 1, "round": 1,
"num": 21 "num": 22
}, },
{ {
"global": 0, "global": 0,
"name": "22. BMP280 Температура", "name": "23. BMP280 Температура",
"type": "Reading", "type": "Reading",
"subtype": "Bmp280t", "subtype": "Bmp280t",
"id": "tmp3", "id": "tmp3",
@@ -337,11 +359,11 @@
"int": 15, "int": 15,
"addr": "0x77", "addr": "0x77",
"round": 1, "round": 1,
"num": 22 "num": 23
}, },
{ {
"global": 0, "global": 0,
"name": "23. BMP280 Давление", "name": "24. BMP280 Давление",
"type": "Reading", "type": "Reading",
"subtype": "Bmp280p", "subtype": "Bmp280p",
"id": "Press3", "id": "Press3",
@@ -351,11 +373,11 @@
"int": 15, "int": 15,
"addr": "0x77", "addr": "0x77",
"round": 1, "round": 1,
"num": 23 "num": 24
}, },
{ {
"global": 0, "global": 0,
"name": "24. DHT11 Температура", "name": "25. DHT11 Температура",
"type": "Reading", "type": "Reading",
"subtype": "Dht1122t", "subtype": "Dht1122t",
"id": "tmp3", "id": "tmp3",
@@ -365,11 +387,11 @@
"int": 15, "int": 15,
"pin": 0, "pin": 0,
"senstype": "dht11", "senstype": "dht11",
"num": 24 "num": 25
}, },
{ {
"global": 0, "global": 0,
"name": "25. DHT11 Влажность", "name": "26. DHT11 Влажность",
"type": "Reading", "type": "Reading",
"subtype": "Dht1122h", "subtype": "Dht1122h",
"id": "Hum3", "id": "Hum3",
@@ -379,11 +401,11 @@
"int": 15, "int": 15,
"pin": 0, "pin": 0,
"senstype": "dht11", "senstype": "dht11",
"num": 25 "num": 26
}, },
{ {
"global": 0, "global": 0,
"name": "26. DS18B20 Температура", "name": "27. DS18B20 Температура",
"type": "Reading", "type": "Reading",
"subtype": "Ds18b20", "subtype": "Ds18b20",
"id": "dstmp", "id": "dstmp",
@@ -395,11 +417,11 @@
"index": 0, "index": 0,
"addr": "", "addr": "",
"round": 1, "round": 1,
"num": 26 "num": 27
}, },
{ {
"global": 0, "global": 0,
"name": "27. Аналоговый счетчик импульсов", "name": "28. Аналоговый счетчик импульсов",
"type": "Writing", "type": "Writing",
"subtype": "Impulse", "subtype": "Impulse",
"id": "impulse", "id": "impulse",
@@ -412,11 +434,11 @@
"pinMode": "INPUT", "pinMode": "INPUT",
"debounceDelay": 3, "debounceDelay": 3,
"multiply": 1, "multiply": 1,
"num": 27 "num": 28
}, },
{ {
"global": 0, "global": 0,
"name": "28. PZEM 004t Напряжение", "name": "29. PZEM 004t Напряжение",
"type": "Reading", "type": "Reading",
"subtype": "Pzem004v", "subtype": "Pzem004v",
"id": "v", "id": "v",
@@ -426,11 +448,11 @@
"int": 15, "int": 15,
"addr": "0xF8", "addr": "0xF8",
"round": 1, "round": 1,
"num": 28 "num": 29
}, },
{ {
"global": 0, "global": 0,
"name": "29. PZEM 004t Сила тока", "name": "30. PZEM 004t Сила тока",
"type": "Reading", "type": "Reading",
"subtype": "Pzem004a", "subtype": "Pzem004a",
"id": "a", "id": "a",
@@ -440,11 +462,11 @@
"int": 15, "int": 15,
"addr": "0xF8", "addr": "0xF8",
"round": 1, "round": 1,
"num": 29 "num": 30
}, },
{ {
"global": 0, "global": 0,
"name": "30. PZEM 004t Мощность", "name": "31. PZEM 004t Мощность",
"type": "Reading", "type": "Reading",
"subtype": "Pzem004w", "subtype": "Pzem004w",
"id": "w", "id": "w",
@@ -454,11 +476,11 @@
"int": 15, "int": 15,
"addr": "0xF8", "addr": "0xF8",
"round": 1, "round": 1,
"num": 30 "num": 31
}, },
{ {
"global": 0, "global": 0,
"name": "31. PZEM 004t Энергия", "name": "32. PZEM 004t Энергия",
"type": "Reading", "type": "Reading",
"subtype": "Pzem004wh", "subtype": "Pzem004wh",
"id": "wh", "id": "wh",
@@ -468,11 +490,11 @@
"int": 15, "int": 15,
"addr": "0xF8", "addr": "0xF8",
"round": 1, "round": 1,
"num": 31 "num": 32
}, },
{ {
"global": 0, "global": 0,
"name": "32. PZEM 004t Частота", "name": "33. PZEM 004t Частота",
"type": "Reading", "type": "Reading",
"subtype": "Pzem004hz", "subtype": "Pzem004hz",
"id": "hz", "id": "hz",
@@ -482,11 +504,11 @@
"int": 15, "int": 15,
"addr": "0xF8", "addr": "0xF8",
"round": 1, "round": 1,
"num": 32 "num": 33
}, },
{ {
"global": 0, "global": 0,
"name": "33. PZEM 004t Косинус", "name": "34. PZEM 004t Косинус",
"type": "Reading", "type": "Reading",
"subtype": "Pzem004pf", "subtype": "Pzem004pf",
"id": "pf", "id": "pf",
@@ -496,11 +518,11 @@
"int": 15, "int": 15,
"addr": "0xF8", "addr": "0xF8",
"round": 1, "round": 1,
"num": 33 "num": 34
}, },
{ {
"global": 0, "global": 0,
"name": "34. PZEM настройка", "name": "35. PZEM настройка",
"type": "Reading", "type": "Reading",
"subtype": "Pzem004cmd", "subtype": "Pzem004cmd",
"id": "set", "id": "set",
@@ -512,11 +534,11 @@
"changeaddr": 0, "changeaddr": 0,
"setaddr": "0x01", "setaddr": "0x01",
"reset": 0, "reset": 0,
"num": 34 "num": 35
}, },
{ {
"global": 0, "global": 0,
"name": "35. Часы реального времени", "name": "36. Часы реального времени",
"type": "Reading", "type": "Reading",
"subtype": "RTC", "subtype": "RTC",
"id": "rtc", "id": "rtc",
@@ -532,11 +554,11 @@
"int": 5, "int": 5,
"btn-setUTime": "0", "btn-setUTime": "0",
"btn-setSysTime": "nil", "btn-setSysTime": "nil",
"num": 35 "num": 36
}, },
{ {
"name": "36. (S8) Cенсор качества воздуха", "name": "37. (S8) Cенсор качества воздуха",
"num": 36, "num": 37,
"type": "Reading", "type": "Reading",
"subtype": "S8co", "subtype": "S8co",
"id": "s8co", "id": "s8co",
@@ -550,7 +572,7 @@
}, },
{ {
"global": 0, "global": 0,
"name": "37. Sht20 Температура", "name": "38. Sht20 Температура",
"type": "Reading", "type": "Reading",
"subtype": "Sht20t", "subtype": "Sht20t",
"id": "tmp2", "id": "tmp2",
@@ -559,11 +581,11 @@
"descr": "Температура", "descr": "Температура",
"int": 15, "int": 15,
"round": 1, "round": 1,
"num": 37 "num": 38
}, },
{ {
"global": 0, "global": 0,
"name": "38. Sht20 Влажность", "name": "39. Sht20 Влажность",
"type": "Reading", "type": "Reading",
"subtype": "Sht20h", "subtype": "Sht20h",
"id": "Hum2", "id": "Hum2",
@@ -572,11 +594,11 @@
"descr": "Влажность", "descr": "Влажность",
"int": 15, "int": 15,
"round": 1, "round": 1,
"num": 38 "num": 39
}, },
{ {
"global": 0, "global": 0,
"name": "39. Sht30 Температура", "name": "40. Sht30 Температура",
"type": "Reading", "type": "Reading",
"subtype": "Sht30t", "subtype": "Sht30t",
"id": "tmp30", "id": "tmp30",
@@ -585,11 +607,11 @@
"descr": "SHT30 Температура", "descr": "SHT30 Температура",
"int": 15, "int": 15,
"round": 1, "round": 1,
"num": 39 "num": 40
}, },
{ {
"global": 0, "global": 0,
"name": "40. Sht30 Влажность", "name": "41. Sht30 Влажность",
"type": "Reading", "type": "Reading",
"subtype": "Sht30h", "subtype": "Sht30h",
"id": "Hum30", "id": "Hum30",
@@ -598,12 +620,12 @@
"descr": "SHT30 Влажность", "descr": "SHT30 Влажность",
"int": 15, "int": 15,
"round": 1, "round": 1,
"num": 40 "num": 41
}, },
{ {
"global": 0, "global": 0,
"name": "41. HC-SR04 Ультразвуковой дальномер", "name": "42. HC-SR04 Ультразвуковой дальномер",
"num": 41, "num": 42,
"type": "Reading", "type": "Reading",
"subtype": "Sonar", "subtype": "Sonar",
"id": "sonar", "id": "sonar",
@@ -615,7 +637,7 @@
"int": 5 "int": 5
}, },
{ {
"name": "42. UART", "name": "43. UART",
"type": "Reading", "type": "Reading",
"subtype": "UART", "subtype": "UART",
"page": "", "page": "",
@@ -627,14 +649,14 @@
"line": 2, "line": 2,
"speed": 9600, "speed": 9600,
"eventFormat": 0, "eventFormat": 0,
"num": 42 "num": 43
}, },
{ {
"header": "executive_devices" "header": "executive_devices"
}, },
{ {
"global": 0, "global": 0,
"name": "43. Кнопка подключенная к пину", "name": "44. Кнопка подключенная к пину",
"type": "Writing", "type": "Writing",
"subtype": "ButtonIn", "subtype": "ButtonIn",
"id": "btn", "id": "btn",
@@ -649,11 +671,11 @@
"debounceDelay": 50, "debounceDelay": 50,
"fixState": 0, "fixState": 0,
"inv": 0, "inv": 0,
"num": 43 "num": 44
}, },
{ {
"global": 0, "global": 0,
"name": "44. Управление пином", "name": "45. Управление пином",
"type": "Writing", "type": "Writing",
"subtype": "ButtonOut", "subtype": "ButtonOut",
"needSave": 0, "needSave": 0,
@@ -664,11 +686,11 @@
"int": 0, "int": 0,
"inv": 0, "inv": 0,
"pin": 2, "pin": 2,
"num": 44 "num": 45
}, },
{ {
"global": 0, "global": 0,
"name": "45. Пассивный звуковой извещатель", "name": "46. Пассивный звуковой извещатель",
"type": "Writing", "type": "Writing",
"subtype": "Buzzer", "subtype": "Buzzer",
"id": "buzzer", "id": "buzzer",
@@ -687,11 +709,11 @@
"cycle": 0, "cycle": 0,
"indication": 1, "indication": 1,
"val": 0, "val": 0,
"num": 45 "num": 46
}, },
{ {
"global": 0, "global": 0,
"name": "46. Энкодер", "name": "47. Энкодер",
"type": "Writing", "type": "Writing",
"subtype": "Encoder", "subtype": "Encoder",
"id": "enc", "id": "enc",
@@ -704,11 +726,11 @@
"step": 1, "step": 1,
"stepOnPress": 5, "stepOnPress": 5,
"pins": "4,5,2", "pins": "4,5,2",
"num": 46 "num": 47
}, },
{ {
"global": 0, "global": 0,
"name": "47. Сервопривод", "name": "48. Сервопривод",
"type": "Writing", "type": "Writing",
"subtype": "IoTServo", "subtype": "IoTServo",
"id": "servo", "id": "servo",
@@ -719,11 +741,11 @@
"pin": 12, "pin": 12,
"apin": -1, "apin": -1,
"amap": "0, 4096, 0, 180", "amap": "0, 4096, 0, 180",
"num": 47 "num": 48
}, },
{ {
"global": 0, "global": 0,
"name": "48. Расширитель портов Mcp23017", "name": "49. Расширитель портов Mcp23017",
"type": "Reading", "type": "Reading",
"subtype": "Mcp23017", "subtype": "Mcp23017",
"id": "Mcp", "id": "Mcp",
@@ -733,11 +755,11 @@
"int": "0", "int": "0",
"addr": "0x20", "addr": "0x20",
"index": 1, "index": 1,
"num": 48 "num": 49
}, },
{ {
"global": 0, "global": 0,
"name": "49. MP3 плеер", "name": "50. MP3 плеер",
"type": "Reading", "type": "Reading",
"subtype": "Mp3", "subtype": "Mp3",
"id": "mp3", "id": "mp3",
@@ -747,11 +769,11 @@
"int": 1, "int": 1,
"pins": "14,12", "pins": "14,12",
"volume": 20, "volume": 20,
"num": 49 "num": 50
}, },
{ {
"global": 0, "global": 0,
"name": "50. Сенсорная кнопка", "name": "51. Сенсорная кнопка",
"type": "Writing", "type": "Writing",
"subtype": "Multitouch", "subtype": "Multitouch",
"id": "impulse", "id": "impulse",
@@ -765,11 +787,11 @@
"pinMode": "INPUT", "pinMode": "INPUT",
"debounceDelay": 50, "debounceDelay": 50,
"PWMDelay": 500, "PWMDelay": 500,
"num": 50 "num": 51
}, },
{ {
"global": 0, "global": 0,
"name": "51. Расширитель портов Pcf8574", "name": "52. Расширитель портов Pcf8574",
"type": "Reading", "type": "Reading",
"subtype": "Pcf8574", "subtype": "Pcf8574",
"id": "Pcf", "id": "Pcf",
@@ -779,11 +801,11 @@
"int": "0", "int": "0",
"addr": "0x20", "addr": "0x20",
"index": 1, "index": 1,
"num": 51 "num": 52
}, },
{ {
"global": 0, "global": 0,
"name": "52. PWM ESP8266", "name": "53. PWM ESP8266",
"type": "Writing", "type": "Writing",
"subtype": "Pwm8266", "subtype": "Pwm8266",
"id": "pwm", "id": "pwm",
@@ -795,11 +817,11 @@
"freq": 5000, "freq": 5000,
"val": 0, "val": 0,
"apin": -1, "apin": -1,
"num": 52 "num": 53
}, },
{ {
"global": 0, "global": 0,
"name": "53. Телеграм-Лайт", "name": "54. Телеграм-Лайт",
"type": "Writing", "type": "Writing",
"subtype": "TelegramLT", "subtype": "TelegramLT",
"id": "tg", "id": "tg",
@@ -808,14 +830,14 @@
"descr": "", "descr": "",
"token": "", "token": "",
"chatID": "", "chatID": "",
"num": 53 "num": 54
}, },
{ {
"header": "screens" "header": "screens"
}, },
{ {
"global": 0, "global": 0,
"name": "54. LCD экран 2004", "name": "55. LCD экран 2004",
"type": "Reading", "type": "Reading",
"subtype": "Lcd2004", "subtype": "Lcd2004",
"id": "Lcd", "id": "Lcd",
@@ -828,10 +850,10 @@
"id2show": "", "id2show": "",
"prefix": "", "prefix": "",
"postfix": "", "postfix": "",
"num": 54 "num": 55
}, },
{ {
"name": "55. LCD экран 1602", "name": "56. LCD экран 1602",
"type": "Reading", "type": "Reading",
"subtype": "Lcd2004", "subtype": "Lcd2004",
"id": "Lcd", "id": "Lcd",
@@ -844,11 +866,11 @@
"id2show": "", "id2show": "",
"prefix": "", "prefix": "",
"postfix": "", "postfix": "",
"num": 55 "num": 56
}, },
{ {
"global": 0, "global": 0,
"name": "56. 7 сегментный дисплей TM16XX", "name": "57. 7 сегментный дисплей TM16XX",
"type": "Writing", "type": "Writing",
"subtype": "TM16XX", "subtype": "TM16XX",
"id": "tm", "id": "tm",
@@ -864,6 +886,6 @@
"intensity": "5", "intensity": "5",
"on": "1", "on": "1",
"id2show": "", "id2show": "",
"num": 56 "num": 57
} }
] ]

View File

@@ -120,6 +120,10 @@
"path": "src/modules/virtual/LogingDaily", "path": "src/modules/virtual/LogingDaily",
"active": true "active": true
}, },
{
"path": "src/modules/virtual/owmWeather",
"active": true
},
{ {
"path": "src/modules/virtual/Timer", "path": "src/modules/virtual/Timer",
"active": true "active": true

View File

@@ -1 +0,0 @@
[]

Binary file not shown.

View File

@@ -1,694 +0,0 @@
[
{
"name": "Выберите элемент",
"num": 0
},
{
"header": "virtual_elments"
},
{
"global": 0,
"name": "1. Будильник (Cron)",
"type": "Writing",
"subtype": "Cron",
"id": "cron",
"widget": "anydataDef",
"page": "Таймеры",
"descr": "Будильник",
"int": 1,
"val": "*/15 * * * * *",
"formatNextAlarm": "%H:%M:%S",
"needSave": 0,
"num": 1
},
{
"global": 0,
"name": "2. График",
"type": "Writing",
"subtype": "Loging",
"id": "log",
"widget": "chart2",
"page": "Графики",
"descr": "Температура",
"num": 2,
"int": 5,
"logid": "t",
"points": 300
},
{
"global": 0,
"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": 4,
"int": 1,
"logid": "t",
"points": 365,
"telegram": 0,
"test": 0,
"btn-defvalue": 0,
"btn-reset": "nil"
},
{
"global": 0,
"name": "5. Таймер",
"type": "Writing",
"subtype": "Timer",
"id": "timer",
"widget": "anydataDef",
"page": "Таймеры",
"descr": "Таймер",
"int": 1,
"countDown": 15,
"ticker": 1,
"repeat": 1,
"needSave": 0,
"num": 5
},
{
"global": 0,
"name": "6. Окно ввода числа (переменная)",
"type": "Reading",
"subtype": "Variable",
"id": "value",
"needSave": 0,
"widget": "inputDgt",
"page": "Ввод",
"descr": "Введите число",
"int": "0",
"val": "0.0",
"map": "1024,1024,1,100",
"plus": 0,
"multiply": 1,
"round": 0,
"num": 6
},
{
"global": 0,
"name": "7. Окно ввода времени",
"type": "Reading",
"subtype": "Variable",
"id": "time",
"needSave": 0,
"widget": "inputTm",
"page": "Ввод",
"descr": "Введите время",
"int": "0",
"val": "02:00",
"num": 7
},
{
"global": 0,
"name": "8. Окно ввода даты",
"type": "Reading",
"subtype": "Variable",
"id": "time",
"needSave": 0,
"widget": "inputDate",
"page": "Ввод",
"descr": "Введите дату",
"int": "0",
"val": "24.05.2022",
"num": 8
},
{
"global": 0,
"name": "9. Окно ввода текста",
"type": "Reading",
"subtype": "Variable",
"id": "txt",
"needSave": 0,
"widget": "inputTxt",
"page": "Ввод",
"descr": "Введите текст",
"int": "0",
"val": "текст",
"num": 9
},
{
"global": 0,
"name": "10. Вывод значения",
"type": "Reading",
"subtype": "Variable",
"id": "vout",
"needSave": 0,
"widget": "anydataDef",
"page": "Вывод",
"descr": "Значение",
"int": "0",
"val": "0.0",
"map": "1024,1024,1,100",
"plus": 0,
"multiply": 1,
"round": 0,
"num": 10
},
{
"global": 0,
"name": "11. Цветной текст",
"type": "Reading",
"subtype": "VariableColor",
"id": "color",
"needSave": 0,
"widget": "anydataDef",
"page": "Вывод",
"descr": "Цветной текст",
"val": "...",
"round": 0,
"num": 11
},
{
"global": 0,
"name": "12. Виртуальная кнопка",
"type": "Reading",
"subtype": "VButton",
"id": "vbtn",
"needSave": 0,
"widget": "toggle",
"page": "Кнопки",
"descr": "Кнопка",
"int": "0",
"val": "0",
"num": 12
},
{
"header": "sensors"
},
{
"name": "13. Acs712 Ток",
"type": "Reading",
"subtype": "Acs712",
"id": "amp",
"widget": "anydataAmp",
"page": "sensors",
"descr": "Ток",
"round": 3,
"pin": 39,
"int": 5,
"rms": 1,
"vref": 5000,
"sens": 100,
"adczero": 512,
"btn-setZero": "nil",
"num": 13
},
{
"global": 0,
"name": "14. Аналоговый сенсор",
"type": "Reading",
"subtype": "AnalogAdc",
"id": "t",
"widget": "anydataTmp",
"page": "sensors",
"descr": "Температура",
"map": "1,1024,1,100",
"plus": 0,
"multiply": 1,
"round": 1,
"pin": 0,
"int": 15,
"avgSteps": 1,
"num": 14
},
{
"global": 0,
"name": "15. BME280 Температура",
"type": "Reading",
"subtype": "Bme280t",
"id": "Tmp3",
"widget": "anydataTmp",
"page": "sensors",
"descr": "Температура",
"int": 15,
"addr": "0x77",
"round": 1,
"num": 15
},
{
"global": 0,
"name": "16. BME280 Давление",
"type": "Reading",
"subtype": "Bme280p",
"id": "Press3",
"widget": "anydataMm",
"page": "sensors",
"descr": "Давление",
"int": 15,
"addr": "0x77",
"round": 1,
"num": 16
},
{
"global": 0,
"name": "17. BME280 Влажность",
"type": "Reading",
"subtype": "Bme280h",
"id": "Hum3",
"widget": "anydataHum",
"page": "sensors",
"descr": "Влажность",
"int": 15,
"addr": "0x77",
"round": 1,
"num": 17
},
{
"global": 0,
"name": "18. BME280 Tочка росы",
"type": "Reading",
"subtype": "Bme280dp",
"id": "Dew3",
"widget": "anydataTmp",
"page": "sensors",
"descr": "Точка росы",
"int": 15,
"addr": "0x77",
"round": 1,
"num": 18
},
{
"global": 0,
"name": "19. BMP280 Температура",
"type": "Reading",
"subtype": "Bmp280t",
"id": "tmp3",
"widget": "anydataTmp",
"page": "sensors",
"descr": "280 Температура",
"int": 15,
"addr": "0x77",
"round": 1,
"num": 19
},
{
"global": 0,
"name": "20. BMP280 Давление",
"type": "Reading",
"subtype": "Bmp280p",
"id": "Press3",
"widget": "anydataMm",
"page": "sensors",
"descr": "280 Давление",
"int": 15,
"addr": "0x77",
"round": 1,
"num": 20
},
{
"global": 0,
"name": "21. DS18B20 Температура",
"type": "Reading",
"subtype": "Ds18b20",
"id": "dstmp",
"widget": "anydataTmp",
"page": "sensors",
"descr": "DS Температура",
"int": 15,
"pin": 2,
"index": 0,
"addr": "",
"round": 1,
"num": 21
},
{
"global": 0,
"name": "22. Аналоговый счетчик импульсов",
"type": "Writing",
"subtype": "Impulse",
"id": "impulse",
"widget": "anydataDef",
"page": "Счетчики",
"descr": "Импульсов",
"needSave": 0,
"int": 1,
"pin": 16,
"pinMode": "INPUT",
"debounceDelay": 3,
"multiply": 1,
"num": 22
},
{
"global": 0,
"name": "23. PZEM 004t Напряжение",
"type": "Reading",
"subtype": "Pzem004v",
"id": "v",
"widget": "anydataVlt",
"page": "PZEM",
"descr": "Напряжение",
"int": 15,
"addr": "0xF8",
"round": 1,
"num": 23
},
{
"global": 0,
"name": "24. PZEM 004t Сила тока",
"type": "Reading",
"subtype": "Pzem004a",
"id": "a",
"widget": "anydataAmp",
"page": "PZEM",
"descr": "Сила тока",
"int": 15,
"addr": "0xF8",
"round": 1,
"num": 24
},
{
"global": 0,
"name": "25. PZEM 004t Мощность",
"type": "Reading",
"subtype": "Pzem004w",
"id": "w",
"widget": "anydataWt",
"page": "PZEM",
"descr": "Мощность",
"int": 15,
"addr": "0xF8",
"round": 1,
"num": 25
},
{
"global": 0,
"name": "26. PZEM 004t Энергия",
"type": "Reading",
"subtype": "Pzem004wh",
"id": "wh",
"widget": "anydataWth",
"page": "PZEM",
"descr": "Энергия",
"int": 15,
"addr": "0xF8",
"round": 1,
"num": 26
},
{
"global": 0,
"name": "27. PZEM 004t Частота",
"type": "Reading",
"subtype": "Pzem004hz",
"id": "hz",
"widget": "anydataHtz",
"page": "PZEM",
"descr": "Частота",
"int": 15,
"addr": "0xF8",
"round": 1,
"num": 27
},
{
"global": 0,
"name": "28. PZEM 004t Косинус",
"type": "Reading",
"subtype": "Pzem004pf",
"id": "pf",
"widget": "anydata",
"page": "PZEM",
"descr": "Косинус F",
"int": 15,
"addr": "0xF8",
"round": 1,
"num": 28
},
{
"global": 0,
"name": "29. PZEM настройка",
"type": "Reading",
"subtype": "Pzem004cmd",
"id": "set",
"widget": "nil",
"page": "",
"descr": "",
"int": 15,
"addr": "0xF8",
"changeaddr": 0,
"setaddr": "0x01",
"reset": 0,
"num": 29
},
{
"global": 0,
"name": "30. Часы реального времени",
"type": "Reading",
"subtype": "RTC",
"id": "rtc",
"widget": "anydataDef",
"page": "Таймеры",
"descr": "Время RTC",
"chipCode": 1,
"timeFormat": "d-m-Y H:i:s",
"RST": -1,
"CLK": -1,
"DAT": -1,
"ticker": 0,
"int": 5,
"btn-setUTime": "0",
"btn-setSysTime": "nil",
"num": 30
},
{
"global": 0,
"name": "31. Sht20 Температура",
"type": "Reading",
"subtype": "Sht20t",
"id": "tmp2",
"widget": "anydataTmp",
"page": "sensors",
"descr": "Температура",
"int": 15,
"round": 1,
"num": 31
},
{
"global": 0,
"name": "32. Sht20 Влажность",
"type": "Reading",
"subtype": "Sht20h",
"id": "Hum2",
"widget": "anydataHum",
"page": "sensors",
"descr": "Влажность",
"int": 15,
"round": 1,
"num": 32
},
{
"global": 0,
"name": "33. Sht30 Температура",
"type": "Reading",
"subtype": "Sht30t",
"id": "tmp30",
"widget": "anydataTmp",
"page": "sensors",
"descr": "SHT30 Температура",
"int": 15,
"round": 1,
"num": 33
},
{
"global": 0,
"name": "34. Sht30 Влажность",
"type": "Reading",
"subtype": "Sht30h",
"id": "Hum30",
"widget": "anydataHum",
"page": "sensors",
"descr": "SHT30 Влажность",
"int": 15,
"round": 1,
"num": 34
},
{
"global": 0,
"name": "35. HC-SR04 Ультразвуковой дальномер",
"num": 35,
"type": "Reading",
"subtype": "Sonar",
"id": "sonar",
"widget": "anydataTmp",
"page": "sensors",
"descr": "Расстояние (см)",
"pinTrig": 5,
"pinEcho": 4,
"int": 5
},
{
"name": "36. UART",
"type": "Reading",
"subtype": "UART",
"page": "",
"descr": "",
"widget": "nil",
"id": "u",
"tx": 4,
"rx": 5,
"line": 2,
"speed": 9600,
"eventFormat": 0,
"num": 36
},
{
"header": "executive_devices"
},
{
"global": 0,
"name": "37. Кнопка подключенная к пину",
"type": "Writing",
"subtype": "ButtonIn",
"id": "btn",
"widget": "toggle",
"page": "Кнопки",
"descr": "Освещение",
"needSave": 0,
"int": 0,
"pin": 16,
"execLevel": "1",
"pinMode": "INPUT",
"debounceDelay": 50,
"fixState": 0,
"inv": 0,
"num": 37
},
{
"global": 0,
"name": "38. Управление пином",
"type": "Writing",
"subtype": "ButtonOut",
"needSave": 0,
"id": "btn",
"widget": "toggle",
"page": "Кнопки",
"descr": "Освещение",
"int": 0,
"inv": 0,
"pin": 2,
"num": 38
},
{
"global": 0,
"name": "39. Расширитель портов Mcp23017",
"type": "Reading",
"subtype": "Mcp23017",
"id": "Mcp",
"widget": "",
"page": "",
"descr": "",
"int": "0",
"addr": "0x20",
"index": 1,
"num": 39
},
{
"global": 0,
"name": "40. Сенсорная кнопка",
"type": "Writing",
"subtype": "Multitouch",
"id": "impulse",
"widget": "anydataDef",
"page": "Кнопки",
"descr": "Количество нажаний",
"needSave": 0,
"int": 300,
"inv": 1,
"pin": 16,
"pinMode": "INPUT",
"debounceDelay": 50,
"PWMDelay": 500,
"num": 40
},
{
"global": 0,
"name": "41. Расширитель портов Pcf8574",
"type": "Reading",
"subtype": "Pcf8574",
"id": "Pcf",
"widget": "",
"page": "",
"descr": "",
"int": "0",
"addr": "0x20",
"index": 1,
"num": 41
},
{
"global": 0,
"name": "42. PWM ESP8266",
"type": "Writing",
"subtype": "Pwm8266",
"id": "pwm",
"widget": "range",
"page": "Кнопки",
"descr": "PWM",
"int": 0,
"pin": 15,
"freq": 5000,
"val": 0,
"apin": -1,
"num": 42
},
{
"global": 0,
"name": "43. Телеграм-Лайт",
"type": "Writing",
"subtype": "TelegramLT",
"id": "tg",
"widget": "",
"page": "",
"descr": "",
"token": "",
"chatID": "",
"num": 43
},
{
"header": "screens"
},
{
"global": 0,
"name": "44. 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": 44
},
{
"name": "45. 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": 45
}
]

View File

@@ -1 +0,0 @@
[]

View File

@@ -1,25 +0,0 @@
{
"name": "IoTmanagerVer4",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "rise",
"routerpass": "hostel3333",
"timezone": 2,
"ntp": "pool.ntp.org",
"weblogin": "admin",
"webpass": "admin",
"mqttServer": "",
"mqttPort": 8021,
"mqttPrefix": "/risenew",
"mqttUser": "rise",
"mqttPass": "3hostel3",
"serverip": "http://iotmanager.org",
"log": 0,
"mqttin": 0,
"pinSCL": 0,
"pinSDA": 0,
"i2cFreq": 100000,
"settings_": "",
"wg": "group1",
"udps": 1
}

View File

@@ -1,3 +0,0 @@
{
}

View File

@@ -1,315 +0,0 @@
[
{
"name": "anydataRed",
"label": "Сообщение1",
"widget": "anydata",
"icon": "body",
"color": "red",
"descrColor": "red"
},
{
"name": "anydataDgr",
"label": "Сообщение2",
"widget": "anydata",
"after": "",
"color": "red",
"icon": "walk"
},
{
"name": "anydataDef",
"label": "Текст",
"widget": "anydata",
"after": "",
"icon": ""
},
{
"name": "anydataVlt",
"label": "Вольты",
"widget": "anydata",
"after": "V",
"icon": "speedometer"
},
{
"name": "anydataAmp",
"label": "Амперы",
"widget": "anydata",
"after": "A",
"icon": "speedometer"
},
{
"name": "anydataWt",
"label": "Ватты",
"widget": "anydata",
"after": "Wt",
"icon": "speedometer",
"color": [
{
"level": 0,
"value": ""
},
{
"level": 200,
"value": "#009933"
},
{
"level": 2000,
"value": "#FF9900"
},
{
"level": 4000,
"value": "red"
}
]
},
{
"name": "anydataWth",
"label": "Энергия",
"widget": "anydata",
"after": "kWh",
"icon": "speedometer"
},
{
"name": "anydataHtz",
"label": "Герцы",
"widget": "anydata",
"after": "Hz",
"icon": "speedometer"
},
{
"name": "anydataTmp",
"label": "Температура",
"widget": "anydata",
"after": "°С",
"icon": "thermometer",
"font": "OCR A Std",
"color": [
{
"level": -20,
"value": "#0000CC"
},
{
"level": -10,
"value": "#0000CC"
},
{
"level": 0,
"value": "#0000CC"
},
{
"level": 12,
"value": "#3366FF"
},
{
"level": 16,
"value": "#33CCFF"
},
{
"level": 18,
"value": "#009933"
},
{
"level": 30,
"value": "#FF9900"
},
{
"level": 40,
"value": "red"
}
]
},
{
"name": "anydataMm",
"label": "Давление",
"widget": "anydata",
"after": "mm",
"icon": "speedometer"
},
{
"name": "anydataHum",
"label": "Влажность",
"widget": "anydata",
"after": "%",
"icon": "water",
"color": "#88AADF"
},
{
"name": "anydataTm",
"label": "Время",
"widget": "anydata",
"after": "",
"icon": "speedometer"
},
{
"name": "button",
"label": "Кнопка",
"widget": "btn",
"size": "large",
"color": "green",
"send": "test"
},
{
"name": "toggle",
"label": "Переключатель",
"widget": "toggle",
"icon": "",
"iconOff": ""
},
{
"name": "chart1",
"label": "График без точек",
"widget": "chart",
"dateFormat": "HH:mm",
"maxCount": 86400,
"pointRadius": 0
},
{
"name": "chart2",
"label": "График с точками",
"widget": "chart",
"maxCount": 86400,
"dateFormat": "HH:mm"
},
{
"name": "chart3",
"label": "График Дневной",
"widget": "chart",
"dateFormat": "DD.MM.YYYY",
"maxCount": 86400,
"type": "bar"
},
{
"name": "fillgauge",
"label": "Бочка",
"widget": "fillgauge",
"circleColor": "#00FFFF",
"textColor": "#FFFFFF",
"waveTextColor": "#000000",
"waveColor": "#00FFFF"
},
{
"name": "inputDate",
"label": "Ввод даты",
"widget": "input",
"size": "small",
"color": "orange",
"type": "date"
},
{
"name": "inputDgt",
"label": "Ввод числа",
"widget": "input",
"color": "blue",
"type": "number"
},
{
"name": "inputTxt",
"label": "Ввод текста",
"widget": "input",
"size": "small",
"color": "orange",
"type": "text"
},
{
"name": "inputTm",
"label": "Ввод времени",
"widget": "input",
"color": "blue",
"type": "time"
},
{
"name": "progressLine",
"label": "Статус линия",
"widget": "progress-line",
"icon": "sunny",
"max": "100",
"stroke": "10"
},
{
"name": "progressRound",
"label": "Статус круг",
"widget": "progress-round",
"max": "100",
"stroke": "20",
"color": "#45ccce",
"background": "#777",
"semicircle": "1"
},
{
"name": "range",
"label": "Ползунок",
"widget": "range",
"descrColor": "red",
"after": "%",
"k": 0.0977,
"min": 0,
"max": 100,
"debounce": 500
},
{
"name": "rangeServo",
"label": "Ползунок (Servo)",
"widget": "range",
"descrColor": "red",
"after": "°",
"k": 1,
"min": 0,
"max": 180,
"debounce": 500
},
{
"name": "select",
"label": "Выпадающий",
"widget": "select",
"options": [
"Выключен",
"Включен"
],
"status": 0
},
{
"name": "anydataPpm",
"label": "PPM",
"widget": "anydata",
"after": "ppm",
"icon": "speedometer"
},
{
"name": "anydatamAmp",
"label": "миллиАмперы",
"widget": "anydata",
"after": "mAmp",
"icon": "speedometer"
},
{
"name": "anydatamVlt",
"label": "миллиВольты",
"widget": "anydata",
"after": "mVlt",
"icon": "speedometer"
},
{
"name": "anydatamWt",
"label": "миллиВатты",
"widget": "anydata",
"after": "mWt",
"icon": "speedometer"
},
{
"name": "anydataCm",
"label": "Сантиметры",
"widget": "anydata",
"after": "cm",
"icon": "speedometer"
},
{
"name": "anydataLiter",
"label": "Литры",
"widget": "anydata",
"after": "ltr",
"icon": "speedometer"
},
{
"name": "nil",
"label": "Без виджета"
}
]

View File

@@ -120,6 +120,10 @@
"path": "src/modules/virtual/LogingDaily", "path": "src/modules/virtual/LogingDaily",
"active": true "active": true
}, },
{
"path": "src/modules/virtual/owmWeather",
"active": true
},
{ {
"path": "src/modules/virtual/Timer", "path": "src/modules/virtual/Timer",
"active": true "active": true

View File

@@ -487,6 +487,7 @@ build_src_filter =
+<modules/virtual/Cron> +<modules/virtual/Cron>
+<modules/virtual/Loging> +<modules/virtual/Loging>
+<modules/virtual/LogingDaily> +<modules/virtual/LogingDaily>
+<modules/virtual/owmWeather>
+<modules/virtual/Timer> +<modules/virtual/Timer>
+<modules/virtual/Variable> +<modules/virtual/Variable>
+<modules/virtual/VariableColor> +<modules/virtual/VariableColor>

View File

@@ -3,6 +3,7 @@
void* getAPI_Cron(String subtype, String params); void* getAPI_Cron(String subtype, String params);
void* getAPI_Loging(String subtype, String params); void* getAPI_Loging(String subtype, String params);
void* getAPI_LogingDaily(String subtype, String params); void* getAPI_LogingDaily(String subtype, String params);
void* getAPI_owmWeather(String subtype, String params);
void* getAPI_Timer(String subtype, String params); void* getAPI_Timer(String subtype, String params);
void* getAPI_Variable(String subtype, String params); void* getAPI_Variable(String subtype, String params);
void* getAPI_VariableColor(String subtype, String params); void* getAPI_VariableColor(String subtype, String params);
@@ -42,6 +43,7 @@ void* tmpAPI;
if ((tmpAPI = getAPI_Cron(subtype, params)) != nullptr) return tmpAPI; if ((tmpAPI = getAPI_Cron(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Loging(subtype, params)) != nullptr) return tmpAPI; if ((tmpAPI = getAPI_Loging(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_LogingDaily(subtype, params)) != nullptr) return tmpAPI; if ((tmpAPI = getAPI_LogingDaily(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_owmWeather(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_Timer(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_Variable(subtype, params)) != nullptr) return tmpAPI;
if ((tmpAPI = getAPI_VariableColor(subtype, params)) != nullptr) return tmpAPI; if ((tmpAPI = getAPI_VariableColor(subtype, params)) != nullptr) return tmpAPI;

View File

@@ -35,7 +35,7 @@ class Oled128 : public IoTItem {
jsonRead(parameters, "addr", addr); jsonRead(parameters, "addr", addr);
if (addr == "") { if (addr == "") {
// scanI2C(); scanI2C();
return; return;
} }

View File

@@ -3,9 +3,16 @@
import os import os
import shutil import shutil
from sys import platform
if platform == "linux" or platform == "linux2":
# linux
mainPyPath = '~/.platformio/platforms/espressif8266@4.0.1/builder/main.py'
else:
# windows
mainPyPath = os.environ['USERPROFILE'] + '\\.platformio\\platforms\\espressif8266@4.0.1\\builder\\main.py'
mainPyPath = os.environ['USERPROFILE'] + '\\.platformio\\platforms\\espressif8266@4.0.1\\builder\\main.py' # print(mainPyPath)
with open(mainPyPath) as fr: with open(mainPyPath) as fr:
oldData = fr.read() oldData = fr.read()