From 3e3bfccb584fcae3a274e35c1f461b1c6e8a94f1 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Fri, 12 Jan 2024 12:17:31 +0100 Subject: [PATCH] Bump version v13.3.0.3 --- CHANGELOG.md | 25 ++++++++++---- RELEASENOTES.md | 6 +++- tasmota/include/tasmota_version.h | 2 +- tasmota/my_user_config.h | 1 + .../xdrv_121_gpioviewer.ino | 34 ++++++++++++++++--- .../tasmota_xsns_sensor/xsns_02_analog.ino | 21 ++++++------ 6 files changed, 66 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 879cb98f5..f455a6d5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,24 @@ All notable changes to this project will be documented in this file. ## [Unreleased] - Development -## [13.3.0.2] +## [13.3.0.3] +### Added +- Berry `debug.caller` (#20470) +- GPIO Viewer user selection of assets website now defaults to `https://ota.tasmota.com/tasmota|tasmota32/gpio_viewer/assets` + +### Breaking Changed + +### Changed +- SML update (#20474) + +### Fixed +- Scripter memory leak in `>w x` (#20473) +- ESP8266 GPIO Viewer exception 9 on reading Analog GPIO + +### Removed + + +## [13.3.0.2] 20240111 ### Added - HASPmota type `chart` (#20372) - Berry add support for `tcpclientasync` in `tcpserver` (#20401) @@ -20,9 +37,6 @@ All notable changes to this project will be documented in this file. - Berry provide lightweight options for `tasmota.wifi/eth/memory/rtc` (#20448) - Berry `tasmota.webcolor` (#20454) - Support for pipsolar inverter (#20408) -- Berry `debug.caller` - -### Breaking Changed ### Changed - Renamed button "Consoles" to "Tools" @@ -35,9 +49,6 @@ All notable changes to this project will be documented in this file. ### Fixed - ESP32 Zigbee Aqara attributes (#20452) -### Removed - - ## [13.3.0.1] 20240101 ### Added - Support for Sonoff Basic R4 Magic Switch (#20247) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d17e5cb3c..4ad43ade1 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -116,12 +116,13 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm [Complete list](BUILDS.md) of available feature and sensors. -## Changelog v13.3.0.2 +## Changelog v13.3.0.3 ### Added - Support for CST816S touch interface [#20213](https://github.com/arendst/Tasmota/issues/20213) - Support for Sonoff Basic R4 Magic Switch [#20247](https://github.com/arendst/Tasmota/issues/20247) - Display of active drivers using command ``status 4`` - GPIO Viewer to see realtime GPIO states. Enable with define USE_GPIO_VIEWER +- GPIO Viewer user selection of assets website now defaults to `https://ota.tasmota.com/tasmota|tasmota32/gpio_viewer/assets` - NeoPool hydrolysis FL1 and Redox flag [#20258](https://github.com/arendst/Tasmota/issues/20258) - Support negative power on BL0942 using index 5..8 [#20322](https://github.com/arendst/Tasmota/issues/20322) - Support for pipsolar inverter [#20408](https://github.com/arendst/Tasmota/issues/20408) @@ -139,6 +140,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm - Berry `webserver.header` to read browser sent headers [#20447](https://github.com/arendst/Tasmota/issues/20447) - Berry provide lightweight options for `tasmota.wifi/eth/memory/rtc` [#20448](https://github.com/arendst/Tasmota/issues/20448) - Berry `tasmota.webcolor` [#20454](https://github.com/arendst/Tasmota/issues/20454) +- Berry `debug.caller` [#20470](https://github.com/arendst/Tasmota/issues/20470) - HASPmota `haspmota.page_show()` to change page [#20333](https://github.com/arendst/Tasmota/issues/20333) - HASPmota type `chart` [#20372](https://github.com/arendst/Tasmota/issues/20372) - Matter support for password for remote Tasmota devices [#20296](https://github.com/arendst/Tasmota/issues/20296) @@ -154,11 +156,13 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm - Support syslog updates every sleep or every second if `#define SYSLOG_UPDATE_SECOND` [#20260](https://github.com/arendst/Tasmota/issues/20260) - Header `Host` is now collected by Webserver [#20446](https://github.com/arendst/Tasmota/issues/20446) - Webcam tweaks [#20451](https://github.com/arendst/Tasmota/issues/20451) +- SML update [#20474](https://github.com/arendst/Tasmota/issues/20474) ### Fixed - CVE-2021-36603 Cross Site Scripting (XSS) vulnerability [#12221](https://github.com/arendst/Tasmota/issues/12221) - Syslog server warning caused by lack of field and hostname starting with 'z' [#14689](https://github.com/arendst/Tasmota/issues/14689) - Support for Domoticz floor/room topics. Regression from v12.0.1 [#20299](https://github.com/arendst/Tasmota/issues/20299) +- Scripter memory leak in `>w x` (#20473)[#20473](https://github.com/arendst/Tasmota/issues/20473) - ESP32 piezo ceramic buzzer doesn't buzz [#20118](https://github.com/arendst/Tasmota/issues/20118) - ESP32 Zigbee Aqara attributes [#20452](https://github.com/arendst/Tasmota/issues/20452) - LVGL fix type for lv_imgbtn [#20354](https://github.com/arendst/Tasmota/issues/20354) diff --git a/tasmota/include/tasmota_version.h b/tasmota/include/tasmota_version.h index ac87a0ef4..67c71e010 100644 --- a/tasmota/include/tasmota_version.h +++ b/tasmota/include/tasmota_version.h @@ -20,6 +20,6 @@ #ifndef _TASMOTA_VERSION_H_ #define _TASMOTA_VERSION_H_ -const uint32_t TASMOTA_VERSION = 0x0D030002; // 13.3.0.2 +const uint32_t TASMOTA_VERSION = 0x0D030003; // 13.3.0.3 #endif // _TASMOTA_VERSION_H_ diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index 80f75b0d8..a5b424b0d 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -471,6 +471,7 @@ // #define USE_WEBSEND_RESPONSE // Enable command WebSend response message (+1k code) // #define USE_WEBGETCONFIG // Enable restoring config from external webserver (+0k6) // #define USE_GPIO_VIEWER // Enable GPIO Viewer to see realtime GPIO states (+4k code) +// #define GV_BASE_URL "https://thelastoutpostworkshop.github.io/microcontroller_devkit/gpio_viewer/assets/" // #define GV_SAMPLING_INTERVAL 100 // [GvSampling] milliseconds - Use Tasmota Scheduler (100) or Ticker (20..99,101..1000) #define USE_EMULATION_HUE // Enable Hue Bridge emulation for Alexa (+14k code, +2k mem common) #define USE_EMULATION_WEMO // Enable Belkin WeMo emulation for Alexa (+6k code, +2k mem common) diff --git a/tasmota/tasmota_xdrv_driver/xdrv_121_gpioviewer.ino b/tasmota/tasmota_xdrv_driver/xdrv_121_gpioviewer.ino index ca6a87f96..7d558cc45 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_121_gpioviewer.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_121_gpioviewer.ino @@ -26,7 +26,19 @@ #define GV_KEEP_ALIVE 1000 // milliseconds - If no activity after this do a heap size event anyway -#define GV_BASE_URL "https://thelastoutpostworkshop.github.io/microcontroller_devkit/gpio_viewer/assets/" +//#define GV_BASE_URL "https://thelastoutpostworkshop.github.io/microcontroller_devkit/gpio_viewer/assets/" +#ifdef ESP8266 +#ifndef GV_BASE_URL +#undef GV_BASE_URL // Fix compiler warning +#define GV_BASE_URL "https://ota.tasmota.com/tasmota/gpio_viewer/assets/" +#endif +#endif // ESP8266 +#ifdef ESP32 +#ifndef GV_BASE_URL +#undef GV_BASE_URL // Fix compiler warning +#define GV_BASE_URL "https://ota.tasmota.com/tasmota32/gpio_viewer/assets/" +#endif +#endif // ESP32 const char *GVRelease = "1.0.7"; @@ -196,6 +208,7 @@ void GVMonitorTask(void) { for (uint32_t pin = 0; pin < MAX_GPIO_PIN; pin++) { int currentState = 0; /* + // Skip unconfigured GPIO uint32_t pin_type = GetPin(pin) / 32; if (GPIO_NONE == pin_type) { pintype = GV_DigitalPin; @@ -204,6 +217,7 @@ void GVMonitorTask(void) { } */ #ifdef ESP32 + // Read PWM GPIO int pwm_resolution = ledcReadDutyResolution(pin); if (pwm_resolution > 0) { pintype = GV_PWMPin; @@ -213,6 +227,7 @@ void GVMonitorTask(void) { #endif // ESP32 #ifdef ESP8266 + // Read PWM GPIO int pwm_value = AnalogRead(pin); if (pwm_value > -1) { pintype = GV_PWMPin; @@ -222,11 +237,22 @@ void GVMonitorTask(void) { #endif // ESP8266 else if (AdcPin(pin)) { + // Read Analog (ADC) GPIO pintype = GV_AnalogPin; +/* +#ifdef ESP32 originalValue = AdcRead(pin, 2); - int adc_resolution = (1 << AdcResolution()) - 1; - currentState = changeUIntScale(originalValue, 0, adc_resolution, 0, 255); // bring back to 0..255 - } else { +#endif // ESP32 +#ifdef ESP8266 + // Fix exception 9 if using ticker - GV.sampling != 100 (CallChain: (phy)pm_wakeup_init, (adc)test_tout, ets_timer_arm_new, delay, AdcRead, String6concat, MonitorTask) + originalValue = (GV.sampling != 100) ? analogRead(pin) : AdcRead(pin, 1); +#endif // ESP8266 +*/ + originalValue = AdcRead1(pin); + currentState = changeUIntScale(originalValue, 0, AdcRange(), 0, 255); // bring back to 0..255 + } + else { + // Read digital GPIO pintype = GV_DigitalPin; int value = digitalRead(pin); originalValue = value; diff --git a/tasmota/tasmota_xsns_sensor/xsns_02_analog.ino b/tasmota/tasmota_xsns_sensor/xsns_02_analog.ino index 5dee065f8..7c4d4c75e 100644 --- a/tasmota/tasmota_xsns_sensor/xsns_02_analog.ino +++ b/tasmota/tasmota_xsns_sensor/xsns_02_analog.ino @@ -324,8 +324,8 @@ void AdcInit(void) { } } -uint32_t AdcResolution(void) { - return ANALOG_RESOLUTION; +uint32_t AdcRange(void) { + return ANALOG_RANGE; } bool AdcPin(uint32_t pin) { @@ -337,6 +337,14 @@ bool AdcPin(uint32_t pin) { return false; } +uint16_t AdcRead1(uint32_t pin) { +#ifdef ESP32 + return analogReadMilliVolts(pin) / (ANALOG_V33*1000) * ANALOG_RANGE; // go back from mV to ADC +#else + return analogRead(pin); +#endif +} + uint16_t AdcRead(uint32_t pin, uint32_t factor) { // factor 1 = 2 samples // factor 2 = 4 samples @@ -348,17 +356,10 @@ uint16_t AdcRead(uint32_t pin, uint32_t factor) { uint32_t samples = 1 << factor; uint32_t analog = 0; for (uint32_t i = 0; i < samples; i++) { -#ifdef ESP32 - analog += analogReadMilliVolts(pin); // get the value corrected by calibrated values from the eFuses -#else - analog += analogRead(pin); -#endif + analog += AdcRead1(pin); delay(1); } analog >>= factor; -#ifdef ESP32 - analog = analog/(ANALOG_V33*1000) * ANALOG_RANGE; // go back from mV to ADC -#endif return analog; }