Commit Graph
21731 Commits
Author SHA1 Message Date
Theo Arends 31aa390c45 Update change logs 2026-10-14 15:51:20 +02:00
Adam Matthews c95c241fa3 HttpClientLight: time out reading a body when the server goes silent (#25139)
writeToStreamDataBlock() looped for as long as connected() held, waiting
for the rest of the body with no time limit. A server that stops sending
part way through a body without closing the connection - a computer that
sleeps, a cable pulled, a network that drops between the two ends - leaves
connected() true for ever, so the read never returned. Called from the main
loop, as Berry's webclient get_string() is, it left the device answering
nothing, not even its web page, until it was power-cycled.

Give up after _tcpTimeout without data, returning HTTPC_ERROR_READ_TIMEOUT,
as handleHeaderResponse() already does for the headers. A body that keeps
arriving, however slowly, is unaffected: each piece resets the clock.
2026-10-14 15:12:37 +02:00
s-hadinger 1bb26b29c4 Fix Matter MQTT subscription when Matter is disabled (#25140) 2026-10-14 15:08:29 +02:00
Theo Arends ad60406a38 Update change logs 2026-10-14 14:54:44 +02:00
Theo Arends 4336cd06c4 Add define EMAIL_DISABLE_CHUNKING for ESP32 mail 2026-10-13 16:18:16 +02:00
Zhaoqi Xu b8eb9a5788 Shutter: fix ShutterButton MQTT flag parameters on ESP32 (#25116)
The MQTT flags m1, m2, m3 and mh were stored one slot too high
(position[i-6]), so mh set the triple press flag and m1 wrote before
the start of the position array. mi (mqtt_all) could not be set at all.

Store m1..mh in position[0..3], set mqtt_all from mi and include it in
the command response, as the ESP8266 driver already does.

Fixes #25082
2026-10-13 14:36:15 +02:00
Theo Arends bffbbeca17 Fix possible buffer overflow 2026-10-13 14:34:36 +02:00
Theo Arends 5c295fbcf8 Merge commit from fork
Fix /rst issue
2026-10-12 17:36:25 +02:00
SteWers 54a1527f87 Correct and normalize eQ3/MI battery percentage calculation (#25136)
Replace percentage formulas with `changeUIntScale`. This also corrects the calculation in the eQ3 driver.
2026-10-12 16:54:23 +02:00
Theo Arends 19c9d2c9cd Update change logs 2026-10-12 16:36:58 +02:00
Jason2866 71216f04e6 Fix ESP32 model number in README
Corrected ESP32 model number from ESP32-C2 to ESP32-C61.
2026-10-12 13:05:04 +02:00
Jason2866 3dc69ff8cf Enable tasmota32c61 in build workflow 2026-10-12 12:58:45 +02:00
SoWizard df1d8d5aa3 Matter: clean up incomplete initial subscriptions (#25137) 2026-10-12 11:35:49 +02:00
Jason2866 68157a2629 support for ESP32-C61 (#25135)
* support for ESP32-C61

* disable C61 in CI since there is no safeboot on OTA Server yet
2026-10-11 18:33:11 +02:00
SoWizardands-hadinger f1244e5bb4 Matter: report HTTP bridged-device reachability changes (#25115)
* Matter: report HTTP bridged-device reachability changes

* Update Matter_HTTP_remote.be

* Update http_recovery_tests.be

---------

Co-authored-by: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
2026-10-11 18:02:52 +02:00
bcc37a50ab Matter add Wi-Fi Network Diagnostics cluster (0x0036) (#25126)
* Matter add Wi-Fi Network Diagnostics cluster (0x0036)

Expose BSSID, SecurityType, WiFiVersion, ChannelNumber and RSSI on the
Root endpoint so controllers (Apple Home, Home Assistant) can show which
access point and channel a device uses. BSSID and channel changes are
reported to subscribers when the device roams.

tasmota.wifi() now also reports `channel`, `security` and `phy`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Clamp RSSI

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
2026-10-11 17:41:47 +02:00
LesNewellandClaude Opus 5.5 bf2afdc7f1 Fix Zigbee cluster specific command decoding with uninitialized values (#25124)
Regression from ab38e799a. A GetGroup response could report a huge group
count and stall the device building the group list.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:55:33 +02:00
bovirus 24e00fc33c Update Italian language (#25134) 2026-10-11 13:16:55 +02:00
XJ 87c9724510 BMx280: re-init sensor after it lost its config, skip invalid reads (#25131)
The BME280 can reset itself (e.g. supply glitch) and fall back to sleep
mode; the driver kept computing a constant bogus pressure from the reset
register value until the ESP was restarted.

- check CTRL_MEAS every read, re-run Bmx280Calibrate when not in normal mode
- use I2cValidRead24 and drop 0x800000 (reset/skipped) raw values
- after BMP_FAIL_LIMIT failed reads report null instead of stale values
2026-10-11 11:37:31 +02:00
bovirus 1b13a45ee9 Update it_IT.h (#25133) 2026-10-11 11:36:23 +02:00
s-hadinger ddec734fa1 Berry fix formatting for long strings (#25132) 2026-10-10 19:43:00 +02:00
Theo Arends 6a4077b345 Update change logs 2026-10-10 18:07:39 +02:00
Jason2866 c6b19bb70c Initial ESP32-S31 support (#25130)
* ESP32-S31 support (#588)

* Arduino IDF 6.1 based framework only for S31

* code review changes Thei for tasmota_types.h
2026-10-10 17:50:13 +02:00
Theo Arends d9f4450293 Remove BL0939 temp margin chk (#25117) 2026-10-10 15:08:15 +02:00
SteWers 71f6b9b5bc Add localized eQ3 TRV status labels (#25125)
* Add localized eQ3 TRV status labels

This PR adds missing translation strings for eQ3 TRV status indicators and updates the BLE driver to use localized labels instead of hardcoded text.

* Strikethrough key
2026-10-10 14:50:18 +02:00
db46cbc14d Added Ldo command to simplifyconfiguration of devices with on-board LDO. (#25128)
* copy pins_arduino from tasmota not framework

* move specific P4 settings out of pins_arduino.h

* keep backwards compability

with the option to redefine the specific different P4 board configs

* Keep P4 SD card on SDMMC slot 0 and set hosted MCU pins in default module

Arduino core and libraries do not see my_user_config.h, so without
BOARD_SDMMC_SLOT in pins_arduino.h SD_MMC uses slot 1 which is taken
by ESP-Hosted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add command Ldo<x> <mV> to configure ESP32-P4 LDO3 and LDO4

LDOs are set at boot before any GPIO use. LDO settings of DSI display
descriptor, CSI camera and SD card are only used if not set by command
Ldo and are deprecated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Show clear error if pins_arduino.h for a variant is missing

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Jason2866 <obermeier.johann@googlemail.com>
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:48:43 +02:00
Jason2866 78d0254762 Refactor safeboot platform handling in post_esp32.py (#25129)
to use standard safeboot variant for 2M Tasmota build variants for C2 and C3
2026-10-10 12:47:47 +02:00
SoWizardands-hadinger edd93777ae Matter: add virtual Generic Switch button events via MtrUpdate (#25091)
* Matter: add virtual Generic Switch button events via MtrUpdate

* Matter: add repeated virtual-button memory regression

* Update MATTER_CLASS_HIERARCHY.md

---------

Co-authored-by: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
2026-10-10 10:47:34 +02:00
s-hadinger a55cfa251a Matter support for Light RBG+CT (5 channels) and refactoring of lights (#25123) 2026-10-09 19:34:23 +02:00
s-hadinger e2a665dfca Berry format support width for %c format (#25122) 2026-10-09 18:48:23 +02:00
s-hadinger 84b011242c Add uDisplay/uTouch doc for AI 2026-10-09 18:15:49 +02:00
Theo Arends 2a8dca1b85 Update change logs 2026-10-09 17:17:35 +02:00
s-hadinger 6b9855a49d LVGL option to prefer PSRAM for draw buffers using bit 5 (0x20) of :B in display.ini (#25120) 2026-10-09 16:56:45 +02:00
Theo Arends 696fdb4bb2 Merge branch 'development' of https://github.com/arendst/Tasmota into development 2026-10-09 15:23:28 +02:00
Theo Arends 947feea761 Fix BL0939 temp range out-of-sync (#25117) 2026-10-09 15:23:10 +02:00
LesNewellands-hadinger 53dbdb72dc Fix/dsi dma2d psram buffers (#24949)
* Fix silently-dropped LVGL flush chunks on ESP32-P4 DSI panels

esp_lcd_panel_draw_bitmap()'s DMA2D path takes an internal draw
semaphore with a 0 timeout and returns ESP_ERR_INVALID_STATE (without
drawing anything) if the previous async transfer hasn't completed yet.
DSIPanel::pushColors() ignored that return value, and lv_flush_callback()
always calls lv_disp_flush_ready() regardless, so LVGL believed the
flush succeeded even when the chunk was silently dropped - leaving
stale framebuffer content on screen for that region.

Retry instead of dropping the chunk. The transfer typically completes
in well under 1ms, so poll in short bursts rather than 1ms FreeRTOS
ticks; a bounded retry count still catches a genuinely stuck transfer
and logs it instead of looping forever.

* Allow LVGL DSI draw buffers to use PSRAM on ESP32-P4

lv_pixel_buf/lv_pixel_buf2 previously preferred MALLOC_CAP_INTERNAL,
costing ~120KB of scarce internal SRAM on boards where PSRAM is
otherwise nearly idle (e.g. a 1024x600 DSI panel at 60 flushlines).
Prefer MALLOC_CAP_SPIRAM instead, falling back to internal RAM if
PSRAM is unavailable - safe now that the previous commit fixes the
DMA2D transfer race that PSRAM's slower read speed was exposing.

Also switch the flush-timing debug log from millis() to micros() and
drop its DMA-path exclusion: at a ~60KB/transfer chunk size the whole
operation completes in a few hundred microseconds, so millisecond
resolution just read back 0 or 1 and the DMA path - the one we
actually needed data from - was never logged at all.

* Remove defaulting to PSRAM for now

---------

Co-authored-by: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
2026-10-09 15:22:37 +02:00
SoWizard af56a31050 Matter: complete subscription reports on StatusResponse (#25096) 2026-10-09 14:28:33 +02:00
SteWers 3e62436c24 [EQ3-TRV] Fix increasing column width (#25114) 2026-10-09 14:08:59 +02:00
Theo Arends b16e0e92e0 Bump version v15.6.0.3 2026-10-08 14:51:31 +02:00
SteWers 817d702f33 [EQ3-TRV] Add encryption support (#25113)
- Update EQ3-TRV driver to handle encrypted custom firmware advertisement by using `MIDecryptPayload` from `xsns_62_esp32_mi_ble`
- Enhance and lean WebUI generation
2026-10-08 14:23:38 +02:00
NHY e1cca87116 Merge commit from fork 2026-10-08 14:18:34 +02:00
Theo Arends 68e228005b Update change logs 2026-10-08 13:13:05 +02:00
s-hadinger 0427a73d08 Disable CDC on esp-emu (#25112) 2026-10-06 22:27:26 +02:00
s-hadinger f01609fa73 Command HwDump to dump detailed hardware GPIO configuration (#25111)
* Command `HwDump` to dump detailed hardware GPIO configuration

* Feature disabled by default
2026-10-06 21:00:57 +02:00
Jason2866 5f3f8c97df Improve safeboot binary fetching logic (#25107)
Enhanced error handling for safeboot binary download and validation.
2026-10-06 12:53:46 +02:00
s-hadinger 33bfcf4578 Fix PWM on CDC GPIO (#25106) 2026-10-05 23:31:09 +02:00
SteWers 25bb0ee2c7 Refresh EQ3 web UI (#25105)
- Rework of the eQ-3 TRV device view to show a compact status row
- Use shared signal-strength indicator styling and remove duplicate CSS from Zigbee and MI BLE pages.
- Extend the MQTT payload with `BattVolt` field
2026-10-05 23:22:36 +02:00
s-hadinger 11ba5be41b Berry fix varname (#25104) 2026-10-05 10:47:33 +02:00
Theo Arends 08792a7aa6 Update change logs 2026-10-04 14:46:43 +02:00
pebl-hankandClaude Opus 5.5 ae80aa82e9 OpenTherm: support the second heating circuit (CH2) (#25098)
The driver could already enable CH2 (ot_flags CH2, master status bit 4)
but never sent the CH2 control setpoint (data-id 8) nor read the CH2 flow
temperature (data-id 31).

- ot_tboiler2: CH2 setpoint, written only while CH2 is enabled and on
  change (same tolerance as ot_tboiler); runtime value, starts with the
  saved CH setpoint after a restart (no Settings change)
- ot_ch2: runtime CH2 enable, counterpart of ot_ch (no flash write)
- telemetry BTMP2 and TB2, web lines for CH2

Both commands reuse the tboiler/ch handlers via the command index.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 14:43:48 +02:00