diff --git a/PrepareProject.py b/PrepareProject.py index 9fe00aa4..76261645 100644 --- a/PrepareProject.py +++ b/PrepareProject.py @@ -218,6 +218,7 @@ shutil.copy(profile, "data_svelte/" + profile) # ctypes.windll.user32.MessageBoxW(0, "Профиль " + profile + " применен, можно запускать компиляцию и прошивку.", "Операция завершена.", 0) 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") else: diff --git a/myProfileDef.json b/compilerProfile.json similarity index 94% rename from myProfileDef.json rename to compilerProfile.json index 0170a5e1..a7087d24 100644 --- a/myProfileDef.json +++ b/compilerProfile.json @@ -25,7 +25,7 @@ "projectProp": { "platformio": { "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": [ { "name": "esp8266_4mb", @@ -45,6 +45,14 @@ "partitions": "0x8000", "littlefs": "0x290000" }, + { + "name": "esp32cam_4mb", + "boot_app0": "0xe000", + "bootloader_qio_80m": "0x1000", + "firmware": "0x10000", + "partitions": "0x8000", + "littlefs": "0x290000" + }, { "name": "esp32_16mb", "boot_app0": "0xe000", @@ -112,6 +120,10 @@ "path": "src/modules/virtual/LogingDaily", "active": true }, + { + "path": "src/modules/virtual/owmWeather", + "active": true + }, { "path": "src/modules/virtual/Timer", "active": true @@ -372,6 +384,10 @@ "path": "src/modules/exec/TelegramLT", "active": true }, + { + "path": "src/modules/exec/Telegram_v2", + "active": false + }, { "path": "src/modules/exec/Thermostat", "active": false diff --git a/data_svelte/items.json b/data_svelte/items.json index 3a180753..e796d869 100644 --- a/data_svelte/items.json +++ b/data_svelte/items.json @@ -68,7 +68,29 @@ }, { "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", "subtype": "Timer", "id": "timer", @@ -80,11 +102,11 @@ "ticker": 1, "repeat": 1, "needSave": 0, - "num": 5 + "num": 6 }, { "global": 0, - "name": "6. Окно ввода числа (переменная)", + "name": "7. Окно ввода числа (переменная)", "type": "Reading", "subtype": "Variable", "id": "value", @@ -98,11 +120,11 @@ "plus": 0, "multiply": 1, "round": 0, - "num": 6 + "num": 7 }, { "global": 0, - "name": "7. Окно ввода времени", + "name": "8. Окно ввода времени", "type": "Reading", "subtype": "Variable", "id": "time", @@ -112,11 +134,11 @@ "descr": "Введите время", "int": "0", "val": "02:00", - "num": 7 + "num": 8 }, { "global": 0, - "name": "8. Окно ввода даты", + "name": "9. Окно ввода даты", "type": "Reading", "subtype": "Variable", "id": "time", @@ -126,11 +148,11 @@ "descr": "Введите дату", "int": "0", "val": "24.05.2022", - "num": 8 + "num": 9 }, { "global": 0, - "name": "9. Окно ввода текста", + "name": "10. Окно ввода текста", "type": "Reading", "subtype": "Variable", "id": "txt", @@ -140,11 +162,11 @@ "descr": "Введите текст", "int": "0", "val": "текст", - "num": 9 + "num": 10 }, { "global": 0, - "name": "10. Вывод значения", + "name": "11. Вывод значения", "type": "Reading", "subtype": "Variable", "id": "vout", @@ -158,11 +180,11 @@ "plus": 0, "multiply": 1, "round": 0, - "num": 10 + "num": 11 }, { "global": 0, - "name": "11. Цветной текст", + "name": "12. Цветной текст", "type": "Reading", "subtype": "VariableColor", "id": "color", @@ -172,11 +194,11 @@ "descr": "Цветной текст", "val": "...", "round": 0, - "num": 11 + "num": 12 }, { "global": 0, - "name": "12. Виртуальная кнопка", + "name": "13. Виртуальная кнопка", "type": "Reading", "subtype": "VButton", "id": "vbtn", @@ -186,13 +208,13 @@ "descr": "Кнопка", "int": "0", "val": "0", - "num": 12 + "num": 13 }, { "header": "sensors" }, { - "name": "13. A02 Дальность", + "name": "14. A02 Дальность", "type": "Reading", "subtype": "A02Distance", "id": "dist", @@ -201,10 +223,10 @@ "descr": "Дальность", "int": 5, "round": 1, - "num": 13 + "num": 14 }, { - "name": "14. Acs712 Ток", + "name": "15. Acs712 Ток", "type": "Reading", "subtype": "Acs712", "id": "amp", @@ -219,11 +241,11 @@ "sens": 100, "adczero": 512, "btn-setZero": "nil", - "num": 14 + "num": 15 }, { "global": 0, - "name": "15. AHTXX Температура", + "name": "16. AHTXX Температура", "type": "Reading", "subtype": "AhtXXt", "id": "Temp20", @@ -234,11 +256,11 @@ "addr": "0x38", "shtType": 1, "round": 1, - "num": 15 + "num": 16 }, { "global": 0, - "name": "16. AHTXX Влажность", + "name": "17. AHTXX Влажность", "type": "Reading", "subtype": "AhtXXh", "id": "Hum20", @@ -249,11 +271,11 @@ "addr": "0x38", "shtType": 1, "round": 1, - "num": 16 + "num": 17 }, { "global": 0, - "name": "17. Аналоговый сенсор", + "name": "18. Аналоговый сенсор", "type": "Reading", "subtype": "AnalogAdc", "id": "t", @@ -267,11 +289,11 @@ "pin": 0, "int": 15, "avgSteps": 1, - "num": 17 + "num": 18 }, { "global": 0, - "name": "18. BME280 Температура", + "name": "19. BME280 Температура", "type": "Reading", "subtype": "Bme280t", "id": "Tmp3", @@ -281,11 +303,11 @@ "int": 15, "addr": "0x77", "round": 1, - "num": 18 + "num": 19 }, { "global": 0, - "name": "19. BME280 Давление", + "name": "20. BME280 Давление", "type": "Reading", "subtype": "Bme280p", "id": "Press3", @@ -295,11 +317,11 @@ "int": 15, "addr": "0x77", "round": 1, - "num": 19 + "num": 20 }, { "global": 0, - "name": "20. BME280 Влажность", + "name": "21. BME280 Влажность", "type": "Reading", "subtype": "Bme280h", "id": "Hum3", @@ -309,11 +331,11 @@ "int": 15, "addr": "0x77", "round": 1, - "num": 20 + "num": 21 }, { "global": 0, - "name": "21. BME280 Tочка росы", + "name": "22. BME280 Tочка росы", "type": "Reading", "subtype": "Bme280dp", "id": "Dew3", @@ -323,11 +345,11 @@ "int": 15, "addr": "0x77", "round": 1, - "num": 21 + "num": 22 }, { "global": 0, - "name": "22. BMP280 Температура", + "name": "23. BMP280 Температура", "type": "Reading", "subtype": "Bmp280t", "id": "tmp3", @@ -337,11 +359,11 @@ "int": 15, "addr": "0x77", "round": 1, - "num": 22 + "num": 23 }, { "global": 0, - "name": "23. BMP280 Давление", + "name": "24. BMP280 Давление", "type": "Reading", "subtype": "Bmp280p", "id": "Press3", @@ -351,11 +373,11 @@ "int": 15, "addr": "0x77", "round": 1, - "num": 23 + "num": 24 }, { "global": 0, - "name": "24. DHT11 Температура", + "name": "25. DHT11 Температура", "type": "Reading", "subtype": "Dht1122t", "id": "tmp3", @@ -365,11 +387,11 @@ "int": 15, "pin": 0, "senstype": "dht11", - "num": 24 + "num": 25 }, { "global": 0, - "name": "25. DHT11 Влажность", + "name": "26. DHT11 Влажность", "type": "Reading", "subtype": "Dht1122h", "id": "Hum3", @@ -379,11 +401,11 @@ "int": 15, "pin": 0, "senstype": "dht11", - "num": 25 + "num": 26 }, { "global": 0, - "name": "26. DS18B20 Температура", + "name": "27. DS18B20 Температура", "type": "Reading", "subtype": "Ds18b20", "id": "dstmp", @@ -395,11 +417,11 @@ "index": 0, "addr": "", "round": 1, - "num": 26 + "num": 27 }, { "global": 0, - "name": "27. Аналоговый счетчик импульсов", + "name": "28. Аналоговый счетчик импульсов", "type": "Writing", "subtype": "Impulse", "id": "impulse", @@ -412,11 +434,11 @@ "pinMode": "INPUT", "debounceDelay": 3, "multiply": 1, - "num": 27 + "num": 28 }, { "global": 0, - "name": "28. PZEM 004t Напряжение", + "name": "29. PZEM 004t Напряжение", "type": "Reading", "subtype": "Pzem004v", "id": "v", @@ -426,11 +448,11 @@ "int": 15, "addr": "0xF8", "round": 1, - "num": 28 + "num": 29 }, { "global": 0, - "name": "29. PZEM 004t Сила тока", + "name": "30. PZEM 004t Сила тока", "type": "Reading", "subtype": "Pzem004a", "id": "a", @@ -440,11 +462,11 @@ "int": 15, "addr": "0xF8", "round": 1, - "num": 29 + "num": 30 }, { "global": 0, - "name": "30. PZEM 004t Мощность", + "name": "31. PZEM 004t Мощность", "type": "Reading", "subtype": "Pzem004w", "id": "w", @@ -454,11 +476,11 @@ "int": 15, "addr": "0xF8", "round": 1, - "num": 30 + "num": 31 }, { "global": 0, - "name": "31. PZEM 004t Энергия", + "name": "32. PZEM 004t Энергия", "type": "Reading", "subtype": "Pzem004wh", "id": "wh", @@ -468,11 +490,11 @@ "int": 15, "addr": "0xF8", "round": 1, - "num": 31 + "num": 32 }, { "global": 0, - "name": "32. PZEM 004t Частота", + "name": "33. PZEM 004t Частота", "type": "Reading", "subtype": "Pzem004hz", "id": "hz", @@ -482,11 +504,11 @@ "int": 15, "addr": "0xF8", "round": 1, - "num": 32 + "num": 33 }, { "global": 0, - "name": "33. PZEM 004t Косинус", + "name": "34. PZEM 004t Косинус", "type": "Reading", "subtype": "Pzem004pf", "id": "pf", @@ -496,11 +518,11 @@ "int": 15, "addr": "0xF8", "round": 1, - "num": 33 + "num": 34 }, { "global": 0, - "name": "34. PZEM настройка", + "name": "35. PZEM настройка", "type": "Reading", "subtype": "Pzem004cmd", "id": "set", @@ -512,11 +534,11 @@ "changeaddr": 0, "setaddr": "0x01", "reset": 0, - "num": 34 + "num": 35 }, { "global": 0, - "name": "35. Часы реального времени", + "name": "36. Часы реального времени", "type": "Reading", "subtype": "RTC", "id": "rtc", @@ -532,11 +554,11 @@ "int": 5, "btn-setUTime": "0", "btn-setSysTime": "nil", - "num": 35 + "num": 36 }, { - "name": "36. (S8) Cенсор качества воздуха", - "num": 36, + "name": "37. (S8) Cенсор качества воздуха", + "num": 37, "type": "Reading", "subtype": "S8co", "id": "s8co", @@ -550,7 +572,7 @@ }, { "global": 0, - "name": "37. Sht20 Температура", + "name": "38. Sht20 Температура", "type": "Reading", "subtype": "Sht20t", "id": "tmp2", @@ -559,11 +581,11 @@ "descr": "Температура", "int": 15, "round": 1, - "num": 37 + "num": 38 }, { "global": 0, - "name": "38. Sht20 Влажность", + "name": "39. Sht20 Влажность", "type": "Reading", "subtype": "Sht20h", "id": "Hum2", @@ -572,11 +594,11 @@ "descr": "Влажность", "int": 15, "round": 1, - "num": 38 + "num": 39 }, { "global": 0, - "name": "39. Sht30 Температура", + "name": "40. Sht30 Температура", "type": "Reading", "subtype": "Sht30t", "id": "tmp30", @@ -585,11 +607,11 @@ "descr": "SHT30 Температура", "int": 15, "round": 1, - "num": 39 + "num": 40 }, { "global": 0, - "name": "40. Sht30 Влажность", + "name": "41. Sht30 Влажность", "type": "Reading", "subtype": "Sht30h", "id": "Hum30", @@ -598,12 +620,12 @@ "descr": "SHT30 Влажность", "int": 15, "round": 1, - "num": 40 + "num": 41 }, { "global": 0, - "name": "41. HC-SR04 Ультразвуковой дальномер", - "num": 41, + "name": "42. HC-SR04 Ультразвуковой дальномер", + "num": 42, "type": "Reading", "subtype": "Sonar", "id": "sonar", @@ -615,7 +637,7 @@ "int": 5 }, { - "name": "42. UART", + "name": "43. UART", "type": "Reading", "subtype": "UART", "page": "", @@ -627,14 +649,14 @@ "line": 2, "speed": 9600, "eventFormat": 0, - "num": 42 + "num": 43 }, { "header": "executive_devices" }, { "global": 0, - "name": "43. Кнопка подключенная к пину", + "name": "44. Кнопка подключенная к пину", "type": "Writing", "subtype": "ButtonIn", "id": "btn", @@ -649,11 +671,11 @@ "debounceDelay": 50, "fixState": 0, "inv": 0, - "num": 43 + "num": 44 }, { "global": 0, - "name": "44. Управление пином", + "name": "45. Управление пином", "type": "Writing", "subtype": "ButtonOut", "needSave": 0, @@ -664,11 +686,11 @@ "int": 0, "inv": 0, "pin": 2, - "num": 44 + "num": 45 }, { "global": 0, - "name": "45. Пассивный звуковой извещатель", + "name": "46. Пассивный звуковой извещатель", "type": "Writing", "subtype": "Buzzer", "id": "buzzer", @@ -687,11 +709,11 @@ "cycle": 0, "indication": 1, "val": 0, - "num": 45 + "num": 46 }, { "global": 0, - "name": "46. Энкодер", + "name": "47. Энкодер", "type": "Writing", "subtype": "Encoder", "id": "enc", @@ -704,11 +726,11 @@ "step": 1, "stepOnPress": 5, "pins": "4,5,2", - "num": 46 + "num": 47 }, { "global": 0, - "name": "47. Сервопривод", + "name": "48. Сервопривод", "type": "Writing", "subtype": "IoTServo", "id": "servo", @@ -719,11 +741,11 @@ "pin": 12, "apin": -1, "amap": "0, 4096, 0, 180", - "num": 47 + "num": 48 }, { "global": 0, - "name": "48. Расширитель портов Mcp23017", + "name": "49. Расширитель портов Mcp23017", "type": "Reading", "subtype": "Mcp23017", "id": "Mcp", @@ -733,11 +755,11 @@ "int": "0", "addr": "0x20", "index": 1, - "num": 48 + "num": 49 }, { "global": 0, - "name": "49. MP3 плеер", + "name": "50. MP3 плеер", "type": "Reading", "subtype": "Mp3", "id": "mp3", @@ -747,11 +769,11 @@ "int": 1, "pins": "14,12", "volume": 20, - "num": 49 + "num": 50 }, { "global": 0, - "name": "50. Сенсорная кнопка", + "name": "51. Сенсорная кнопка", "type": "Writing", "subtype": "Multitouch", "id": "impulse", @@ -765,11 +787,11 @@ "pinMode": "INPUT", "debounceDelay": 50, "PWMDelay": 500, - "num": 50 + "num": 51 }, { "global": 0, - "name": "51. Расширитель портов Pcf8574", + "name": "52. Расширитель портов Pcf8574", "type": "Reading", "subtype": "Pcf8574", "id": "Pcf", @@ -779,11 +801,11 @@ "int": "0", "addr": "0x20", "index": 1, - "num": 51 + "num": 52 }, { "global": 0, - "name": "52. PWM ESP8266", + "name": "53. PWM ESP8266", "type": "Writing", "subtype": "Pwm8266", "id": "pwm", @@ -795,11 +817,11 @@ "freq": 5000, "val": 0, "apin": -1, - "num": 52 + "num": 53 }, { "global": 0, - "name": "53. Телеграм-Лайт", + "name": "54. Телеграм-Лайт", "type": "Writing", "subtype": "TelegramLT", "id": "tg", @@ -808,14 +830,14 @@ "descr": "", "token": "", "chatID": "", - "num": 53 + "num": 54 }, { "header": "screens" }, { "global": 0, - "name": "54. LCD экран 2004", + "name": "55. LCD экран 2004", "type": "Reading", "subtype": "Lcd2004", "id": "Lcd", @@ -828,10 +850,10 @@ "id2show": "", "prefix": "", "postfix": "", - "num": 54 + "num": 55 }, { - "name": "55. LCD экран 1602", + "name": "56. LCD экран 1602", "type": "Reading", "subtype": "Lcd2004", "id": "Lcd", @@ -844,11 +866,11 @@ "id2show": "", "prefix": "", "postfix": "", - "num": 55 + "num": 56 }, { "global": 0, - "name": "56. 7 сегментный дисплей TM16XX", + "name": "57. 7 сегментный дисплей TM16XX", "type": "Writing", "subtype": "TM16XX", "id": "tm", @@ -864,6 +886,6 @@ "intensity": "5", "on": "1", "id2show": "", - "num": 56 + "num": 57 } ] \ No newline at end of file diff --git a/data_svelte/myProfile.json b/data_svelte/myProfile.json index a6e193dc..a7087d24 100644 --- a/data_svelte/myProfile.json +++ b/data_svelte/myProfile.json @@ -120,6 +120,10 @@ "path": "src/modules/virtual/LogingDaily", "active": true }, + { + "path": "src/modules/virtual/owmWeather", + "active": true + }, { "path": "src/modules/virtual/Timer", "active": true diff --git a/myProfile.json b/myProfile.json index a6e193dc..a7087d24 100644 --- a/myProfile.json +++ b/myProfile.json @@ -120,6 +120,10 @@ "path": "src/modules/virtual/LogingDaily", "active": true }, + { + "path": "src/modules/virtual/owmWeather", + "active": true + }, { "path": "src/modules/virtual/Timer", "active": true diff --git a/platformio.ini b/platformio.ini index 2b2e296c..a65c323f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -487,6 +487,7 @@ build_src_filter = + + + + + + + + diff --git a/src/modules/API.cpp b/src/modules/API.cpp index f40b7c13..532ec78a 100644 --- a/src/modules/API.cpp +++ b/src/modules/API.cpp @@ -3,6 +3,7 @@ void* getAPI_Cron(String subtype, String params); void* getAPI_Loging(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_Variable(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_Loging(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_Variable(subtype, params)) != nullptr) return tmpAPI; if ((tmpAPI = getAPI_VariableColor(subtype, params)) != nullptr) return tmpAPI;