Commit Graph
28938 Commits
Author SHA1 Message Date
J. Nick Koston 7b8ad7a2e0 Merge remote-tracking branch 'upstream/uart-esp8266-wake-on-rx' into integration 2026-05-22 14:27:02 -05:00
J. Nick Koston 8c37e78e70 Merge remote-tracking branch 'upstream/esp8266-delay-os-suspend' into integration 2026-05-22 14:26:46 -05:00
J. Nick Koston 6cb131ce54 [esp8266] Use os_timer-based esp_delay() in delay()
Replace the poll-based busy-wait introduced in #15662 with a call to
Arduino's 1-arg esp_delay(), which uses os_timer + esp_suspend to
properly suspend the cont task for the requested duration.

The busy-wait only yielded via optimistic_yield(1000) once 1 ms had
elapsed since the last task switch, so short waits like delay(1) often
finished without ever yielding. That starved the SDK and extended
interrupt latency, breaking timing sensitive interrupt-driven code such
as the ESP8266 software-serial RX path used by fingerprint_grow.

esp_delay()'s 1-arg form does not itself call millis(), so the slow
Arduino millis() body is not pulled into IRAM by this path; the
--wrap=millis goal of #15662 is preserved.

Fixes #16558
2026-05-22 07:51:49 -05:00
J. Nick Koston 9eee8ebb64 [uart] Wake main loop on ESP8266 software serial RX
The ESP8266 software serial GPIO ISR decodes a full byte into the
RX buffer, then returns. With the 2026.5.0 loop cadence change the
byte may sit unread for up to one loop_interval_ tick (~16 ms),
which breaks timing-sensitive components (e.g. fingerprint_grow)
that poll read() in a tight setup() loop and time out before bytes
appear.

Call wake_loop_isrsafe() from the ISR after the byte is buffered,
mirroring the ESP-IDF UART path (and the same pattern ratgdo uses
via SoftwareSerial::onReceive). The wake call is a single inline
flag set plus esp_schedule(); IRAM-safe and essentially free.

