Commit Graph
10288 Commits
Author SHA1 Message Date
Theo Arends 59c4d772c5 ESP8266 Remove unused I2C slave support 2026-03-26 18:00:21 +01:00
Jason2866andGitHub dd79556b29 fix: C++26 warning (#24586) 2026-03-26 14:29:42 +01:00
Theo Arends 84d456dbfc Remove obsolete sntp_stop() calls (#24593) 2026-03-26 10:53:32 +01:00
the-way-of-A-WildandGitHub 86bc033c86 Neutralize lwIP SNTP client to prevent heap drain on WiFi reconnects (#24593)
The ESP8266 SDK automatically invokes sntp_init() via
netif_sta_status_callback on every WiFi reconnect. This results in repeated
allocations of UDP PCBs (udp_new()), leading to heap exhaustion and
potential lwIP timeout list corruption due to unmatched sntp_stop() calls.

Tasmota does not use the lwIP SNTP client and relies solely on WifiGetNtp()
for time synchronization. To avoid unnecessary resource usage, wrap and
neutralize sntp_init() and sntp_stop() with no-op implementations.

This prevents UDP PCB allocations and avoids issues caused by repeated
initialization during reconnect cycles.

Additionally, a PlatformIO post-build script has been added to validate
that the linker wraps are correctly applied. The script runs after ELF
generation and uses xtensa-lx106-elf-nm to inspect symbols, ensuring that
the __wrap_sntp_init and __wrap_sntp_stop functions are present in the
final firmware. If the wrappers are missing, the build fails.

Confirmed via firmware disassembly:
- Single call site in netif_sta_status_callback
- Requires linker wraps: --wrap=sntp_init,--wrap=sntp_stop

Fixes: #24566
2026-03-26 10:42:02 +01:00
sfromisandGitHub 4384f9c98a Update my_user_config.h, USER_MODULE (#24590)
`#define MODULE USER_MODULE` needed to have `USER_TEMPLATE` string enabled by default. Better have this hint included in the file.
2026-03-25 12:28:34 +01:00
Christian AndersenandGitHub 3b92a1303a Suppress SML MQTT publish until valid meter data received (#24587)
Use existing dvalid[] array to gate JSON and immediate MQTT output,
preventing initial zero values from corrupting HA statistics on restart.

Signed-off-by: Christian Andersen <public@milindur.de>
2026-03-25 12:27:36 +01:00
beed56f7fc NeoPool always output valid sensitive data (#24573)
Co-authored-by: Norbert Richter <nr@prsolution.eu>
2026-03-23 15:49:33 +01:00
Petr GolovachevandGitHub 57b513b5ed vid6608-xdrv-92: allow set max steps per-motor (#24575) 2026-03-23 15:49:09 +01:00
d1a1bf15c1 NeoPool fix possible IntegerDivideByZero (#24578)
Co-authored-by: Norbert Richter <nr@prsolution.eu>
2026-03-23 15:48:23 +01:00
Theo Arends 38be7c7e23 Add I2C Bus2 support to GDK101 2026-03-21 23:05:40 +01:00
Theo Arends 3f38fe289e Refactor use of MAX_I2C 2026-03-21 22:08:51 +01:00
Theo Arends 954a048d39 Fix command I2CDriver for over 96 2026-03-21 17:23:19 +01:00
Theo Arends 7246748ffb Stop sntp every minute (#24566) 2026-03-19 16:39:33 +01:00
Theo Arends 7fed51de31 Add Environment sensor SCD30 second I2C bus support 2026-03-18 21:53:05 +01:00
Jason2866andGitHub d7533aae2b fix: Regression from PR #24518 forgotten change ESP8266WebServer to TasmotaWebServer (#24568)
* Change Webserver type from ESP8266WebServer to TasmotaWebServer
* Cast webcam resolution to int32_t in WcSetup calls
2026-03-18 16:39:55 +01:00
378e1547c2 Fix uDisplay case 'T' parsing corruption for I80 parallel displays + WT32-SC01 Plus descriptor (#24506)
- Skip :TI (touch I2C) and :TS (touch SPI) lines in case 'T' of the uDisplay
  descriptor parser. These touch config lines are handled separately by
  xdsp_17_universal.ino via strstr(), but case 'T' was matching on the first
  character and unconditionally writing the subsequent values into
  panel_config->epd.lut_full_time/lut_partial_time/update_time. In the
  PanelConfigUnion, these EPD fields overlap with I80 panel bus pin config
  (cs_pin, dc_pin, wr_pin, rd_pin, data_pins), causing parallel displays to
  silently receive corrupted GPIO pin assignments and fail to render.

  The fix checks if the character after 'T' is 'I' or 'S' and skips EPD timing
  parsing for those lines. EPD descriptors using :T,<timing> continue to work
  as before.

- Remove dead reference to berry.lvgl_panel_loaded in xdrv_54_lvgl.ino.
  The member was removed from BerrySupport in commit e4c2cf591 (Berry Extension
  Manager) but the reference in start_lvgl() was left behind, causing a compile
  error when USE_BERRY_LVGL_PANEL is defined.

- Add verified display descriptor for WT32-SC01 Plus (ESP32-S3, ST7796U 480x320,
  8-bit parallel I80, FT5206 capacitive touch). Tested on Tasmota v15.3.0.1 with
  LVGL 9.5.0.

Co-authored-by: Ari Friedman <afriedman@millsupplyco.com>
2026-03-17 22:28:32 +01:00
Theo Arends 17b1a64bee Fix I2cSetClock() 2026-03-16 17:11:42 +01:00
Theo Arends 72111857ce Fix ESP8266 heap drain and exception 29 when DHCP provides NTP server (#24515) 2026-03-16 12:14:35 +01:00
Jason2866andGitHub c446b9a87e Picolib (#24558) 2026-03-16 00:23:12 +01:00
Theo Arends 60f91ffc06 Disable Core sntp using DHCP NTP server (#24515) 2026-03-15 21:40:26 +01:00
Theo Arends f868b61a73 Bump version v15.3.0.3
- Fix Athom esp32 2-3-4 gang change led behaviour after firmware update (#24509)
2026-03-15 14:20:22 +01:00
Jason2866andGitHub 31d4a60d8c Platform 2026.03 (#24547)
* Platform 2026.03

* changes as suggested from Theo
2026-03-14 21:35:28 +01:00
Milko DaskalovandGitHub ff0609d932 LVGL Panel optimizations (#24552)
* set no wait on connect

* removed incremental draw; reduced data moving; reduced touch events

* added set_nowait method to set TCP_NODELAY socket option

* added last chunk indicator for the stream callback

* writebytes optimizations
2026-03-14 15:42:09 +01:00
s-hadingerandGitHub d7c530663b Berry add loglevel to mqtt.publish() (#24551) 2026-03-14 15:03:36 +01:00
s-hadingerandGitHub ac782acef9 Berry remove mdns.stop() (#24549) 2026-03-13 22:49:20 +01:00
s-hadingerandGitHub da48786bf9 Extension LVGL Panel small updates (#24548) 2026-03-13 14:01:37 +01:00
Theo Arends bcca63da76 Add LCD second I2C bus support 2026-03-12 17:52:31 +01:00
Theo Arends a08ced3de4 ESP8266 enable second I2C bus 2026-03-12 14:03:09 +01:00
Theo Arends 450819a7ab Fix BM8563 I2C bus 2 support 2026-03-11 16:02:32 +01:00
Theo Arends 783d18607f Add support for second I2C bus to some sensors 2026-03-11 12:35:25 +01:00
Theo Arends a932b3d991 Prep function MqttPublishPayload() for user control over log level (#21308) 2026-03-10 11:15:48 +01:00
Milko DaskalovandGitHub deb9bc9804 Realtime LVGL_panel screen mirroring using RLE compression (#24535)
* using lv stream callback

* added lv stream callback using rle compression

* added writebytes to submit directly from comptr bytes or string

* updated identation

* fixed identation

* stream callback cleanup

* draw incrementally

* added drag touch

* detect mouse drag

* allow multiple updates in the same chunk

* removed pixelated rendering
2026-03-09 22:44:36 +01:00
s-hadingerandGitHub 1c90d59bbf Crash when shutting down Wifi with 'Wifi 0' (#24536) 2026-03-09 08:28:55 +01:00
Theo Arends ead85023c4 Add second I2C bus support to SGP30 2026-03-08 17:30:23 +01:00
Theo Arends fd68b946a9 ESP8266 redesigned I2C Wire driver to support second I2C bus
- Version v15.3.0.2
- MCP23xxx driver now supports bus2
2026-03-08 14:38:08 +01:00
SteWersandGitHub 856b071c49 Update German language (#24530)
* Update German language

Update German language

* Update de_DE.h
2026-03-07 16:01:42 +01:00
b9beaf6fbd Webcam CSI: allow more complex ISP setups with config files (#24531)
Co-authored-by: Christian Baars <christianbaars@MacStudio-von-Christian.local>
2026-03-07 11:39:36 +01:00
bovirusandGitHub b57ae100ba Italian language update (#24529) 2026-03-06 17:38:28 +01:00
Theo Arends 87a12718ae Add Support for JSON value pair "ARCH" in template being either ESP8266, ESP32, ESP32C2, ESP32C3, ESP32C5, ESP32C6, ESP32H2, ESP32H4, ESP32P4, ESP32S2 or ESP32S3 2026-03-05 15:52:14 +01:00
grmplandGitHub 61be6503c7 Fixing wrong data type in ULP.sleep() (#24526)
Calculating microseconds in unsigned long long as expected by esp_sleep_enable_timer_wakeup
2026-03-05 08:43:53 +01:00
s-hadingerandGitHub 78af45cfda File upload improvements: "/ufsu" api mode, no interrupts disanling, cleaner confirmation page (#24521) 2026-03-04 10:43:14 +01:00
GrzegorzandGitHub 6eec482b79 MiELHVAC Remote Temp Refactor (#24517)
* Update xdrv_44_miel_hvac.ino

* Update xdrv_44_miel_hvac.ino

- added energy sensors POWER, ENERGY TOTAL, FREQUENCY
- other changes and improvements

* Update xdrv_44_miel_hvac.ino

- added all available mode mapping to Home Assistant

* MiELHVAC extend support for Home Assistant

- Description of Changes
Temperature fields as numbers: Updated all temperature outputs (SetTemperature, RoomTemperature, OutdoorTemperature) to be serialized as numeric values (float) in JSON instead of strings. This ensures proper numeric handling in clients and Home Automation platforms.
- Energy, power, and operation time as numbers: Converted PowerUsage, Energy, OperationTime, and timer fields (TimerOn, TimerOff, TimerOnRemaining, TimerOffRemaining) to numeric values in JSON. Previously these were serialized as strings.
- JSON output consistency: All numeric fields now correctly appear as numbers or floats, while mapped fields (modes, fan speed, swing, air direction, prohibit) remain strings.
- Renamed 'Temp' to 'SetTemperture'  in 'HVACSettings'
- Renamed 'Power" to 'PowerState' for SENSOR because of use 'Power' for ENERGY

* MiELHVAC extend support for Home Assistant

 Changed Commands:
 - 'HVACRemoteTemp' to 'HVACSetRemoteTemp'
 - 'HVACRemoteTempClearTime' to 'HVACSetRemoteTempClearTime'

Value of ModeStage:
 - changed 'manual' to 'direct'
 - available values are: 'direct', 'auto_heat', 'auto_dry', 'auto_fan', 'auto_leader'

Other small improvements for Home Assistant Climate Control

* fix check

* fix check

* fix check

* fix

* MiELHVAC Remote Temp Refactor

- fix remote temperature update
- refactor remote temperature code
- added remote temperature to sensor output
2026-03-03 16:23:33 +01:00
s-hadingerandGitHub 6c8fc7e3e6 Don't send extraneous '0\r\n\r\n' with non-chunked HTTP/1.0 (#24518)
* Don't send extraneous '0\r\n\r\n' with non-chunked HTTP/1.0

* Fix compilation

* Fix compilation
2026-03-03 13:07:44 +01:00
s-hadingerandGitHub 0529618f9b MDNS survive a Wifi restart (#24514) 2026-03-03 09:34:04 +01:00
s-hadingerandGitHub 1eb6c0ffe0 Revert "Fix ESP32 reset during WiFi reconnect when mDNS is active (#24358)" (#24507)
This reverts commit 518dbee78b.
2026-02-27 17:33:38 +01:00
s-hadingerandGitHub 4f7e197484 Berry avoid tasmota.wifi() returning bad values when wifi is turned off (#24505) 2026-02-27 16:43:20 +01:00
4a3dd3364c webcam CSI: fix Ethernet (#24501)
Co-authored-by: Christian Baars <christianbaars@MacStudio-von-Christian.local>
2026-02-26 19:04:51 +01:00
GrzegorzandGitHub 14a2c0e47b MiELHVAC extend support for Home Assistant (#24496)
* Update xdrv_44_miel_hvac.ino

* Update xdrv_44_miel_hvac.ino

- added energy sensors POWER, ENERGY TOTAL, FREQUENCY
- other changes and improvements

* Update xdrv_44_miel_hvac.ino

- added all available mode mapping to Home Assistant

* MiELHVAC extend support for Home Assistant

- Description of Changes
Temperature fields as numbers: Updated all temperature outputs (SetTemperature, RoomTemperature, OutdoorTemperature) to be serialized as numeric values (float) in JSON instead of strings. This ensures proper numeric handling in clients and Home Automation platforms.
- Energy, power, and operation time as numbers: Converted PowerUsage, Energy, OperationTime, and timer fields (TimerOn, TimerOff, TimerOnRemaining, TimerOffRemaining) to numeric values in JSON. Previously these were serialized as strings.
- JSON output consistency: All numeric fields now correctly appear as numbers or floats, while mapped fields (modes, fan speed, swing, air direction, prohibit) remain strings.
- Renamed 'Temp' to 'SetTemperture'  in 'HVACSettings'
- Renamed 'Power" to 'PowerState' for SENSOR because of use 'Power' for ENERGY

* MiELHVAC extend support for Home Assistant

 Changed Commands:
 - 'HVACRemoteTemp' to 'HVACSetRemoteTemp'
 - 'HVACRemoteTempClearTime' to 'HVACSetRemoteTempClearTime'

Value of ModeStage:
 - changed 'manual' to 'direct'
 - available values are: 'direct', 'auto_heat', 'auto_dry', 'auto_fan', 'auto_leader'

Other small improvements for Home Assistant Climate Control

* fix check

* fix check

* fix check

* fix
2026-02-26 17:03:07 +01:00
Theo Arends b0be4d8e1f Fix ArtNet buffer overflow (#24362) 2026-02-25 16:20:01 +01:00
utesselandGitHub 518dbee78b Fix ESP32 reset during WiFi reconnect when mDNS is active (#24358)
* Fix ESP32 reset during WiFi reconnect when mDNS is active

Explicitly call MDNS.end() before WiFi.disconnect() in support_wifi.ino.
This prevents a race condition or crash where the mDNS service attempts
to query or use the network interface while it is being torn down.

* Fix: removed lines added again.
2026-02-25 10:39:01 +01:00