From 3af9b457dee6567a722c38498aa1283dd85f03a6 Mon Sep 17 00:00:00 2001 From: biver Date: Tue, 11 Oct 2022 21:57:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BF=D1=80=D0=BE=D1=84=D0=B8=D0=BB=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BB=D0=B0=D1=82=20esp01=20=D1=81=20=D0=B8=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20OTA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PrepareProject.py | 29 +++-- data_svelte/settings.json | 3 +- data_svelte_lite/config.json | 1 + data_svelte_lite/dev_conf.txt | 0 data_svelte_lite/edit.htm.gz | Bin 0 -> 5286 bytes data_svelte_lite/index.html | 16 +++ data_svelte_lite/items.json | 28 +++++ data_svelte_lite/scenario.txt | 0 data_svelte_lite/settings.json | 23 ++++ data_svelte_lite/widgets.json | 216 +++++++++++++++++++++++++++++++++ myProfile.json | 3 +- platformio.ini | 54 +++++++++ 12 files changed, 361 insertions(+), 12 deletions(-) create mode 100644 data_svelte_lite/config.json create mode 100644 data_svelte_lite/dev_conf.txt create mode 100644 data_svelte_lite/edit.htm.gz create mode 100644 data_svelte_lite/index.html create mode 100644 data_svelte_lite/items.json create mode 100644 data_svelte_lite/scenario.txt create mode 100644 data_svelte_lite/settings.json create mode 100644 data_svelte_lite/widgets.json diff --git a/PrepareProject.py b/PrepareProject.py index 6f592233..601d50ad 100644 --- a/PrepareProject.py +++ b/PrepareProject.py @@ -98,8 +98,7 @@ else: # устанавливаем параметры сборки profJson['projectProp'] = { 'platformio': { - 'default_envs': 'esp8266_4mb', - 'data_dir': 'data_svelte' + 'default_envs': 'esp8266_4mb' } } # загружаем список модулей для сборки @@ -107,23 +106,35 @@ else: # сохраняем новый профиль with open(profile, "w", encoding='utf-8') as write_file: json.dump(profJson, write_file, ensure_ascii=False, indent=4, sort_keys=False) - + + +# определяем какое устройство используется в профиле +deviceName = profJson['projectProp']['platformio']['default_envs'] + +# назначаем папку с файлами прошивки в зависимости от устройства и запоминаем в профиле +dataDir = 'data_svelte' +if deviceName == 'esp8266_1mb_ota': + dataDir = 'data_svelte_lite' +profJson['projectProp'] = { + 'platformio': { + 'data_dir': dataDir + } +} # генерируем файлы проекта на основе подготовленного профиля # заполняем конфигурационный файл прошивки параметрами из профиля -with open("data_svelte/settings.json", "r", encoding='utf-8') as read_file: +with open(dataDir + "/settings.json", "r", encoding='utf-8') as read_file: iotmJson = json.load(read_file) for key, value in profJson['iotmSettings'].items(): iotmJson[key] = value -with open("data_svelte/settings.json", "w", encoding='utf-8') as write_file: +with open(dataDir + "/settings.json", "w", encoding='utf-8') as write_file: json.dump(iotmJson, write_file, ensure_ascii=False, indent=4, sort_keys=False) -# определяем какое устройство используется в профиле -deviceName = profJson['projectProp']['platformio']['default_envs'] + # собираем меню прошивки из модулей # параллельно формируем список имен активных модулей -# параллельно собираем необходимые активным модулям библиотеки для включения в компиляцию для текущего типа устройства (esp8266_4m, esp32_4mb) +# параллельно собираем необходимые активным модулям библиотеки для включения в компиляцию для текущего типа устройства (esp8266_4m, esp32_4mb, esp8266_1m, esp8266_1m_ota) activeModulesName = [] # список имен активных модулей allLibs = "" # подборка всех библиотек необходимых модулям для дальнейшей записи в конфигурацию platformio itemsCount = 1; @@ -145,7 +156,7 @@ for section, modules in profJson['modules'].items(): configItemsJson['name'] = str(itemsCount) + ". " + configItemsJson['name'] itemsCount = itemsCount + 1 itemsJson.append(configItemsJson) -with open("data_svelte/items.json", "w", encoding='utf-8') as write_file: +with open(dataDir + "/items.json", "w", encoding='utf-8') as write_file: json.dump(itemsJson, write_file, ensure_ascii=False, indent=4, sort_keys=False) diff --git a/data_svelte/settings.json b/data_svelte/settings.json index bfeb5544..f83115c2 100644 --- a/data_svelte/settings.json +++ b/data_svelte/settings.json @@ -18,5 +18,6 @@ "mqttin": 0, "pinSCL": 0, "pinSDA": 0, - "i2cFreq": 100000 + "i2cFreq": 100000, + "settings_": "" } \ No newline at end of file diff --git a/data_svelte_lite/config.json b/data_svelte_lite/config.json new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/data_svelte_lite/config.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/data_svelte_lite/dev_conf.txt b/data_svelte_lite/dev_conf.txt new file mode 100644 index 00000000..e69de29b diff --git a/data_svelte_lite/edit.htm.gz b/data_svelte_lite/edit.htm.gz new file mode 100644 index 0000000000000000000000000000000000000000..d41d10c1c56f308ad3cac07e98993703426b577d GIT binary patch literal 5286 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 + + + + + + IoT Manager 4.4.1 + + + + + + + + + diff --git a/data_svelte_lite/items.json b/data_svelte_lite/items.json new file mode 100644 index 00000000..88457c56 --- /dev/null +++ b/data_svelte_lite/items.json @@ -0,0 +1,28 @@ +[ + { + "name": "Выберите элемент", + "num": 0 + }, + { + "header": "Виртуальные элементы" + }, + { + "header": "Сенсоры" + }, + { + "name": "1. Сканер кнопок 433 MHz", + "num": 1, + "type": "Reading", + "subtype": "RCswitch", + "id": "rsw", + "int": 500, + "pinRx": 12, + "pinTx": 12 + }, + { + "header": "Исполнительные устройства" + }, + { + "header": "Экраны" + } +] \ No newline at end of file diff --git a/data_svelte_lite/scenario.txt b/data_svelte_lite/scenario.txt new file mode 100644 index 00000000..e69de29b diff --git a/data_svelte_lite/settings.json b/data_svelte_lite/settings.json new file mode 100644 index 00000000..f83115c2 --- /dev/null +++ b/data_svelte_lite/settings.json @@ -0,0 +1,23 @@ +{ + "name": "IoTmanagerVer4", + "apssid": "IoTmanager", + "appass": "", + "routerssid": "rise", + "routerpass": "hostel3333", + "timezone": 2, + "ntp": "pool.ntp.org", + "weblogin": "admin", + "webpass": "admin", + "mqttServer": "m2.wqtt.ru", + "mqttPort": 8021, + "mqttPrefix": "/risenew", + "mqttUser": "rise", + "mqttPass": "3hostel3", + "serverip": "http://iotmanager.org", + "log": 0, + "mqttin": 0, + "pinSCL": 0, + "pinSDA": 0, + "i2cFreq": 100000, + "settings_": "" +} \ No newline at end of file diff --git a/data_svelte_lite/widgets.json b/data_svelte_lite/widgets.json new file mode 100644 index 00000000..cab0dbe2 --- /dev/null +++ b/data_svelte_lite/widgets.json @@ -0,0 +1,216 @@ +[ + { + "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" + }, + { + "name": "anydataWth", + "label": "Энергия", + "widget": "anydata", + "after": "kWt/Hr", + "icon": "speedometer" + }, + { + "name": "anydataHtz", + "label": "Герцы", + "widget": "anydata", + "after": "Hz", + "icon": "speedometer" + }, + { + "name": "anydataTmp", + "label": "Температура", + "widget": "anydata", + "after": "°С", + "icon": "thermometer" + }, + { + "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": "select", + "label": "Выпадающий", + "widget": "select", + "options": [ + "Выключен", + "Включен" + ], + "status": 0 + }, + { + "name": "anydataPpm", + "label": "PPM", + "widget": "anydata", + "after": "ppm", + "icon": "speedometer" + }, + { + "name": "nil", + "label": "Без виджета" + } +] \ No newline at end of file diff --git a/myProfile.json b/myProfile.json index 18e1f5bc..2ed11eec 100644 --- a/myProfile.json +++ b/myProfile.json @@ -24,8 +24,7 @@ }, "projectProp": { "platformio": { - "default_envs": "esp8266_4mb", - "data_dir": "data_svelte" + "default_envs": "esp8266_4mb" } }, "modules": { diff --git a/platformio.ini b/platformio.ini index 971984a1..476daacb 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,3 +1,45 @@ +[env:esp8266_1mb_ota] +lib_deps = + ${common_env_data.lib_deps_external} + ${env:esp8266_1mb_ota_fromitems.lib_deps} + ESPAsyncUDP +build_flags = -Desp8266_4mb="esp8266_4mb" +framework = arduino +board = nodemcuv2 +board_build.ldscript = eagle.flash.1m64.ld +platform = espressif8266 @4.0.1 +monitor_filters = esp8266_exception_decoder +upload_speed = 921600 +monitor_speed = 115200 +board_build.filesystem = littlefs +build_src_filter = + +<*.cpp> + + + + + + + ${env:esp8266_1mb_ota_fromitems.build_src_filter} + +[env:esp8266_1mb] +lib_deps = + ${common_env_data.lib_deps_external} + ${env:esp8266_1mb_fromitems.lib_deps} + ESPAsyncUDP +build_flags = -Desp8266_4mb="esp8266_4mb" +framework = arduino +board = nodemcuv2 +board_build.ldscript = eagle.flash.1m256.ld +platform = espressif8266 @4.0.1 +monitor_filters = esp8266_exception_decoder +upload_speed = 921600 +monitor_speed = 115200 +board_build.filesystem = littlefs +build_src_filter = + +<*.cpp> + + + + + + + ${env:esp8266_1mb_fromitems.build_src_filter} + [env:esp8266_4mb] lib_deps = ${common_env_data.lib_deps_external} @@ -50,6 +92,18 @@ lib_deps_external = bblanchon/ArduinoJson @6.18.0 knolleary/PubSubClient +[env:esp8266_1mb_ota_fromitems] +lib_deps = + rc-switch @ ^2.6.4 +build_src_filter = + + + +[env:esp8266_1mb_fromitems] +lib_deps = + rc-switch @ ^2.6.4 +build_src_filter = + + + [env:esp8266_4mb_fromitems] lib_deps = https://github.com/enjoyneering/AHTxx.git