Gated on USE_UART_WAKE_LOOP_ON_RX, now enabled by default for
ESP8266 (in addition to ESP32) when networking is configured.
2026-05-22 07:49:40 -05:00
Kevin Ahrendt 0b5e7ae8fa [sendspin] Bump sendspin-cpp to v0.6.1 (#16553) 2026-05-22 06:43:08 -04:00
Jesse Hills 0b2eb6481f [light] Add light.effect.next / light.effect.previous actions (#16491) 2026-05-22 13:42:50 +12:00
Jesse Hills 1d3eea098e [core] Support YAML frontmatter for arbitrary user metadata (#16552) 2026-05-22 13:00:22 +12:00
J. Nick Koston 383248e53c Merge remote-tracking branch 'upstream/dev' into integration 2026-05-21 17:48:27 -05:00
J. Nick Koston b07934d726 Merge remote-tracking branch 'upstream/dev' into integration 2026-05-21 17:48:19 -05:00
dependabot[bot]andJ. Nick Koston 4ff8eb4b15 Bump ruff from 0.15.13 to 0.15.14 (#16543)
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 22:08:56 +00:00
J. Nick Koston aea1e4d136 [core] Refresh compiled config cache after upload/logs fallback (#16548) 2026-05-21 17:05:17 -05:00
Jonathan Swoboda 38b8b41ccc [sx126x] Assert NSS before wait_busy so commands wake the chip from sleep (#16546) 2026-05-21 18:03:07 -04:00
J. Nick Koston 96eced0378 [api] Break api_connection/api_server include cycle to drop custom unique_ptr deleter (#16542) 2026-05-21 15:42:57 -05:00
J. Nick Koston 21fc8158e7 Merge remote-tracking branch 'upstream/api-break-circular-include' into integration 2026-05-21 14:48:58 -05:00
J. Nick Koston 22ae85a2ed [bluetooth_proxy] Add direct api_server.h include lost via api_connection.h refactor 2026-05-21 14:17:14 -05:00
J. Nick Koston 7443a65541 [api] Trim verbose comments in include refactor 2026-05-21 14:06:18 -05:00
J. Nick Koston 419fb99fdb [api] Move APIConnection inlines into api_connection_buffer.h
Pull encode_to_buffer and get_batch_delay_ms_ out of the tail of
api_server.h into a dedicated api_connection_buffer.h so api_server.h no
longer carries APIConnection method bodies. api_connection.cpp includes
api_connection_buffer.h instead of api_server.h; the new header pulls
api_server.h in to keep APIServer complete at the inline-definition site.

No behavioral change; just file organisation on top of the previous
include-cycle break.
2026-05-21 14:03:26 -05:00
J. Nick Koston 8dd594afa2 [api] Break api_connection/api_server include cycle to drop custom unique_ptr deleter
api_connection.h now forward-declares APIServer instead of including
api_server.h, and api_server.h includes api_connection.h before clients_
is declared. With APIConnection complete at that point, libc++ no longer
trips the incomplete-type assert in default_delete<APIConnection> when
parsing std::array<unique_ptr<APIConnection>, MAX_API_CONNECTIONS>, so
the custom APIConnectionDeleter introduced in #16050 is no longer needed.

The two APIConnection inline methods that touched APIServer
(encode_to_buffer, get_batch_delay_ms_) are now defined at the bottom of
api_server.h, where APIServer is complete; api_connection.cpp gains a
direct include of api_server.h so those definitions are visible there.

Verified locally on macOS host platform with python3.14 -m esphome
compile (the path that reproduces the libc++ error). Noise and plaintext
integration tests pass.
2026-05-21 13:55:17 -05:00
Jonathan Swoboda 1ea95264bd [tuya] Restore null guard on status_pin lost in #16353 (#16539) 2026-05-21 18:08:09 +00:00
Jonathan Swoboda d2bda0a402 [esp32] Defer esp_panic_handler wrap so arduino-esp32 IDF component skips it (#16538) 2026-05-21 14:03:55 -04:00
Jonathan Swoboda 56fd77e4c8 [espidf] Honor the dict shorthand for library.json dependencies (#16537) 2026-05-21 13:01:54 -05:00
Jonathan Swoboda 3719ea740a [espidf] Default to remote HEAD when cg.add_library URL has no #ref (#16535) 2026-05-21 13:01:19 -05:00
Jonathan Swoboda 750ae56778 [espidf] Backport ninja linux-arm64 entry into tools.json on aarch64 hosts (#16527) 2026-05-21 12:05:27 -04:00
Kevin Ahrendt 01494f7431 [audio] Bump esp-audio-libs to v3.1.0 (#16519) 2026-05-21 11:57:32 -04:00
J. Nick Koston 233a60f106 [ci] Pin uv version in setup-uv to fix Windows manifest fetch flake (#16534) 2026-05-21 10:53:34 -05:00
Jonathan Swoboda e0076cb1a8 [core] Persist & restore CORE.toolchain through StorageJSON (#16531) 2026-05-21 10:37:46 -05:00
Jonathan Swoboda b619e3e8c7 [espidf] Write version.txt after extract so bootloader shows the real version (#16532) 2026-05-21 10:37:10 -05:00
Jonathan Swoboda f2bfe5cd17 [espidf] Fix tarfile extract crashing on Python 3.11 with None mode (#16530) 2026-05-21 10:36:27 -05:00
Jonathan Swoboda 90715373f2 [espidf] Filter noisy 'git rev-parse' errors when .git is stripped (#16521) 2026-05-21 10:35:51 -05:00
Jonathan Swoboda 52e7d3ccfb [esp32] Use new sdkconfig key names that replaced deprecated ones (#16522) 2026-05-21 10:35:25 -05:00
dependabot[bot] a70e358cea Bump zeroconf from 0.149.13 to 0.149.16 (#16533)
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 09:55:28 -05:00
dependabot[bot] 43a1c2067e Bump zeroconf from 0.149.12 to 0.149.13 (#16520)
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 08:28:09 -05:00
Jesse Hills 11760307f7 Merge branch 'release' into dev 2026-05-21 13:49:17 +12:00
Jesse Hills 15c546b809 Merge pull request #16523 from esphome/bump-2026.5.0
2026.5.0
2026.5.0
2026-05-21 13:48:28 +12:00
Jesse Hills 104c8bed41 Bump version to 2026.5.0 2026-05-21 11:16:58 +12:00
Jesse Hills 49bfa12eb7 Merge branch 'beta' into dev 2026-05-21 10:14:14 +12:00
Jesse Hills ca859de212 Merge pull request #16518 from esphome/bump-2026.5.0b4
2026.5.0b4
2026.5.0b4
2026-05-21 10:13:39 +12:00
Jesse Hills de783e72d5 Bump version to 2026.5.0b4 2026-05-21 09:10:52 +12:00
Jonathan Swoboda cd7e2d79c4 [esp32] Decouple esp-idf toolchain version check from PIO, honor framework source: override (#16516) 2026-05-21 09:10:52 +12:00
Jonathan Swoboda ecf823b871 [espidf] Drop version field from generated idf_component.yml (#16511) 2026-05-21 09:10:52 +12:00
dependabot[bot] 9fdad68138 Bump aioesphomeapi from 45.0.3 to 45.0.4 (#16513)
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 09:10:51 +12:00
dependabot[bot] b79a306d02 Bump zeroconf from 0.149.7 to 0.149.12 (#16510)
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 09:10:51 +12:00
Jonathan Swoboda 870f628637 [esp32] Decouple esp-idf toolchain version check from PIO, honor framework source: override (#16516) 2026-05-20 20:40:59 +00:00
Jonathan Swoboda 52c9a2d07b [espidf] Drop version field from generated idf_component.yml (#16511) 2026-05-20 14:31:58 -04:00
Jonathan Swoboda 60afad442c [esp32] Fix sdkconfig int values silently clamped to default (#16515) 2026-05-20 13:36:18 -04:00
dependabot[bot] fbe212944b Bump aioesphomeapi from 45.0.3 to 45.0.4 (#16513)
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 10:51:53 -05:00
dependabot[bot] 8927ade789 Bump zeroconf from 0.149.7 to 0.149.12 (#16510)
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 15:40:20 +00:00
Jesse Hills 63fe977adb Merge branch 'beta' into dev 2026-05-20 14:34:33 +12:00
Jesse Hills 94badfcb19 Merge pull request #16507 from esphome/bump-2026.5.0b3
2026.5.0b3
2026.5.0b3
2026-05-20 14:33:57 +12:00
Jesse Hills 19c4da2aa5 Bump version to 2026.5.0b3 2026-05-20 12:53:26 +12:00