Commit Graph
21749 Commits
Author SHA1 Message Date
s-hadinger 6389d75c66 LVGL/HASPmota visual touch pointer (dot under finger) (#25158) 2026-10-19 09:49:11 +02:00
s-hadinger fb629eddb5 uDisplay support for SPI QSPI displays (#25156) 2026-10-18 18:36:41 +02:00
Theo Arends 6776e2ea9a Fix Modbus OOB 2026-10-17 14:17:59 +02:00
Theo Arends ba3ead1afc Support OUI wildcard for command MI32Keys in case multiple devices use same bindkey like IoTorero: mi32keys 0C3D5EFFFFFF=48656c6c6f204254486f6d65210d0a00 2026-10-17 12:42:18 +02:00
Theo Arends c00ece8681 Fix hostByName returning negative values when lookup failed 2026-10-16 16:26:13 +02:00
2289c619bb Fix SR04 serial checksum for AJ-SR04M (#25147)
The AJ-SR04M sends FF H L SUM with SUM = H + L (header excluded).
Accept that form as well as FF + H + L when the header byte is 0xFF.


Claude-Session: https://claude.ai/code/session_01Ma8u1on2wkeXraAzZBn2iM

Co-authored-by: Pacif13r <22977757+Pacif13r@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:13:59 +02:00
Theo Arends dad74600a1 Fix possible OOB 2026-10-16 11:41:14 +02:00
Theo Arends db29ff1f17 Fix buffer overflow 2026-10-16 10:54:42 +02:00
Theo Arends a0ff1cdc57 Bump version v16.0.0.1 2026-10-16 10:10:37 +02:00
Theo Arends 8402d7d477 Update change logs 2026-10-16 09:25:34 +02:00
s-hadinger 47f3dbc09f Berry webclient.connected() was implemented but not exposed (#25145) 2026-10-15 17:30:25 +02:00
Adam Matthews ece53a64f8 AsyncHttpClientLight: end a body read when the server goes silent or closes (#25141)
* AsyncHttpClientLight: time out reading a body when the server goes silent

writeToStreamDataBlock() waited for the rest of a body for as long as
connected() held. A server that stops sending part way through without
closing leaves connected() true, so the worker never finishes and the
caller, waiting in runJob(), never returns. Give up after _tcpTimeout
without data and return HTTPC_ERROR_READ_TIMEOUT, as HttpClientLight
now does (#25139).

* AsyncHttpClientLight: notice when the server closes after the last byte

AsyncTcpAdapter only saw the peer close inside read(), and callers only
read when available() > 0. A body without Content-Length that ends with
the server closing left connected() true for ever, so
writeToStreamDataBlock() never returned. connected() now peeks at the
socket, as WiFiClient::connected() does: data still buffered keeps it
connected, an orderly close after it does not.

* AsyncHttpClientLight: address review of the read timeout

- connected() only reports a peer close and no longer calls stop(): it can
  be called from another task than the worker using the socket.
- writeToStreamDataBlock() closes the connection on a read timeout, as the
  chunked readers do, so a stalled connection is not reused.
- readBodyToStreamString(): the identity branch used by async GET/POST now
  times out after _tcpTimeout without data, and notices a close: with no
  Content-Length it ends the body, with one it is a lost connection.
2026-10-15 15:10:46 +02:00
Theo Arends 0edebb90a6 Fix BTHome binary event handling 2026-10-15 14:55:13 +02:00
Theo Arends 3da77ba044 Update change logs 2026-10-15 10:40:00 +02:00
Theo Arends fbe55333e8 Update change logs 2026-10-15 10:36:25 +02:00
s-hadinger a2f0c87141 LVGL library from v9.5.0 to v9.6.0 (#25144) 2026-10-15 09:41:19 +02:00
Adam Matthews 90754c5b93 AsyncHttpClientLight: finish a chunked body at the empty line after the last chunk (#25142)
After the zero-size chunk the readers read one line unconditionally,
then waited for another empty line. The first read already consumed the
empty line that ends the body, so every chunked body waited for a line
that never came and failed with HTTPC_ERROR_READ_TIMEOUT after
_tcpTimeout. Read trailer lines up to the first empty one instead.
2026-10-15 09:35:15 +02:00
Theo Arends 770960cec8 Add BTHome events to GUI 2026-10-14 17:20:10 +02:00
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