Merge branch 'development' into prerelease-15.2.0
This commit is contained in:
commit
4a32146d99
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -7,7 +7,7 @@
|
||||
- [ ] Only relevant files were touched
|
||||
- [ ] Only one feature/fix was added per PR and the code change compiles without warnings
|
||||
- [ ] The code change is tested and works with Tasmota core ESP8266 V.2.7.8
|
||||
- [ ] The code change is tested and works with Tasmota core ESP32 V.3.1.6
|
||||
- [ ] The code change is tested and works with Tasmota core ESP32 V.3.1.7
|
||||
- [ ] I accept the [CLA](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md#contributor-license-agreement-cla).
|
||||
|
||||
_NOTE: The code change must pass CI tests. **Your PR cannot be merged unless tests pass**_
|
||||
|
||||
@ -18,6 +18,7 @@ All notable changes to this project will be documented in this file.
|
||||
### Changed
|
||||
- ESP32 Platform from 2025.11.30 to 2025.11.31, Framework (Arduino Core) from v3.1.5 to v3.1.6 and IDF from v5.3.4.251110 to v5.3.4.251110 (#24146)
|
||||
- Refactored DALI using TasmotaDali library v1.0.0 adding frame receive buffer
|
||||
- ESP32 Platform from 2025.11.31 to 2025.12.30, Framework (Arduino Core) from v3.1.6 to v3.1.7 and IDF from v5.3.4.251110 to v5.3.4.20251205 (#24212)
|
||||
|
||||
### Fixed
|
||||
- ESP32-P4 Hosted MCU updated to v2.6.6 solving WiFi boot issues (#24146)
|
||||
@ -25,6 +26,7 @@ All notable changes to this project will be documented in this file.
|
||||
- PCA9685 V2 driver PWMTO fading logic and overflow (#24159)
|
||||
- RGBW handling in TasmotaLED and xlgt_01_ws2812_esp32 (#24172)
|
||||
- ArtNet single light color mapping using `ChannelRemap` (#24058)
|
||||
- Thermostat temperature unit (#24213)
|
||||
|
||||
## [15.1.0.2] 20251122
|
||||
### Added
|
||||
|
||||
@ -36,9 +36,9 @@ While fallback or downgrading is common practice it was never supported due to S
|
||||
|
||||
This release will be supported from ESP8266/Arduino library Core version **2.7.8** due to reported security and stability issues on previous Core version. This will also support gzipped binaries.
|
||||
|
||||
This release will be supported from ESP32/Arduino library Core version **v3.1.6**.
|
||||
This release will be supported from ESP32/Arduino library Core version **v3.1.7**.
|
||||
|
||||
Support of ESP8266 Core versions before 2.7.8 and ESP32 Core versions before v3.1.6 have been removed.
|
||||
Support of ESP8266 Core versions before 2.7.8 and ESP32 Core versions before v3.1.7 have been removed.
|
||||
|
||||
## Initial configuration tools
|
||||
|
||||
@ -76,7 +76,7 @@ Historical binaries can be downloaded from
|
||||
The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz``
|
||||
|
||||
### ESP32, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-P4, ESP32-S2 and ESP32-S3 based
|
||||
The following binary downloads have been compiled with ESP32/Arduino library core version **v3.1.6**.
|
||||
The following binary downloads have been compiled with ESP32/Arduino library core version **v3.1.7**.
|
||||
|
||||
- **tasmota32.bin** = The Tasmota version with most drivers including additional sensors and KNX for 4M+ flash. **RECOMMENDED RELEASE BINARY**
|
||||
- **tasmota32solo1.bin** = The Tasmota version with most drivers including additional sensors and KNX for single core ESP32 and 4M+ flash.
|
||||
@ -133,7 +133,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
|
||||
- Berry `tasmota.micros()` to get time in microseconds [#24192](https://github.com/arendst/Tasmota/issues/24192)
|
||||
|
||||
### Changed
|
||||
- ESP32 Platform from 2025.11.30 to 2025.11.31, Framework (Arduino Core) from v3.1.5 to v3.1.6 and IDF from v5.3.4.250826 to v5.3.4.251110 [#24146](https://github.com/arendst/Tasmota/issues/24118)
|
||||
- ESP32 Platform from 2025.11.30 to 2025.12.30, Framework (Arduino Core) from v3.1.5 to v3.1.7 and IDF from v5.3.4.250826 to v5.3.4.20251205 [#24212](https://github.com/arendst/Tasmota/issues/24212)
|
||||
- LVGL library from v9.3.0 to v9.4.0 [#24028](https://github.com/arendst/Tasmota/issues/24028)
|
||||
- JPEGDEC library from v1.8.3 to v1.8.4 [#24120](https://github.com/arendst/Tasmota/issues/24120)
|
||||
- GPIOViewer from v1.6.3 to v1.7.0
|
||||
@ -149,6 +149,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
|
||||
- DALI protocol errors
|
||||
- RGBW handling in TasmotaLED and xlgt_01_ws2812_esp32 [#24172](https://github.com/arendst/Tasmota/issues/24172)
|
||||
- ArtNet single light color mapping using `ChannelRemap` [#24058](https://github.com/arendst/Tasmota/issues/24058)
|
||||
- Thermostat temperature unit [#24213](https://github.com/arendst/Tasmota/issues/24213)
|
||||
- TLS fix ECDSA and add `SetOption165 1` to enable ECDSA in addition to RSA [#24000](https://github.com/arendst/Tasmota/issues/24000)
|
||||
- ESP32-P4 Hosted MCU updated to v2.6.6 solving WiFi boot issues [#24146](https://github.com/arendst/Tasmota/issues/24118)
|
||||
- ESP32-Solo1 using pre-compiled Arduino libraries [#24146](https://github.com/arendst/Tasmota/issues/24118)
|
||||
|
||||
@ -97,7 +97,7 @@ custom_component_remove =
|
||||
espressif/cmake_utilities
|
||||
|
||||
[core32]
|
||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/2025.11.31/platform-espressif32.zip
|
||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/2025.12.30/platform-espressif32.zip
|
||||
platform_packages =
|
||||
build_unflags = ${esp32_defaults.build_unflags}
|
||||
build_flags = ${esp32_defaults.build_flags}
|
||||
|
||||
@ -201,8 +201,8 @@ struct THERMOSTAT {
|
||||
uint32_t time_ctr_checkpoint = 0; // Time to finalize the control cycle within the PI strategy or to switch to PI from Rampup in seconds
|
||||
uint32_t time_ctr_changepoint = 0; // Time until switching off output within the controller in seconds
|
||||
int32_t temp_measured_gradient = 0; // Temperature measured gradient from sensor in thousandths of degrees per hour
|
||||
int16_t temp_target_level = THERMOSTAT_TEMP_INIT; // Target level of the thermostat in tenths of degrees
|
||||
int16_t temp_target_level_ctr = THERMOSTAT_TEMP_INIT; // Target level set for the controller
|
||||
int16_t temp_target_level = THERMOSTAT_TEMP_INIT; // Target level of the thermostat in tenths of degrees celsius
|
||||
int16_t temp_target_level_ctr = THERMOSTAT_TEMP_INIT; // Target level set for the controller in tenths of degrees celsius
|
||||
int16_t temp_pi_accum_error = 0; // Temperature accumulated error for the PI controller in hundredths of degrees
|
||||
int16_t temp_pi_error = 0; // Temperature error for the PI controller in hundredths of degrees
|
||||
int32_t time_proportional_pi; // Time proportional part of the PI controller
|
||||
@ -1402,7 +1402,7 @@ void ThermostatGetLocalSensor(uint8_t ctr_output) {
|
||||
JsonParserToken value_token = root[sensor_name].getObject()[PSTR(D_JSON_TEMPERATURE)];
|
||||
if (value_token.isNum()) {
|
||||
int16_t value = value_token.getFloat() * 10;
|
||||
if (Thermostat[ctr_output].status.temp_format == TEMP_FAHRENHEIT) {
|
||||
if (Settings->flag.temperature_conversion) { // SetOption8 - Local Sensor provided in Fahrenheit
|
||||
value = ThermostatFahrenheitToCelsius(value, TEMP_CONV_ABSOLUTE);
|
||||
}
|
||||
if ( (value >= -1000)
|
||||
@ -2085,18 +2085,27 @@ void ThermostatShow(uint8_t ctr_output, bool json)
|
||||
} else {
|
||||
char c_unit = Thermostat[ctr_output].status.temp_format==TEMP_CELSIUS ? D_UNIT_CELSIUS[0] : D_UNIT_FAHRENHEIT[0];
|
||||
float f_temperature;
|
||||
int32_t value;
|
||||
|
||||
WSContentSend_P(HTTP_THERMOSTAT_INFO, ctr_output + 1, D_ENABLED);
|
||||
|
||||
f_temperature = Thermostat[ctr_output].temp_target_level / 10.0f;
|
||||
value = Thermostat[ctr_output].temp_target_level; // in tenths of degrees Celsius
|
||||
if (Thermostat[ctr_output].status.temp_format == TEMP_FAHRENHEIT) {
|
||||
value = ThermostatCelsiusToFahrenheit(value, TEMP_CONV_ABSOLUTE);
|
||||
}
|
||||
f_temperature = value / 10.0f;
|
||||
WSContentSend_PD(HTTP_THERMOSTAT_TEMPERATURE, D_THERMOSTAT_SET_POINT, Settings->flag2.temperature_resolution, &f_temperature, c_unit);
|
||||
|
||||
f_temperature = Thermostat[ctr_output].temp_measured / 10.0f;
|
||||
value = Thermostat[ctr_output].temp_measured; // in tenths of degrees Celsius
|
||||
if (Thermostat[ctr_output].status.temp_format == TEMP_FAHRENHEIT) {
|
||||
value = ThermostatCelsiusToFahrenheit(value, TEMP_CONV_ABSOLUTE);
|
||||
}
|
||||
f_temperature = value / 10.0f;
|
||||
WSContentSend_PD(HTTP_THERMOSTAT_TEMPERATURE, D_THERMOSTAT_SENSOR, Settings->flag2.temperature_resolution, &f_temperature, c_unit);
|
||||
|
||||
int16_t value = Thermostat[ctr_output].temp_measured_gradient;
|
||||
value = Thermostat[ctr_output].temp_measured_gradient;
|
||||
if (Thermostat[ctr_output].status.temp_format == TEMP_FAHRENHEIT) {
|
||||
value = ThermostatCelsiusToFahrenheit((int32_t)Thermostat[ctr_output].temp_measured_gradient, TEMP_CONV_RELATIVE);
|
||||
value = ThermostatCelsiusToFahrenheit(value, TEMP_CONV_RELATIVE);
|
||||
}
|
||||
f_temperature = abs(value) / 1000.0f;
|
||||
WSContentSend_PD(HTTP_THERMOSTAT_TEMP_GRAD, value < 0 ? '-' : '+', Settings->flag2.temperature_resolution, &f_temperature, c_unit);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user