J. Nick Koston
5a7b1c411e
[cli] DRY up --prebuilt-dir helpers
...
Two small simplifications surfaced by re-reading the diff with a 'is
this DRY?' lens:
- Extract _missing_prebuilt_flash_tool(): the
_ensure_platform_packages_for_prebuilt_upload helper had two
near-identical 'if platform check; if finder() is not None return 0;
tool_label = ...' blocks. Lift the platform->(tool_name) selection
into a tiny helper so the early-return is one line and the install
body is no longer interleaved with the platform dispatch.
- Collapse the two near-duplicate 'firmware not found' return points in
upload_using_picotool. Both branches just selected an error message
and returned 1; reorder so the message selection happens first and
there's a single 'return 1'.
No behavior change; pure refactor. 587 unit tests pass.
Issue: esphome/device-builder#572
2026-05-11 16:00:42 -05:00
J. Nick Koston
bcac422e9e
[cli] Address self-review on --prebuilt-dir
...
- CORE.firmware_bin priority is now platform-aware: RP2040 + libretiny
prefer firmware.uf2 over firmware.bin (picotool / ltchiptool need the
UF2 header for address/family info); ESP* prefer firmware.bin. The
prior code returned .bin first for all platforms, which would have
silently flashed the wrong artifact on RP2040 if a hand-staged dir
shipped both files. New tests guard both directions.
- _rp2040_serial_reset_to_bootsel: check picotool exists *before*
triggering the 1200bps touch. If picotool is missing, the touch
would have left the device stranded in BOOTSEL with nothing able to
flash it; with this order the device stays on the old firmware and
can be retried.
- upload_using_ltchiptool: error message now mentions both firmware.uf2
and firmware.bin since CORE.firmware_bin resolves either.
- prepare_platform_for_upload: return type tightened to int (capture_stdout
is hardcoded False; assert the run helper returns int so a future caller
that flips capture_stdout fails loudly instead of silently treating a
string as success). Caller in __main__.py is now a one-liner.
- _load_idedata: narrative comment in the prebuilt branch shortened.
_resolve_prebuilt_idedata_paths docstring now notes the
POSIX-absolute-on-Windows quirk ("/foo/bar" is rooted but not absolute
on win32; hand-staged dirs need OS-appropriate absolute paths).
- New defensive-coverage tests: _resolve_prebuilt_idedata_paths with
missing prog_path, no extra section, empty flash_images list.
Issue: esphome/device-builder#572
Issue: esphome/device-builder#570
2026-05-11 13:32:36 -05:00
J. Nick Koston
c870ad328e
[cli] Fix Windows pytest: use platform-absolute path in --prebuilt-dir test
...
The 'absolute paths pass through unchanged' test for _load_idedata
hardcoded a POSIX-style absolute path ('/somewhere/else/bootloader.bin').
On Windows, Path.is_absolute() returns False for that shape -- absolute
paths there require a drive letter -- so _resolve_prebuilt_idedata_paths
classified it as relative and prepended CORE.prebuilt_dir, breaking the
test's assertion.
Replace the hardcoded POSIX path with a tmp_path-rooted one so it's
platform-absolute on every runner. No production code change; this is a
test-only fix surfaced by the windows-latest pytest matrix on PR #16348 .
Note: the macOS 3.14 failure on the same CI run is a flaky timing test
(tests/dashboard/test_web_server.py::test_dashboard_subscriber_entries_update_interval,
50ms sleep expecting 2+ iterations at 10ms) unrelated to this PR.
Issue: esphome/device-builder#572
2026-05-11 11:09:36 -05:00
J. Nick Koston
1ba8b838da
[cli] Address Copilot review on --prebuilt-dir
...
- get_ltchiptool_path: use 'Scripts/' on Windows, 'bin/' elsewhere when
falling back to PlatformIO's libretiny penv. CPython venvs put scripts
under Scripts/ on win32 and bin/ on POSIX; the prior hardcoded 'bin'
would never have found ltchiptool on Windows.
- _load_idedata: wrap json.loads on the prebuilt idedata.json in a
try/except and re-raise as EsphomeError with a one-line diagnostic so
the failure mode is a clean error instead of an unhandled
JSONDecodeError stack trace. Update the surrounding comment to match
the new behavior.
- CORE.prebuilt_dir docstring: drop the dead 'docs/architecture/...'
pointer (no docs/ tree in this repo); point at esphome-docs#6600 and
device-builder#572 instead.
New regression test:
- test_load_idedata_prebuilt_malformed_json_raises_esphomeerror
Updated test:
- test_get_ltchiptool_path_pio_penv now uses Scripts/ on win32 to match
the new platform-aware lookup.
Issue: esphome/device-builder#572
Issue: esphome/device-builder#570
2026-05-11 10:58:17 -05:00
J. Nick Koston
956c2a9780
Merge remote-tracking branch 'upstream/dev' into core-prebuilt-dir-upload
...
# Conflicts:
# esphome/__main__.py
2026-05-11 10:55:31 -05:00
J. Nick Koston
a52ca4f80a
[ota] Implement host platform OTA backend with re-exec for integration testing ( #16304 )
2026-05-11 10:51:08 -05:00
luar123
4ac7bc4606
[zigbee] Add sensor support on esp32 ( #16026 )
2026-05-11 10:51:47 -04:00
tomaszduda23
8cf0eba043
[nrf52][zephyr] prepare for native builds ( #16193 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-05-11 14:47:06 +00:00
Keith Burzinski
30e2f7e8e9
[thermostat] Fix supplemental action never firing via max run time ( #16308 )
2026-05-11 10:13:43 -04:00
@RubenKelevra
a7299cb95b
[esp32_camera] Downgrade esp32-camera to 2.1.5 ( #16293 )
2026-05-11 10:09:15 -04:00
tomaszduda23
2edb7ca5c2
[nrf52] add message that west update is running ( #16321 )
2026-05-11 10:05:41 -04:00
tomaszduda23
68534ea24d
[logger] fix crash on zephyr ( #16330 )
2026-05-11 10:04:48 -04:00
rwrozelle
105842366e
[openthread] Remove-freertos-portmacro-header-include ( #16338 )
2026-05-11 09:57:01 -04:00
J. Nick Koston
4d9d6e02e5
[core] Add stable esphome.upload_targets module for port classification ( #16346 )
2026-05-11 09:13:16 -04:00
J. Nick Koston
b967adeb9d
[wifi] Accept lowercase variant in variant_has_wifi ( #16345 )
2026-05-11 09:11:36 -04:00
Jonathan Swoboda
e4d9786f00
[core] Move platformio files to subfolder ( #16347 )
2026-05-11 21:34:47 +12:00
Samuel Sieb
267836d098
[tuya] allow status pin that doesn't match the reported one ( #16353 )
2026-05-11 01:27:07 -07:00
Jesse Hills
c82adc3892
[ci] Fix external-component-bot 403 on PR comments ( #16354 )
2026-05-11 19:52:39 +12:00
J. Nick Koston
5cc7719ae4
[cli] Use pio run -t idedata to set up libretiny penv on cold hosts
...
The prior commit invoked 'pio pkg install' for the on-demand prep step,
which installs the libretiny platform package but does NOT recreate the
~/.platformio/penv/.libretiny/ virtualenv -- that's set up by libretiny's
ConfigurePythonVenv SCons step, which only fires during 'pio run'. So a
cold host (penv missing) still failed to find ltchiptool after the install
returned 'Already up-to-date'.
Wet test against bw15-device.yaml on a host with the libretiny penv
deleted:
esphome upload bw15-device.yaml --device /dev/null --prebuilt-dir ...
INFO ltchiptool not found on this host; installing the PlatformIO
rtl87xx platform package ...
Resolving bw15-device dependencies...
Already up-to-date.
ERROR ltchiptool not found. ...
Replace pkg install with 'pio run -t idedata'. The idedata target runs
SConscript without the actual compile target, so penv creation (libretiny)
and tool-package install (RP2040) happen as side effects of the SCons
configure phase -- but the build itself is skipped. Cost is a few seconds
of SCons configure, paid once per cold host.
Rename run_pkg_install -> prepare_platform_for_upload to match the new
semantics.
Issue: esphome/device-builder#572
Issue: esphome/device-builder#570
2026-05-11 00:30:06 -05:00
Jesse Hills
fe66f9ba41
[ci] Tighten workflow permissions to least-privilege ( #16349 )
2026-05-11 17:15:53 +12:00
Jesse Hills
5dadfe6367
[ci] codeowner-review-request: mint least-privilege App token ( #16351 )
2026-05-11 17:04:09 +12:00
J. Nick Koston
aab7177f07
[cli] Add write_cpp-failure test for --prebuilt-dir pkg-install prep
...
Symmetric with test_upload_program_prebuilt_dir_pkg_install_failure_aborts_upload:
covers the early-return path when write_cpp fails (codegen error, disk
full, validation regression) before pkg install runs. Closes the
coverage matrix for _ensure_platform_packages_for_prebuilt_upload's
two failure points.
Issue: esphome/device-builder#572
2026-05-10 23:58:16 -05:00
Jesse Hills
c4e85fbfc1
[ci] sync-device-classes: mint least-privilege App token ( #16350 )
2026-05-11 16:57:10 +12:00
J. Nick Koston
7674170600
[cli] Auto-install PlatformIO platform when --prebuilt-dir needs its flash tool
...
Revert ltchiptool as a hard dependency so the vast majority of ESPHome
users (ESP32 / ESP8266 / nRF52 OTA) don't pay for libretiny tooling.
Instead, on-demand install just the PlatformIO platform package when a
--prebuilt-dir upload needs a flash tool that isn't on disk yet.
Mechanism: when upload_program receives --prebuilt-dir for a libretiny
or RP2040 target and the corresponding flash tool (ltchiptool / picotool)
isn't found by get_ltchiptool_path / _find_picotool, run the same prep
that 'esphome compile' would (write_cpp + write platformio.ini), then
invoke 'pio pkg install -e <env>' instead of 'pio run'. PlatformIO
downloads the platform without compiling, the flash tool ends up on disk,
and the upload dispatch picks it up on the next lookup.
After install, the tool path lookups (PATH + PIO penv for ltchiptool,
PIO packages dir for picotool) succeed and the upload helper takes over.
ESP32 / ESP8266 / nRF52 paths are unchanged (esptool is already bundled
in requirements.txt; smpclient too for nRF52 mcumgr).
Issue: esphome/device-builder#572
Issue: esphome/device-builder#570
2026-05-10 23:48:05 -05:00
J. Nick Koston
758189fe56
[deps] Bundle ltchiptool for libretiny prebuilt-dir uploads
...
`esphome upload --prebuilt-dir` on a libretiny device routes through
ltchiptool to bypass the PlatformIO build-tree requirement. On hosts
that have never compiled a libretiny config locally (the dashboard's
transparent-install use case) the libretiny PlatformIO platform's
penv at ~/.platformio/penv/.libretiny/bin/ltchiptool doesn't exist
yet, leaving the upload to fail with an actionable but unwelcome
"install ltchiptool" hint.
Bundle ltchiptool as a direct dependency, mirroring esptool which is
already shipped even though only ESP users need it. `pip install
esphome` is now sufficient for libretiny serial uploads from a
prebuilt artifact set; get_ltchiptool_path's PATH lookup picks up
the pip-installed binary first, with the PIO penv fallback still in
place for environments that vendor esphome without the extra.
Issue: esphome/device-builder#572
Issue: esphome/device-builder#570
2026-05-10 23:40:56 -05:00
J. Nick Koston
f4607cb521
[cli] Accept basenames in prebuilt idedata.json
...
The dashboard's source-routed runner ships idedata.json with bare
basenames in prog_path and extra.flash_images[*].path (the receiver's
build-host absolute paths don't resolve on the offloader, and the
in-memory Web Serial consumer keys by basename). Without this change,
the dashboard would have to write a fresh idedata.json into the staging
tmpdir on every install just to flip basenames to absolute paths.
Resolve relative paths in the prebuilt idedata against CORE.prebuilt_dir
so both the dashboard's wire format and a hand-built directory with
absolute paths work. cc_path is left alone because it points at a
PlatformIO toolchain binary outside the prebuilt dir; the offloader's
own PIO install provides the matching binary.
Issue: esphome/device-builder#570
Issue: esphome/device-builder#572
2026-05-10 23:21:23 -05:00
J. Nick Koston
0adfd08270
[cli] Address review feedback on --prebuilt-dir
...
- upload_using_ltchiptool: rename unused config arg to _config and note
the signature parity with upload_using_platformio/upload_using_picotool
so dispatch stays symmetric.
- upload_program: explicit exit_code = 1 when _rp2040_serial_reset_to_bootsel
fails, instead of relying on the function-level default.
- upload_using_picotool: distinct error message for the prebuilt-dir case
that names both candidates (idedata ELF + prebuilt firmware) instead of
just pointing at the missing ELF.
- _load_idedata: document the prebuilt-dir idedata.json contract more
loudly (absolute paths under prebuilt_dir, no schema validation, dashboard
owns the rewrites).
- --prebuilt-dir help text: drop the placeholder docs URL; describe the
dashboard-internal intent inline so users who hit the flag in --help
understand they don't want it.
- New test: upload_using_esptool with ESP-IDF toolchain + --prebuilt-dir
uses <prebuilt-dir>/firmware.factory.bin at offset 0x0.
Issue: esphome/device-builder#572
2026-05-10 23:18:48 -05:00
J. Nick Koston
d96ad02b9f
[nrf52] Honor --prebuilt-dir for mcumgr/BLE OTA uploads
...
nRF52 has its own upload_program that runs before the default dispatch
in esphome.__main__. The mcumgr/BLE OTA path reads the MCUboot-signed
update image from CORE.relative_pioenvs_path(name, 'zephyr',
'app_update.bin'), which assumes a local Zephyr build tree.
Consult CORE.prebuilt_artifact_path('app_update.bin') first so the
dashboard's transparent BLE install on a Bluetooth proxy can flash a
prebuilt update image without compiling locally.
Serial uploads on non-MCUboot bootloaders still go through
adafruit-nrfutil via _upload_using_platformio and are out of scope here;
they need their own bypass to work with --prebuilt-dir (tracked
separately).
Issue: esphome/device-builder#572
2026-05-10 23:07:04 -05:00
J. Nick Koston
a6a0a404ae
[cli] Flash RP2040 serial prebuilt-dir uploads via 1200bps touch + picotool
...
Mirror the libretiny/ltchiptool shape for RP2040 serial when
--prebuilt-dir is set: open the user-supplied serial port at 1200 baud
(arduino-pico's USB CDC interprets the open/close as a request to reboot
into BOOTSEL), poll picotool until the BOOTSEL device shows up on the
USB bus, then dispatch to upload_using_picotool with the prebuilt .uf2.
This removes the last path that required --prebuilt-dir to contain a
platformio.ini + .pioenvs/<name>/ tree, so upload_using_platformio is
now only invoked when no prebuilt dir is set (i.e. the existing
compile+upload flow on a developer machine).
Issue: esphome/device-builder#572
2026-05-10 23:04:18 -05:00
J. Nick Koston
b8336cddf2
[cli] Flash libretiny prebuilt-dir uploads via ltchiptool
...
The libretiny upload path on `upload_program` SERIAL dispatch re-invokes
PlatformIO (`pio run -t upload -t nobuild`), which needs a full build
tree and `platformio.ini`. That makes it incompatible with a dashboard
that only has prebuilt artifacts.
Bypass PlatformIO for the libretiny+SERIAL+--prebuilt-dir case by calling
`ltchiptool flash write -d <port> <firmware.uf2>` directly. The .uf2
encodes the chip family in its header so no extra config is needed.
ltchiptool ships with the libretiny PlatformIO platform under
~/.platformio/penv/.libretiny/bin/ltchiptool; `get_ltchiptool_path()`
prefers PATH first (pip install ltchiptool) and falls back to the
PlatformIO penv. Without --prebuilt-dir the existing PlatformIO path
remains in place, so this is purely additive.
Issue: esphome/device-builder#572
2026-05-10 22:52:17 -05:00
J. Nick Koston
255d4c6b65
[cli] Add esphome upload --prebuilt-dir <path>
...
Adds a --prebuilt-dir flag to esphome upload that points the per-platform
upload helpers at a directory of prebuilt artifacts shipped from a paired
build server, instead of re-deriving paths from the local build tree.
Covers every upload-dispatch shape:
- ESP32 / ESP8266 serial (esptool) reads firmware.bin + extras via the
prebuilt idedata.json the dashboard ships next to the artifacts.
- ESP32 / ESP8266 OTA (native API + web_server) reads CORE.firmware_bin,
CORE.partition_table_bin and CORE.bootloader_bin which now consult the
prebuilt-dir first.
- RP2040 BOOTSEL (picotool) falls back from the idedata ELF (absent in
the flat layout) to the prebuilt firmware.uf2.
- RP2040 serial / libretiny serial / OTA (PlatformIO upload -t nobuild)
point platformio at the prebuilt build tree via CORE.build_path so the
-t upload -t nobuild path finds platformio.ini and .pioenvs/<name>/.
Issue: esphome/device-builder#572
2026-05-10 22:28:19 -05:00
Diorcet Yann
e9cc10fedc
[core] Native idf full support ( #14678 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: Jonathan Swoboda <swoboda1337@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-05-11 02:12:07 +00:00
J. Nick Koston
66e2dcffc4
[cli] Tighten command_rename: scoped name rewrite, target-collision check ( #16296 )
2026-05-11 13:00:09 +12:00
J. Nick Koston
17080ddce6
[wifi][rp2040] Add stable wifi-capability helpers for device-builder ( #16300 )
2026-05-11 12:56:56 +12:00
J. Nick Koston
930d539969
[config_validation] Add a visibility UI-hint kwarg ( #16267 )
2026-05-11 12:07:15 +12:00
Clyde Stubbs
3c042e2e44
[lvgl] Ensure that on_value events fire on checked change ( #16119 )
2026-05-11 11:58:18 +12:00
Jesse Hills
ed10fbea3e
[docker] Silence CopyIgnoredFile warning for build context root ( #16311 )
2026-05-11 07:25:49 +12:00
Mat931
1365251365
[ota] Add bootloader update functionality to ota component ( #16238 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-05-08 21:36:06 +00:00
rwrozelle
3abf2c99a2
[openthread] add coroutine-with-priority COMMUNICATION ( #16318 )
2026-05-08 16:35:47 -05:00
Kevin Ahrendt
70b9edfabe
[i2s_audio] Refactor SPDIF output, fixing synchronization problems ( #16319 )
2026-05-08 21:26:09 +00:00
John Boiles
88c2a1c096
[speaker] Add SPDIF output support ( #8065 )
...
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
Co-authored-by: Kevin Ahrendt <kevin.ahrendt@openhomefoundation.org >
2026-05-08 14:43:55 -04:00
Mat931
3d8fffbea9
[htu31d][kamstrup_kmp][ms8607] Use CRC functions from helpers.h ( #16313 )
2026-05-08 09:17:14 -04:00
Jonathan Swoboda
eb52ca61fe
[climate][ektf2232] Remove deprecations scheduled for 2026.5.0 ( #16289 )
2026-05-08 07:26:14 -04:00
Jonathan Swoboda
a970f05b69
[clang-tidy] Enable readability-redundant-string-init ( #16310 )
2026-05-08 07:26:03 -04:00
Clyde Stubbs
7b6e2589f1
[modbus_server] Reduce log spam ( #16283 )
2026-05-08 14:09:22 +10:00
Jonathan Swoboda
696a654733
[clang-tidy] Concatenate nested namespaces (7/7: tests, platform-gated, enable check) ( #16307 )
2026-05-07 23:05:17 -04:00
Kevin Ahrendt
08b17c9da1
[core] Move core ring buffer to helper component ( #16298 )
2026-05-08 14:01:37 +12:00
Jesse Hills
e152c6155b
[ci] Skip needs-docs for new components without CONFIG_SCHEMA ( #16303 )
2026-05-08 14:00:50 +12:00
Jonathan Swoboda
6ffcb821ca
[clang-tidy] Concatenate nested namespaces (6/7: components t-z) ( #16305 )
2026-05-08 01:13:38 +00:00
Jonathan Swoboda
ded83812f4
[clang-tidy] Concatenate nested namespaces (5/7: components s) ( #16302 )
2026-05-08 00:16:51 +00:00
Jonathan Swoboda
ab1d2de78e
[clang-tidy] Concatenate nested namespaces (4/7: components n-r) ( #16301 )
2026-05-07 23:28:30 +00:00
Jonathan Swoboda
cbe192df49
[clang-tidy] Concatenate nested namespaces (3/7: components i-m) ( #16297 )
2026-05-07 19:00:17 -04:00
dependabot[bot]
56ef357162
Bump github/codeql-action from 4.35.3 to 4.35.4 ( #16299 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-07 17:51:30 -05:00
Jonathan Swoboda
4e4e4b4411
[clang-tidy] Concatenate nested namespaces (2/7: components d-h) ( #16295 )
2026-05-07 16:49:55 -04:00
Jonathan Swoboda
06bd92c388
[clang-tidy] Concatenate nested namespaces (1/7: components a-c) ( #16294 )
2026-05-07 14:21:39 -04:00
J. Nick Koston
71193e2b2c
[helpers] Document write_file's external consumer contract (esphome-device-builder) ( #16290 )
2026-05-07 13:21:35 -05:00
Clyde Stubbs
9301f76482
[sensor] Add alternate calibration format for ntc ( #15937 )
2026-05-07 06:59:22 +10:00
Clyde Stubbs
004aa49131
[lvgl] Pass touch point to touch event lambdas ( #16272 )
2026-05-07 06:57:53 +10:00
dependabot[bot]
3b6250bcee
Bump CodSpeedHQ/action from 4.15.0 to 4.15.1 ( #16281 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-06 15:23:58 -05:00
Jesse Hills
a7b4a2006a
Merge branch 'release' into dev
2026-05-07 08:13:00 +12:00
Jesse Hills
09dc41435c
Merge pull request #16282 from esphome/bump-2026.4.5
...
2026.4.5
2026-05-07 08:12:15 +12:00
Jesse Hills
5283cdec12
Bump version to 2026.4.5
2026-05-07 07:25:35 +12:00
Edward Firmo
d9835c8705
[nextion] Fix text sensor state not updated on string response ( #16280 )
2026-05-07 07:25:35 +12:00
Mat931
b89c71c1ea
[core] Fix WiFi connection in safe mode ( #16269 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-05-07 07:25:35 +12:00
J. Nick Koston
7f6aef4f33
[substitutions] Fix sibling references inside dict-valued substitutions ( #16273 )
2026-05-07 07:25:35 +12:00
J. Nick Koston
016b509b55
[bundle] Include secrets.yaml when !secret keys are quoted ( #16271 )
2026-05-07 07:25:35 +12:00
Jesse Hills
d2bbaeccf3
[ha-addon] Add opt-in toggle for the new ESPHome Device Builder ( #16247 )
2026-05-07 07:25:35 +12:00
puddly
1e58e8729a
[uart] Use tcdrain for flushing instead oftcflush on host ( #14877 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-05-06 18:53:48 +00:00
J. Nick Koston
6173656bf8
[schema] Surface OnlyWith / OnlyWithout default + gate components in schema generator ( #16276 )
2026-05-06 13:49:00 -04:00
dbl-0
0d94ffe15d
[resolver] Make RESOLVE_TIMEOUT configurable via environment variable ( #15951 )
...
Co-authored-by: Daniel Lowe <dan@auth.dxj.app >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-05-06 17:48:38 +00:00
Edward Firmo
4da62067cf
[nextion] Fix text sensor state not updated on string response ( #16280 )
2026-05-06 13:32:50 -04:00
Kevin Ahrendt
9f49e3f80e
[audio] Bump microFLAC to v0.2.0 ( #16279 )
2026-05-06 17:22:18 +00:00
Kevin Ahrendt
fc25ab0246
[i2s_audio] Optimize software volume control ( #16278 )
2026-05-06 12:57:03 -04:00
Kevin Ahrendt
a4a57a540d
[core] Adds acquire and release methods to the ring buffer class ( #16277 )
2026-05-06 12:56:54 -04:00
Didier A
cfd2c9182c
[bl0942] Remove broken 24-bit overflow tracking ( #15650 )
...
Co-authored-by: DidierA <1620015+didiera@users.noreply.github.com >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-05-06 12:34:55 -04:00
Mat931
2864922ac0
[ota] Partition table update: Fix log messages ( #16241 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-06 09:59:10 -05:00
Mat931
90693fb39a
[core] Fix WiFi connection in safe mode ( #16269 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-05-06 09:56:33 -05:00
J. Nick Koston
6e1a59da3e
[packages] Make package !include vars visible to its substitutions block ( #16274 )
2026-05-06 09:53:14 -05:00
John
545ee03f42
[atm90e32] Fix calibration instance not saving in flash properly ( #14152 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-05-06 10:15:04 -04:00
J. Nick Koston
caaa1aefc7
[substitutions] Fix sibling references inside dict-valued substitutions ( #16273 )
2026-05-06 08:41:17 -05:00
J. Nick Koston
ff0c5f575e
[bundle] Include secrets.yaml when !secret keys are quoted ( #16271 )
2026-05-06 07:32:35 -05:00
J. Nick Koston
f06ad8c436
[http_request] Add regression test for light action inside on_response ( #16270 )
2026-05-06 07:32:19 -05:00
Jonathan Swoboda
29db5fa4bb
[script] Make pre-commit and helpers work on Windows ( #16260 )
...
Co-authored-by: Jonathan Swoboda <swoboda1337@users.noreply.github.com >
2026-05-06 07:11:06 -05:00
J. Nick Koston
85f33978e7
[core] Skip external component update on esphome clean ( #16268 )
2026-05-06 07:23:35 -04:00
Clyde Stubbs
79786f1cc7
[lvgl] Allow line points as percentages ( #16209 )
2026-05-06 07:22:43 -04:00
Kevin Ahrendt
febf8815c7
[audio_file][speaker] Eliminate code duplication for files built into firmware ( #16266 )
2026-05-06 05:59:51 -04:00
Jesse Hills
6f6d991dd2
[ha-addon] Add opt-in toggle for the new ESPHome Device Builder ( #16247 )
2026-05-06 21:42:11 +12:00
tomaszduda23
e9f7579910
[logger] give a chance to print crash ( #16203 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-05-06 01:37:40 +00:00
tomaszduda23
a99c1b3e08
[nrf52] add reserve area for bootloader ( #16204 )
2026-05-05 20:37:03 -04:00
Kevin Ahrendt
2d6af1f7e5
[audio] Bump esp-audio-libs to v3.0.0 ( #16263 )
2026-05-05 20:22:53 -04:00
J. Nick Koston
700676b340
[api] Use entity_types.h X-macro for InitialStateIterator declarations ( #16075 )
2026-05-05 18:29:48 -05:00
J. Nick Koston
bf1c339dc1
[api] Use entity_types.h X-macro for ListEntitiesIterator declarations ( #16076 )
2026-05-05 18:29:32 -05:00
J. Nick Koston
f5c1b8839d
[web_server] Use entity_types.h X-macro for ListEntitiesIterator declarations ( #16077 )
2026-05-05 18:29:10 -05:00
J. Nick Koston
4404dd68ba
[cover] Fix ControlAction / CoverPublishAction trigger args with reference types ( #16227 )
2026-05-05 18:27:18 -05:00
J. Nick Koston
67491c3194
[packages] Add resolve_packages single-call seam ( #16235 )
2026-05-05 18:26:52 -05:00
J. Nick Koston
39b2b901f7
[core] Replace scheduler pool vector with unbounded intrusive freelist ( #16172 )
2026-05-05 18:26:19 -05:00
J. Nick Koston
f30ad588ea
[cli] Add --ota-platform flag to pick web_server or native API OTA ( #16207 )
2026-05-05 18:25:53 -05:00
tomaszduda23
be82e8faeb
[debug] Remove unused buffer in uicr lambda function ( #16208 )
2026-05-05 19:02:26 -04:00
Kevin Ahrendt
57397a318a
[audio] Use the microWAV library for decoding ( #16251 )
2026-05-05 11:21:02 -05:00
Kevin Ahrendt
87a705b1cc
[audio] Bump microOpus to v0.4.1 ( #16255 )
2026-05-05 12:47:07 +00:00
Keith Burzinski
edbb9f7b28
[i2s_audio] Fix stereo playback when slot bit width exceeds data bit width ( #16248 )
2026-05-05 08:15:32 -04:00
Jesse Hills
efff8fe8be
[platformio_api] Remove duplicated _strip_win_long_path_prefix ( #16249 )
2026-05-05 14:29:23 +12:00
Jesse Hills
f248302370
Merge branch 'release' into dev
2026-05-05 14:22:23 +12:00
Jesse Hills
6fda5f41b2
Merge pull request #16240 from esphome/bump-2026.4.4
...
2026.4.4
2026-05-05 14:21:38 +12:00
Kevin Ahrendt
ea2b2b3920
[audio_file] Use microDecoder library instead of manual task management/decoding ( #16237 )
2026-05-04 20:12:26 -05:00
Kevin Ahrendt
f33d137669
[audio][media_player][speaker] WAV decoding is no longer always built ( #16244 )
2026-05-04 23:45:11 +00:00
dependabot[bot]
d28498ac2c
Bump cryptography from 47.0.0 to 48.0.0 ( #16245 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-04 23:39:44 +00:00
Olivier ARCHER
556783b95b
[http_request] remove slow http_request warning on 8266 ( #16239 )
2026-05-04 18:19:52 -05:00
Kevin Ahrendt
857e529803
[audio] Use the microMP3 library instead of esp-audio-libs ( #16236 )
2026-05-04 18:41:50 -04:00
Jesse Hills
197d4dac8e
Bump version to 2026.4.4
2026-05-05 08:27:10 +12:00
Jesse Hills
2d7f9dc48d
[api] Use safe_print for log output and fix safe_print bytes-repr fallback ( #16160 )
2026-05-05 08:27:04 +12:00
J. Nick Koston
be84e6c9f4
[api] Fall back to owning types for service array args used after a delay ( #16140 )
2026-05-05 08:22:05 +12:00
J. Nick Koston
0418f2138a
[esp32] Drop printf wrap on IDF 6.0+ (picolibc no longer needs it) ( #16189 )
2026-05-05 08:22:05 +12:00
Clyde Stubbs
d9c22d6b56
[lvgl] Clamp values for meter line indicators ( #16180 )
2026-05-05 08:22:05 +12:00
J. Nick Koston
60a94fd109
[esp32] Replace 512B stack buffer in printf wraps with picolibc cookie FILE ( #16170 )
2026-05-05 08:22:05 +12:00
Jesse Hills
9371ec319a
[core] Strip \\?\ prefix from sys.executable for PlatformIO subprocess ( #16158 )
2026-05-05 08:21:58 +12:00
J. Nick Koston
ce466c6b60
[mcp23xxx_base] Reject unsupported interrupt_pin options (inverted, allow_other_uses) ( #16149 )
2026-05-05 08:14:03 +12:00
Brandon Harvey
a460f5343c
[automation] Fix codegen type for component.resume update_interval ( #16069 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-05 08:14:02 +12:00
Jesse Hills
7c2a63bf82
[api] Use safe_print for log output and fix safe_print bytes-repr fallback ( #16160 )
2026-05-05 08:12:20 +12:00
Diorcet Yann
690a197346
[main] Move stacktrace handling out of platformio_api and FlashImage into platform components/util ( #16186 )
2026-05-04 15:07:31 -04:00
J. Nick Koston
24d4da1021
[sensor] Document why TimeoutFilterBase intentionally keeps Component ( #16194 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-05-04 01:18:28 +00:00
J. Nick Koston
53c4e6f386
[tests] Drop duplicate on_boot_restore_from in host_mode_climate_basic_state ( #16228 )
2026-05-03 20:12:51 -05:00
J. Nick Koston
1d63158480
[zephyr] Add nRF52 component tests so CI runs on zephyr-only changes ( #16188 )
2026-05-03 20:05:56 -05:00
J. Nick Koston
013dee44eb
[binary_sensor] Drop Component from AutorepeatFilter, use self-keyed scheduler ( #16191 )
2026-05-03 20:05:27 -05:00
J. Nick Koston
9ddb828da3
[api] Don't tear down log connection on stack-trace decode failure ( #16196 )
2026-05-03 20:05:13 -05:00
J. Nick Koston
120d1e51fb
[tests] Fix flaky host_mode_climate_basic_state integration test ( #16192 )
2026-05-03 20:04:34 -05:00
J. Nick Koston
844a36f7a1
[api] Mark high-volume proxy messages as speed_optimized (Infrared/RF, Z-Wave, serial) ( #16159 )
2026-05-03 20:03:52 -05:00
J. Nick Koston
72a75f2d3f
[cover] Fold ControlAction/CoverPublishAction fields into stateless lambdas ( #16046 )
2026-05-03 20:02:07 -05:00
J. Nick Koston
b5eb444015
[dashboard] Stabilize device-builder dashboard backend's API surface ( #16206 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-03 20:01:51 -05:00
J. Nick Koston
15ab5422c7
[ci] Run downstream device-builder tests against PR Python code ( #16214 )
2026-05-03 19:45:08 -05:00
J. Nick Koston
33f88619da
[valve] Fix ControlAction trigger args with reference types ( #16223 )
2026-05-03 19:44:21 -05:00
J. Nick Koston
df1200629f
[tests] Fix flaky host_mode_climate_basic_state ( #16225 )
2026-05-03 19:44:11 -05:00
J. Nick Koston
41bd570d30
[light] Fix LightControlAction trigger args with reference types ( #16220 )
2026-05-03 19:44:01 -05:00
J. Nick Koston
cf223674e5
[climate] Fix ControlAction trigger args with reference types ( #16221 )
2026-05-03 19:43:49 -05:00
J. Nick Koston
af74b639cf
[fan] Fix TurnOnAction trigger args with reference types ( #16222 )
2026-05-03 19:43:35 -05:00
J. Nick Koston
4108b27197
[esp8266] Lower WDT_FEED_INTERVAL_MS to 100 ms ( #16197 )
2026-05-03 19:43:09 -05:00
Mat931
7cfab58a05
[ota] Add partition table update functionality to ota component ( #15780 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-05-03 19:42:10 -05:00
tomaszduda23
85e1e4b95e
[zephyr] feed watchdog early. Otherwise OTA may rollback. ( #16218 )
2026-05-03 20:37:32 -04:00
J. Nick Koston
0f174ee626
[api] Fall back to owning types for service array args used after a delay ( #16140 )
2026-05-04 10:55:40 +12:00
Edward Firmo
8046ff7e1e
[nextion] TFT upload no longer fails when the display sends a split 0x08 ack ( #16205 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-05-03 03:40:09 -05:00
dependabot[bot]
5e9db1c8c6
Bump github/codeql-action from 4.35.2 to 4.35.3 ( #16201 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-01 21:46:29 -05:00
J. Nick Koston
81d147ff9e
[esp32] Drop printf wrap on IDF 6.0+ (picolibc no longer needs it) ( #16189 )
2026-05-01 14:31:56 -05:00
Mat931
58cb7effd4
[ota] Add extended OTA protocol ( #16164 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-05-01 10:40:14 -05:00
Kevin Ahrendt
3dd60c5713
[core] Support allocating ring buffer in internal memory ( #16187 )
2026-05-01 07:55:08 -05:00
Oliver Kleinecke
f073c1cabe
[usb_host][usb_uart] Add configurable max packet size ( #14584 )
2026-05-01 20:43:13 +10:00
J. Nick Koston
5cc447e0da
[core] Move per-platform hal_platform.h into components/platform/hal.h ( #16183 )
2026-04-30 21:27:31 -05:00
Clyde Stubbs
0980630f68
[lvgl] Clamp values for meter line indicators ( #16180 )
2026-04-30 22:23:14 -04:00
J. Nick Koston
b8dfffdf06
[core] Enable ruff FLY (flynt) lint family ( #16182 )
2026-04-30 21:20:07 -05:00
luar123
f6e39d305d
[zigbee] Add newlib compatibility for zigbee sdk in idf 6 ( #16174 )
2026-04-30 22:08:55 -04:00
Jonathan Swoboda
08e5cb5576
[esp32_hosted] Bump esp_hosted to 2.12.6 and esp_wifi_remote to 1.5.1 ( #16176 )
2026-04-30 20:47:22 -05:00
Kevin Ahrendt
faa61696e0
[sendspin] Use sendspin-cpp to v0.4.0 to reduce stuttering ( #16178 )
2026-04-30 20:43:24 -05:00
J. Nick Koston
9999913d07
[zephyr] Move HAL bodies into components/zephyr/hal.cpp + inline trivial dispatches ( #16116 )
2026-04-30 20:10:51 -05:00
J. Nick Koston
92aa98f680
[host] Move HAL bodies into components/host/hal.cpp + inline trivial dispatches ( #16115 )
2026-05-01 00:42:38 +00:00
J. Nick Koston
3d69169141
[climate] Fold ControlAction fields into a single stateless lambda ( #16044 )
2026-04-30 19:16:16 -05:00
J. Nick Koston
24fdfcf1a1
[rp2040] Move HAL bodies into components/rp2040/hal.cpp + inline trivial dispatches ( #16114 )
2026-04-30 19:15:41 -05:00
J. Nick Koston
550444dc34
[binary_sensor] Drop Component from filter classes, use self-keyed scheduler ( #16131 )
2026-04-30 19:15:18 -05:00
J. Nick Koston
ba7c06785a
[mdns] Broadcast config_hash TXT record on _esphomelib._tcp ( #16145 )
2026-04-30 19:14:55 -05:00
J. Nick Koston
b708d1a826
[core] Drop unused DELAY_ACTION from InternalSchedulerID enum ( #16151 )
2026-04-30 19:14:34 -05:00
J. Nick Koston
148d478dec
[api] Add encode/decode benchmarks for Z-Wave, IR/RF, and serial proxy messages ( #16157 )
2026-04-30 19:14:20 -05:00
J. Nick Koston
45e78e4114
[core] Inline loop gate expression to avoid stale local reuse ( #16167 )
2026-04-30 19:13:54 -05:00
J. Nick Koston
3b3e003aa3
[sensor] Pack ThrottleAverageFilter have_nan_ into n_ bitfield (-4 B/instance) ( #16169 )
2026-04-30 19:13:10 -05:00
J. Nick Koston
2f3e16b482
[bk72xx] Apply CFG_SUPPORT_BLE=0 SDK option to BK7238 ( #16181 )
2026-04-30 19:12:06 -05:00
J. Nick Koston
e085cb50d9
[sensor] Drop Component from filter classes, use self-keyed scheduler ( #16132 )
2026-04-30 19:11:30 -05:00
J. Nick Koston
2fbfb4c385
[ci] Split integration tests into 3 buckets when count is more than 10 ( #16152 )
2026-04-30 19:10:53 -05:00
J. Nick Koston
61261b4a59
[libretiny] Move HAL bodies into components/libretiny/hal.cpp + inline trivial dispatches ( #16113 )
2026-04-30 12:33:22 -05:00
J. Nick Koston
d48aad8c4d
[esp32] Replace 512B stack buffer in printf wraps with picolibc cookie FILE ( #16170 )
2026-04-30 13:27:54 -04:00
Kevin Ahrendt
f1d3be4bda
[core] Simplify RAMAllocator and add internal fallback to external mode ( #16171 )
2026-04-30 12:03:40 -04:00
Kevin Ahrendt
2758aa5517
[audio] bump microOpus to v0.4.0 to use fixed-point by default on ESP32 ( #16168 )
2026-04-30 09:12:39 -04:00
Kevin Ahrendt
a8b0133ec1
[audio] Enable specific codecs and configure advanced features ( #16166 )
2026-04-30 08:49:28 -04:00
Clyde Stubbs
1398dcebb4
[st7789v] Add deprecation warnings ( #16162 )
2026-04-30 00:53:37 -05:00
dependabot[bot]
096d0c4279
Bump aioesphomeapi from 44.22.0 to 44.23.0 ( #16161 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-30 04:45:19 +00:00
Jesse Hills
e127268dac
[core] Strip \\?\ prefix from sys.executable for PlatformIO subprocess ( #16158 )
2026-04-30 16:04:52 +12:00
J. Nick Koston
f0bffed3c0
[esp8266] Move HAL bodies into components/esp8266/hal.cpp + inline arch_init ( #16112 )
2026-04-30 15:42:17 +12:00
Jesse Hills
1a871e231d
[ci] Use client-id for GitHub App token generation ( #16155 )
2026-04-30 13:09:37 +12:00
Jesse Hills
47765bd2d0
[ci] Correct version comment on create-github-app-token pin ( #16156 )
2026-04-30 13:08:56 +12:00
dependabot[bot]
8066325e0b
Bump esphome/workflows/.github/workflows/lock.yml from 2026.4.0 to 2026.4.1 ( #16143 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-30 12:52:25 +12:00
J. Nick Koston
b8d24c9e49
[mcp23xxx_base] Reject unsupported interrupt_pin options (inverted, allow_other_uses) ( #16149 )
2026-04-30 11:14:07 +12:00
J. Nick Koston
9b1f5c59bb
[core] Fix null deref in WarnIfComponentBlockingGuard for self-keyed scheduler timers ( #16150 )
2026-04-29 23:05:38 +00:00
Jonathan Swoboda
e4b33fddf5
[esp32] Add ESP-IDF 6.0.1 platform entry ( #16146 )
2026-04-29 18:43:15 -04:00
Jonathan Swoboda
77da64a367
[sx126x] Add cold sleep option and drop unused RTC wakeup bit ( #16144 )
2026-04-29 17:05:51 -04:00
J. Nick Koston
cecccebc64
[core] DelayAction: drop Component inheritance, use self-keyed scheduler ( #16129 )
2026-04-29 20:35:04 +00:00
Jonathan Swoboda
53b682e48f
[ci] Bump clang-tidy from 18.1.8 to 22.1.0.1 ( #16078 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-29 20:19:33 +00:00
Mat931
14910e65d9
[ota] Use WatchdogManager for OTA on ESP32 ( #16138 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-29 20:15:21 +00:00
J. Nick Koston
813964714c
[esp32] Move HAL bodies into components/esp32/hal.cpp + inline trivial dispatches ( #16111 )
2026-04-29 20:09:08 +00:00
J. Nick Koston
5a146ab6b7
[valve] Fold ControlAction fields into a single stateless lambda ( #16123 )
2026-04-29 19:20:15 +00:00
J. Nick Koston
61a41402df
[fan] Fold TurnOnAction fields into a single stateless lambda ( #16122 )
2026-04-29 19:16:05 +00:00
Mat931
59b4cfd07c
[watchdog] Use default CHECK_IDLE_TASK and PANIC when configuring the watchdog ( #16142 )
2026-04-29 18:41:12 +00:00
J. Nick Koston
c41f38e16d
[scheduler] Add self-keyed timer API for callers without a Component ( #16127 )
2026-04-29 13:24:37 -05:00
Clyde Stubbs
0ad8a071a7
[espnow] Cleanup method visibility and naming ( #16109 )
2026-04-29 14:18:21 -04:00
J. Nick Koston
985dba9332
[core] Defer heavy module-scope imports in __main__, loader, and config ( #15955 )
2026-04-29 13:17:59 -05:00
GelidusResearch
ca3f7251d4
[ens160] Fix sensor initialization timing ( #16024 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-29 14:07:28 -04:00
J. Nick Koston
44cabc191d
[core] Catch body-read errors in download_content ( #16023 )
2026-04-29 14:06:41 -04:00
J. Nick Koston
e5b1991cf7
[fan] Add tests for fan.turn_on action field combinations ( #16125 )
2026-04-29 12:46:06 -05:00
J. Nick Koston
7fba57ce51
[valve] Add tests for valve.control action field combinations ( #16126 )
2026-04-29 12:45:30 -05:00
J. Nick Koston
69a33d8ac0
[core] Inline HAL clock wrappers and split hal.h into per-platform headers ( #15977 )
2026-04-29 12:31:55 -05:00
Jonathan Swoboda
ce61dcf387
[remote_base][core] Drop redundant typename in dependent type contexts ( #16137 )
2026-04-29 16:54:17 +00:00
Jonathan Swoboda
bae6b51652
[kamstrup_kmp][toshiba] Fix signed/unsigned comparisons against sizeof ( #16135 )
2026-04-29 11:33:57 -04:00
Jonathan Swoboda
557c3d4436
[aqi] Use std::max initializer-list for non-negative AQI clamp ( #16134 )
2026-04-29 11:33:29 -04:00
Jonathan Swoboda
bacee89bca
[mixer_speaker] NOLINT bugprone-unchecked-optional-access in audio_mixer_task ( #16130 )
2026-04-29 10:56:13 -04:00
Jonathan Swoboda
2157d11913
[haier] Fix bugprone-unchecked-optional-access; switch HardwareInfo to char[9] ( #16124 )
2026-04-29 14:26:53 +00:00
Jonathan Swoboda
42b8597719
[api] Extend NOLINT to cover bugprone-random-generator-seed in MAC varint test ( #16120 )
2026-04-29 13:58:19 +00:00
Jonathan Swoboda
2bd28eee9d
[tormatic] Use .value() for checked optional access in read_gate_status_ ( #16121 )
2026-04-29 09:51:31 -04:00
J. Nick Koston
0a497d3c22
[light] Fold LightControlAction fields into a single stateless lambda ( #16118 )
2026-04-29 08:35:17 -05:00
Jonathan Swoboda
79da2b9704
[time] Fix bugprone-unchecked-optional-access in CronTrigger::check_time_ ( #16107 )
2026-04-29 08:30:46 -04:00
Jonathan Swoboda
ae5b211c89
[api] Avoid JsonDocument copy-and-swap operator= in ActionResponse ctor ( #16106 )
2026-04-29 08:30:35 -04:00
J. Nick Koston
8ceada8d04
[core] Download external_files in parallel ( #16021 )
2026-04-29 14:32:30 +12:00
J. Nick Koston
49c7a6928e
[script] Fix cpp_unit_test crash for non-MULTI_CONF platform components ( #16104 )
2026-04-29 14:32:13 +12:00
J. Nick Koston
2fce71e0d4
[wifi] Add phy_mode option for ESP8266 ( #16055 )
2026-04-29 14:31:07 +12:00
J. Nick Koston
80251c54be
[climate] Add climate.control coverage to component tests via thermostat ( #16052 )
2026-04-29 14:27:56 +12:00
J. Nick Koston
0d51a122d0
[cover] Add cover.control / cover.template.publish coverage to template tests ( #16051 )
2026-04-29 14:27:40 +12:00
J. Nick Koston
5a33c50015
[light] Use constexpr template for DimRelativeAction transition_length ( #16038 )
2026-04-29 14:26:38 +12:00
J. Nick Koston
0d150dc57e
[light] Use constexpr template for ToggleAction transition_length ( #16037 )
2026-04-29 14:25:18 +12:00
J. Nick Koston
d287876d8d
[light] Use bitmask template for LightControlAction unused fields ( #16039 )
2026-04-29 14:20:37 +12:00
J. Nick Koston
592486ae9a
[analyze_memory] Attribute main.cpp setup()/loop() to esphome core ( #16033 )
2026-04-29 14:06:54 +12:00
Jonathan Swoboda
c3bd38af77
[feedback] Fix bugprone-unchecked-optional-access in start_direction_ ( #16103 )
2026-04-28 21:54:15 -04:00
J. Nick Koston
eec770d622
[core] Use ETag in external_files cache to fix re-downloads from raw.githubusercontent.com ( #16020 )
2026-04-29 13:52:09 +12:00
J. Nick Koston
d7b21a84a3
[git] Make ref fetches and submodule updates shallow ( #16014 )
2026-04-29 13:49:51 +12:00
J. Nick Koston
f05243bd9d
[api] Add 48-bit MAC address varint fast path for BLE advertisements ( #15988 )
2026-04-29 13:48:35 +12:00
J. Nick Koston
35cb28edfe
[output] Gate FloatOutput power scaling fields behind USE_OUTPUT_FLOAT_POWER_SCALING ( #15998 )
2026-04-29 13:27:22 +12:00
J. Nick Koston
1363f661e6
[core] Inline ContinuationAction in If/While/RepeatAction ( #16040 )
2026-04-28 21:26:25 -04:00
J. Nick Koston
8af499b591
[api] Use custom deleter to fix incomplete-type error on macOS libc++ ( #16050 )
2026-04-28 21:26:21 -04:00
Jonathan Swoboda
1a57d9bc2f
[sprinkler][pn532] Fix bugprone-unchecked-optional-access ( #16102 )
2026-04-29 01:04:19 +00:00
J. Nick Koston
9768380856
[api] Hoist memw out of socket ready check to once per main-loop iter ( #15996 )
2026-04-29 13:04:10 +12:00
J. Nick Koston
676f26919e
[mdns] Drive MDNS.update() polling from IP state events on ESP8266/RP2040 ( #15961 )
2026-04-29 13:02:21 +12:00
J. Nick Koston
29d3a3a498
[esp8266] Replace millis() with fast accumulator, wrap Arduino callers ( #15662 )
2026-04-29 12:58:00 +12:00
Jonathan Swoboda
77b76ac48a
[inkbird_ibsth1_mini][speaker][speaker_source] Fix performance-unnecessary-copy-initialization ( #16101 )
2026-04-29 00:56:03 +00:00
Clyde Stubbs
0b5835284a
[lvgl] Additional layout features ( #16041 )
2026-04-29 12:35:24 +12:00
Jonathan Swoboda
15df477472
[core] Reduce copies in Callback/CallbackManager call paths ( #16093 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-28 19:41:28 -04:00
Jonathan Swoboda
be0ee73847
[i2c] NOLINT readability-identifier-naming on Zephyr struct forward-decl ( #16099 )
2026-04-28 19:22:42 -04:00
Jonathan Swoboda
a241c9e622
[online_image][sim800l] Use std::string::starts_with for prefix checks ( #16097 )
2026-04-28 19:02:39 -04:00
Jonathan Swoboda
2f433c78bd
[haier] Brace single-statement else-if in smartair2_climate ( #16098 )
2026-04-28 18:56:36 -04:00
Jonathan Swoboda
e39c474577
[binary_sensor] Bind at_index_ once in MultiClick on_state_ ( #16095 )
2026-04-28 22:13:35 +00:00
Jonathan Swoboda
a62e3fe4fc
[json] NOLINT StackAddressEscape false positive in parse_json ( #16091 )
2026-04-28 21:35:40 +00:00
Jonathan Swoboda
7d6b9bee19
[wifi] Avoid copying EAP config in three connect handlers ( #16094 )
2026-04-28 21:22:29 +00:00
Jonathan Swoboda
ab6bda50e4
[esp32_ble] Widen loop variable in as_128bit() to match uuid_.len type ( #16088 )
2026-04-28 20:58:40 +00:00
Jonathan Swoboda
3d195d748c
[ezo] Use make_unique to construct EzoCommand ( #16092 )
2026-04-28 20:50:15 +00:00
Jonathan Swoboda
16cf4fb5e8
[nextion] Use std::string::starts_with for HTTPS URL check ( #16090 )
2026-04-28 20:47:20 +00:00
Jonathan Swoboda
70503442f4
[dfrobot_sen0395] Brace single-statement else-if in enqueue() ( #16089 )
2026-04-28 20:37:29 +00:00
Jonathan Swoboda
594b269dba
[bme680] Rename cal1/cal2 to coeff1/coeff2 ( #16087 )
2026-04-28 20:33:57 +00:00
Clyde Stubbs
8157c721a5
[mapping] Implement default value ( #15861 )
2026-04-29 06:31:37 +10:00
Clyde Stubbs
9af557de6d
[lvgl] Add utility gradient function ( #16048 )
2026-04-29 06:29:38 +10:00
Jonathan Swoboda
1f4136e76f
[pipsolar] Guard handle_qmod_ against empty message ( #16085 )
2026-04-28 16:29:09 -04:00
Jonathan Swoboda
c8dffcc9b8
[tlc5971] Remove dead bit-banging delay code ( #16086 )
2026-04-28 15:28:33 -05:00
dependabot[bot]
44fbb7f5a9
Bump CodSpeedHQ/action from 4.14.0 to 4.15.0 ( #16084 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-28 15:10:21 -05:00
Jonathan Swoboda
eb01d43feb
[spi][http_request][demo] Fix latent clang-tidy issues in headers ( #16080 )
2026-04-28 16:09:35 -04:00
Jonathan Swoboda
7891fd5cf1
Add dependencies.lock to .gitignore ( #16081 )
2026-04-29 07:38:31 +12:00
Jonathan Swoboda
4ee9cc432b
[ci] Install requirements_dev.txt in the cached venv ( #16082 )
2026-04-29 07:37:46 +12:00
Mat931
42ff10afe5
[watchdog] Fix WatchdogManager on single core apps ( #16074 )
2026-04-28 17:32:44 +00:00
tomaszduda23
6b3df66bdc
[nrf52] make reset pin optional ( #11684 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-28 12:20:38 -05:00
tomaszduda23
968878a62d
[nrf52] implement wake_loop_threadsafe/wakeable_delay ( #16032 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-28 16:35:12 +00:00
J. Nick Koston
daf3f4d2f1
[core] wakeable_delay: yield on already-woken fast path (ESP8266, RP2040) ( #16045 )
2026-04-28 10:41:17 -05:00
Bonne Eggleston
52e8c50f45
[modbus] Split modbus_server from modbus_controller ( #15509 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-28 10:21:25 -05:00
J. Nick Koston
0a4d9b430f
[ci] Add import-time regression check for esphome.__main__ ( #15954 )
2026-04-28 14:05:12 +00:00
J. Nick Koston
0759a3c681
[core] Split wake.{h,cpp} into per-platform files ( #15978 )
2026-04-28 08:48:13 -05:00
Egor Vorontsov
8921e3bb3f
[api] add open states for lock to api.proto ( #15901 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-28 07:49:16 -05:00
Clyde Stubbs
52f80618d4
[lvgl] Allow a binary sensor to report checked or pressed state ( #16073 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-28 22:00:29 +10:00
Jesse Hills
876c8c4c2a
[ci-custom] Lint imports of esphome.components.const outside components ( #16068 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-28 05:59:02 -05:00
Darafei Praliaskouski
41458d72e0
[esp32] Make Arduino app metadata reproducible ( #16053 )
2026-04-28 05:58:34 -05:00
Brandon Harvey
49d3df2698
[automation] Fix codegen type for component.resume update_interval ( #16069 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-28 05:27:20 -05:00
J. Nick Koston
792f2e8363
[ota] Add wall-clock timeout to OTA data transfer loop ( #16047 )
2026-04-28 17:29:42 +12:00
J. Nick Koston
42c9fdc87e
[feedback] Use App.get_loop_component_start_time() and constexpr timeout id ( #16063 )
2026-04-28 16:39:08 +12:00
Jesse Hills
5f6bbb98ce
Merge branch 'release' into dev
2026-04-28 15:40:19 +12:00
Jesse Hills
4e0509435a
Merge pull request #16067 from esphome/bump-2026.4.3
...
2026.4.3
2026-04-28 15:39:24 +12:00
J. Nick Koston
a03de7cea2
[core] Freshen loop_component_start_time_ before scheduler dispatch ( #16064 )
2026-04-28 13:23:08 +12:00
Jesse Hills
95b5ab7e78
Bump version to 2026.4.3
2026-04-28 12:58:29 +12:00
J. Nick Koston
3ac0939f55
[image] Fix RGB565+alpha rendering for multi-frame animations ( #16017 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-04-28 12:58:29 +12:00
Jesse Hills
191d3bc7e4
[esp32_touch] Feed wdt ( #16066 )
2026-04-28 12:58:29 +12:00
Edward Firmo
a186f6fea9
[nextion] Unify TFT upload ack timeout to 5000ms ( #15960 )
2026-04-28 12:58:29 +12:00
Mat931
aea88aef5e
[esp32][wifi] Fix bootloop and WiFi connection issue if nvs partition is missing or has non-default label ( #16025 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-28 12:58:29 +12:00
J. Nick Koston
433bbdb016
[rotary_encoder][at581x] Fix templatable int field types ( #16015 )
2026-04-28 12:58:29 +12:00
J. Nick Koston
4137d93cbf
[wifi] Fix stale wifi.connected after state transition ( #15966 )
2026-04-28 12:58:29 +12:00
J. Nick Koston
6a5919ee87
[deep_sleep] Fix sleep_duration codegen type to uint32_t ( #15965 )
2026-04-28 12:58:29 +12:00
Jesse Hills
b753ee4e94
[time] Handle Windows EINVAL when validating POSIX TZ strings ( #15934 )
2026-04-28 12:58:29 +12:00
Clyde Stubbs
c26ea52620
[lvgl] Triggers on tabview tabs fix ( #15935 )
2026-04-28 12:58:29 +12:00
J. Nick Koston
39a69385fb
[image] Fix RGB565+alpha rendering for multi-frame animations ( #16017 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-04-28 12:57:42 +12:00
Jesse Hills
a34836c290
[esp32_touch] Feed wdt ( #16066 )
2026-04-28 11:27:08 +12:00
Edward Firmo
01ac223913
[nextion] Unify TFT upload ack timeout to 5000ms ( #15960 )
2026-04-28 08:30:40 +12:00
Mat931
7198c912c7
[esp32][wifi] Fix bootloop and WiFi connection issue if nvs partition is missing or has non-default label ( #16025 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-27 12:41:28 -05:00
Kevin Ahrendt
24c6a0d711
[audio] Bump microDecoder library to v0.2.0 ( #16054 )
2026-04-27 12:17:02 +00:00
plazarre
dec5d0449b
[esp32_ble_tracker] Hold COEX_PREFER_BT for the lifetime of any active connection ( #16036 )
...
Co-authored-by: Paul Lazarre <plazarre@gmail.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-27 06:51:54 -05:00
J. Nick Koston
79b741b8dc
[core] Combine entity register + configure_entity_ into one call ( #16030 )
2026-04-27 03:03:39 +00:00
tomaszduda23
112646a9c4
[zigbee] add router for nrf52 ( #16034 )
2026-04-26 23:02:09 -04:00
J. Nick Koston
2e096bb036
[core] Combine set_component_source_ + register_component_ into one call ( #16029 )
2026-04-26 21:54:15 -05:00
Johan Henkens
e87e78c544
[api] Expose TemperatureUnit in water heater and climate api ( #15815 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-26 12:58:14 +00:00
J. Nick Koston
0f25d91e68
[core] Unify skip_external_update and honor it in external_files for faster esphome logs ( #16016 )
2026-04-26 07:24:33 -05:00
J. Nick Koston
8dbdcfc128
[bk72xx] Prepare for BK7238 support ( #16018 )
2026-04-26 07:24:07 -05:00
J. Nick Koston
8950afc3c4
[bluetooth_proxy] Drop redundant remote_bda_ write in connect handler ( #16000 )
2026-04-26 07:23:53 -05:00
J. Nick Koston
04d067196d
[rotary_encoder][at581x] Fix templatable int field types ( #16015 )
2026-04-26 07:23:41 -05:00
J. Nick Koston
502c010465
[bh1750] Downgrade per-reading Illuminance log to verbose ( #16005 )
2026-04-26 07:23:24 -05:00
J. Nick Koston
180105bb4b
[bluetooth_proxy] Partial revert of loop() → set_interval migration ( #15992 )
2026-04-26 07:23:08 -05:00
J. Nick Koston
4c0dfb0e0d
[core] Raise ESP32 WDT feed interval to 1/5 of configured timeout ( #15984 )
2026-04-26 07:22:50 -05:00
J. Nick Koston
df987a7ffb
[ci-custom] Suggest uint32_to_str/int8_to_str for integer formatting ( #15970 )
2026-04-26 07:22:34 -05:00
Boris Krivonog
c8d4420408
[mitsubishi_cn105] add support for half-degree temperature setpoint ( #15919 )
2026-04-26 07:19:49 -05:00
Darafei Praliaskouski
b084fa4490
[esp32] Make ESP-IDF builds reproducible ( #16008 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-26 06:31:32 -05:00
Darafei Praliaskouski
68625a1b76
[core] Isolate generated build metadata ( #16007 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-26 09:11:09 +00:00
J. Nick Koston
dc57969afd
[host] Use integer math in millis()/micros() ( #15994 )
2026-04-26 08:39:24 +00:00
J. Nick Koston
f092e619d8
[rtttl] Gate on_finished_playback callback storage behind define ( #16003 )
2026-04-26 00:03:59 -05:00
J. Nick Koston
58f6ad2d0c
[safe_mode] Use StaticCallbackManager for on_safe_mode ( #16002 )
2026-04-26 00:01:21 -05:00
Keith Burzinski
bc33260c61
[ir_rf_proxy] Extend for RF ( #15744 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-25 22:33:02 -05:00
J. Nick Koston
4cab262ef8
[ci] Trigger CodSpeed benchmarks on host platform changes ( #15995 )
2026-04-25 17:18:21 -04:00
dependabot[bot]
9ad820c921
Bump esphome-dashboard from 20260408.1 to 20260425.0 ( #16006 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-25 20:59:01 +00:00
J. Nick Koston
4f8feb86f0
[dashboard] Add --no-states support to logs WebSocket handler ( #15993 )
2026-04-25 15:43:05 -05:00
Javier Peletier
b5ccd55f4e
[packages] Fix premature substitution of vars in remote package files ( #15997 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-25 17:06:58 +00:00
dependabot[bot]
a437b3086b
Bump cryptography from 46.0.7 to 47.0.0 ( #15990 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-25 02:30:10 +00:00
dependabot[bot]
c27f9e512b
Bump aioesphomeapi from 44.21.0 to 44.22.0 ( #15989 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-25 02:28:04 +00:00
dependabot[bot]
f62972c2c6
Bump ruff from 0.15.11 to 0.15.12 ( #15981 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-24 19:34:00 +00:00
dependabot[bot]
f36efbc762
Update tzdata requirement from >=2026.1 to >=2026.2 ( #15980 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-24 19:27:12 +00:00
Kevin Ahrendt
9caf9ee023
[sendspin] Bumps sendspin-cpp library for a bugfix ( #15976 )
2026-04-24 11:53:03 -05:00
Kevin Ahrendt
94e300389c
[sendspin] remove year and track number text sensors and refactor ( #15975 )
2026-04-24 15:35:32 +00:00
Kevin Ahrendt
55bcf33446
[sendspin] Add metadata sensor component ( #15971 )
2026-04-24 14:32:47 +00:00
Kevin Ahrendt
f132b7dc07
[media_player][speaker][speaker_source] Centralize preferred format codegen ( #14771 )
2026-04-24 14:09:03 +00:00
J. Nick Koston
baa6d5f96b
[web_server_idf] Fix cross-thread race on SSE session state ( #15967 )
2026-04-24 08:11:47 -05:00
J. Nick Koston
773b4d887b
[core] Scheduler: don't sleep while defer queue is non-empty ( #15968 )
2026-04-24 08:11:29 -05:00
Kevin Ahrendt
ac7f0f0b74
[sendspin] Add a metadata text sensor component ( #15969 )
2026-04-24 11:07:00 +00:00
Kevin Ahrendt
bc7f35b569
[sendspin] Add a Sendspin media source component for playing audio (PR4) ( #15950 )
...
Co-authored-by: Copilot <copilot@github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-24 10:00:22 +00:00
J. Nick Koston
ae02ab3865
[wifi] Fix stale wifi.connected after state transition ( #15966 )
2026-04-24 03:42:36 -05:00
J. Nick Koston
eceb534895
[deep_sleep] Fix sleep_duration codegen type to uint32_t ( #15965 )
2026-04-24 07:19:59 +00:00
tomaszduda23
404620b99c
[deep_sleep][logger][zephyr][zigbee] add deep sleep support with zigbee wakeup ( #13950 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-23 22:31:46 -04:00
Kevin Ahrendt
3ccaa771a7
[sendspin] Add a group media player controller (PR3) ( #15948 )
...
Co-authored-by: Copilot <copilot@github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-24 01:46:25 +00:00
Kevin Ahrendt
b4a86e46b2
[sendspin] Add controller role and sendspin.switch action (PR2) ( #15929 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-04-23 20:22:47 -05:00
Kevin Ahrendt
ddf1426f86
[sendspin] Add initial Sendspin hub component (PR1) ( #15924 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-04-23 22:09:36 +00:00
J. Nick Koston
90d7bfe02e
[ci] Auto-close PRs opened from a fork's default branch ( #15957 )
2026-04-23 16:36:32 -05:00
Kevin Ahrendt
d759f1a567
[audio_http] Add a media source for playing audio from HTTP URLs ( #15741 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-23 15:53:52 -05:00
luar123
f757cd1210
[zigbee][core] Add support for Zigbee binary sensors on ESP32 H2 and C6 ( #11553 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-23 12:46:56 -04:00
Paulus Schoutsen
9b45b046a8
[core] Allow finding all devices as target that match mac suffix ( #13135 )
2026-04-23 08:43:32 -05:00
J. Nick Koston
70ae614abd
[api] Fall back to plaintext for logger connections ( #15938 )
2026-04-23 08:23:38 -05:00
J. Nick Koston
8f9b91eece
[wifi] Avoid BDK 3.0.78 wifi_event_sta_disconnected_t collision on BK72xx ( #15942 )
2026-04-23 08:22:17 -05:00
J. Nick Koston
3ca86fc3fc
[core] Raise WDT_FEED_INTERVAL_MS to 2000ms on BK72xx ( #15943 )
2026-04-23 08:21:46 -05:00
J. Nick Koston
b38db617a2
[core] Clean up stale includes and inline yield_with_select_ in application ( #15945 )
2026-04-23 08:21:05 -05:00
J. Nick Koston
13fe881f70
[scheduler][core] Lock-free fast-path on ESPHOME_THREAD_MULTI_NO_ATOMICS via __atomic builtins ( #15947 )
2026-04-23 08:20:31 -05:00
J. Nick Koston
50c181671c
[ci] Better explain too-big bot review message ( #15939 )
2026-04-23 06:47:16 -05:00
PolarGoose
43a371caab
[dsmr] Small refactoring: Move Aes128GcmDecryptorImpl type inside esphome::dsmr namespace. ( #15940 )
2026-04-23 04:08:49 -05:00
dependabot[bot]
64290d32a1
Bump aioesphomeapi from 44.20.0 to 44.21.0 ( #15941 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-23 03:32:12 -05:00
J. Nick Koston
9685d4eb0b
[core] feed_wdt wraps feed_wdt_with_time ( #15932 )
2026-04-23 01:15:44 -05:00
Keith Burzinski
4c2efd4165
[radio_frequency] Add experimental radio_frequency entity type (base component + API) ( #15556 )
2026-04-23 01:15:25 -05:00
J. Nick Koston
6f00ea1457
[core] Move host socket-select wake mechanism into wake.h/wake.cpp ( #15931 )
2026-04-23 15:53:10 +12:00
Jonathan Swoboda
a881121110
[ota] Make set_auth_password() lambda-callable via empty-password opt-in ( #15928 )
2026-04-22 23:06:31 -04:00
dependabot[bot]
f8167c9a70
Bump aioesphomeapi from 44.19.0 to 44.20.0 ( #15936 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-23 02:40:19 +00:00
Jesse Hills
e1d629f0d2
[time] Handle Windows EINVAL when validating POSIX TZ strings ( #15934 )
2026-04-23 14:35:13 +12:00
Clyde Stubbs
224cc7b419
[lvgl] Triggers on tabview tabs fix ( #15935 )
2026-04-23 14:35:00 +12:00
Jesse Hills
4d4347d33a
Merge branch 'release' into dev
2026-04-23 14:10:54 +12:00
Jesse Hills
6ca5b31fab
Merge pull request #15933 from esphome/bump-2026.4.2
...
2026.4.2
2026-04-23 14:10:10 +12:00
dependabot[bot]
17f9269841
Update wheel requirement from <0.47,>=0.43 to >=0.43,<0.48 ( #15926 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 19:12:15 -05:00
dependabot[bot]
6253947311
Bump click from 8.3.2 to 8.3.3 ( #15927 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 19:12:02 -05:00
Jesse Hills
00b71208a6
Bump version to 2026.4.2
2026-04-23 11:18:39 +12:00
Keith Burzinski
76eb8f697f
[usb_uart] Derive TX output chunk count from buffer_size config ( #15909 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
2a3bd8bc85
[io_expanders] Self-heal interrupt-driven expanders when INT stays asserted across the read ( #15923 )
2026-04-23 11:18:39 +12:00
Keith Burzinski
629da4d878
[esp32] Add Secure Boot V1 ECDSA signing scheme for pre-rev-3.0 ESP32 ( #15882 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
5c2ceb63e0
[ld2412] Fix null deref in set_basic_config when entities unconfigured ( #15893 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
92cb6dd7fd
[core] Fix Pvariable placement new losing subclass identity ( #15881 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
06e5931ad7
[image] Fix rodata bloat for multi-frame RGB565+alpha animations ( #15873 )
2026-04-23 11:18:39 +12:00
Clyde Stubbs
dc5b06285d
[lvgl] Fix update of textarea attached to keyboard ( #15866 )
2026-04-23 11:18:38 +12:00
Clyde Stubbs
3d0a2421a6
[lvgl] Fix overloads for setting images on styles ( #15864 )
2026-04-23 11:18:38 +12:00
Clyde Stubbs
22f6791dea
[lvgl] Fix format of hello world page ( #15868 )
2026-04-23 11:18:38 +12:00
Keith Burzinski
70b1d9a087
[api_protobuf] Support compound ifdef conditions in proto generator ( #15930 )
2026-04-22 17:57:15 -05:00
Keith Burzinski
36720c8495
[usb_uart] Derive TX output chunk count from buffer_size config ( #15909 )
2026-04-23 09:16:14 +12:00
Jonathan Swoboda
c48ab2ef92
[io_expanders] Self-heal interrupt-driven expanders when INT stays asserted across the read ( #15923 )
2026-04-23 09:05:15 +12:00
Keith Burzinski
162ee2ecaf
[i2s_audio] Split speaker into base class and standard subclass ( #15404 )
2026-04-22 14:40:18 -05:00
Asela Fernando
a73bac0b5f
[ac_dimmer] Zero-crossing interrupt type ( #15862 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 14:57:53 -04:00
Rishab Mehta
4e84611ae7
[internal_temperature] Fix internal Temperature discrepancy on BK7231T ( #15771 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 17:50:59 +00:00
PolarGoose
ea2e36e55a
[dsmr] Improve performance. Add missing sensors. Remove Crypto-no-arduino. ( #15875 )
2026-04-22 13:49:14 -04:00
Michael Turner
fcbc4d64fe
[one_wire] Reset bus before SKIP ROM command ( #14669 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-22 13:20:02 -04:00
Timothy
dcd103cec0
[cse7761] bidirectional active power ( #15162 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 13:11:18 -04:00
Ludovic BOUÉ
5e715692d6
[network] Reorder IPv6 configuration for network components ( #11694 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 17:01:20 +00:00
rwrozelle
d5263cd46e
[esp32] add watchdog_timeout configuration variable ( #15908 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-22 13:01:23 +00:00
J. Nick Koston
c399cd2fa2
[core] RAII guard for component loop phase ( #15897 )
2026-04-22 14:04:29 +02:00
J. Nick Koston
f6bf6dc8e5
[core] Dedupe yield() fast path in wakeable_delay and always-inline ( #15915 )
2026-04-22 13:52:40 +02:00
J. Nick Koston
e35b435f02
[libretiny] Inline xTaskGetTickCount() for millis() fast path ( #15918 )
2026-04-22 13:52:27 +02:00
J. Nick Koston
886cd7ab72
[core] Collapse adjacent USE_HOST ifdef blocks in Application ( #15914 )
2026-04-22 07:47:01 -04:00
dependabot[bot]
73714dc489
Bump aioesphomeapi from 44.18.0 to 44.19.0 ( #15920 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 12:26:25 +02:00
dependabot[bot]
5218bbd791
Update argcomplete requirement from >=2.0.0 to >=3.6.3 ( #15921 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 12:19:47 +02:00
J. Nick Koston
23ad30cb4c
[esp32] Use xTaskGetTickCount() for millis() when tick rate is 1kHz ( #15661 )
2026-04-22 06:44:53 +02:00
J. Nick Koston
a3b49d1ed9
[core] Use MAC_ADDRESS_BUFFER_SIZE constant instead of duplicated literal ( #15913 )
2026-04-22 04:43:33 +00:00
J. Nick Koston
9c80cbf19c
[light] Reduce validate_ clamp code size and speed up unit-range clamps ( #15728 )
2026-04-22 16:34:26 +12:00
J. Nick Koston
699cf9690a
[core] Optimize value_accuracy_to_buf to avoid snprintf ( #15596 )
2026-04-22 16:31:34 +12:00
J. Nick Koston
67576d4879
[rp2040] Tune oversized lwIP defaults for ESPHome ( #14843 )
2026-04-22 06:29:13 +02:00
J. Nick Koston
edcf96d057
[wifi] Use queue abstraction for LibreTiny WiFi events ( #15343 )
2026-04-22 06:24:09 +02:00
dependabot[bot]
bb81c91d0c
Update tzdata requirement from >=2021.1 to >=2026.1 ( #15911 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 03:08:58 +00:00
dependabot[bot]
78f1467be4
Bump aioesphomeapi from 44.17.0 to 44.18.0 ( #15912 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 03:08:42 +00:00
dependabot[bot]
da44d43981
Update pyparsing requirement from >=3.0 to >=3.3.2 ( #15910 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 05:07:48 +02:00
Javier Peletier
9cebce1b6e
[substitutions] Improve error messages with include stack trace ( #15874 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-22 03:19:01 +02:00
Jesse Hills
b20fedd806
[bl0906] Disable loop when idle and introduce BL0906Stage enum ( #15884 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-22 03:18:21 +02:00
Keith Burzinski
ee91ad8f06
[esp32] Add Secure Boot V1 ECDSA signing scheme for pre-rev-3.0 ESP32 ( #15882 )
2026-04-22 11:25:05 +12:00
dependabot[bot]
7560112144
Bump aioesphomeapi from 44.16.1 to 44.17.0 ( #15906 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-21 22:08:41 +02:00
Geoff
43c6b839cd
[sensor] Filter to round to significant digits ( #11157 )
...
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-21 14:00:03 +00:00
Edward Firmo
0c9d443a5c
[esp32_ble] Add use_psram option to offload BT memory allocation to SPIRAM ( #15644 )
2026-04-21 15:18:46 +02:00
J. Nick Koston
14defb69b6
[template] Use placement new for template text restore saver ( #15883 )
2026-04-21 13:04:13 +00:00
Egor Vorontsov
3a6f3dfb94
[lock] Implemented open states support ( #15120 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-21 13:03:07 +00:00
J. Nick Koston
7bd36e0c8d
[debug] Migrate trivial buf_append_printf sites to buf_append_str ( #15885 )
2026-04-21 12:51:45 +00:00
J. Nick Koston
e4f413adad
[core] decouple main loop cadence from scheduler wake timing ( #15792 )
2026-04-21 14:48:21 +02:00
J. Nick Koston
1504ac3d19
[core] Replace strnlen in buf_append_str for Zephyr compatibility ( #15892 )
2026-04-21 12:32:29 +00:00
J. Nick Koston
947c714f89
[core] Inline api_is_connected() for hot-path callers ( #15888 )
2026-04-21 13:48:33 +02:00
J. Nick Koston
e4d5886383
[zwave_proxy] Inline loop() hot-path fast-paths for response_handler_ and process_uart_ ( #15887 )
2026-04-21 13:48:16 +02:00
J. Nick Koston
f504099485
[api] Replace clients_ std::vector with compile-time std::array + uint8_t count ( #15889 )
2026-04-21 13:47:37 +02:00
Jonathan Swoboda
cb56f9a9bf
[qmc5883l] Use GPIO interrupt when DRDY pin is configured ( #15876 )
2026-04-21 07:47:16 -04:00
Jonathan Swoboda
26a656af29
[ld2412] Fix null deref in set_basic_config when entities unconfigured ( #15893 )
2026-04-21 07:47:07 -04:00
dependabot[bot]
a8bd035b62
Bump CodSpeedHQ/action from 4.13.1 to 4.14.0 ( #15880 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-21 04:44:25 +02:00
J. Nick Koston
f05fa45747
[sensor] Specialize throttle_with_priority NaN-only case ( #15823 )
2026-04-21 04:41:13 +02:00
J. Nick Koston
78875abee4
[core] Make buf_append_str PROGMEM-aware on ESP8266 ( #15738 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-21 04:40:40 +02:00
J. Nick Koston
37608c2656
[ltr390] Reduce data polling delay and timeout ( #15507 )
2026-04-21 04:40:24 +02:00
J. Nick Koston
a5b1f3eece
[core] Remove pre-sleep socket scan from fast select path ( #15639 )
2026-04-21 04:40:03 +02:00
J. Nick Koston
0d3a3552da
[core] Move heap-allocating helpers to alloc_helpers.h/cpp ( #15623 )
2026-04-21 04:39:49 +02:00
J. Nick Koston
0a0176d600
[core] raise WDT_FEED_INTERVAL_MS from 3 ms to 300 ms ( #15846 )
2026-04-21 04:38:12 +02:00
J. Nick Koston
4cb7ea2584
[light] Force-inline LightCall::set_flag_/clear_flag_ ( #15729 )
2026-04-21 04:37:56 +02:00
Jonathan Swoboda
a43ee15b56
[core] Fix Pvariable placement new losing subclass identity ( #15881 )
2026-04-20 22:33:48 -04:00
Jonathan Swoboda
213ab312d2
[image] Fix rodata bloat for multi-frame RGB565+alpha animations ( #15873 )
2026-04-20 16:27:34 -04:00
Kevin Ahrendt
94f30d5950
[micro_wake_word] Use ESPMicroSpeechFeatures from Espressif registry (v1.2.3) ( #15879 )
2026-04-20 16:26:47 -04:00
Elvin Luff
6af341bb5b
[epaper_spi] Support SSD1683 and GDEY042T81 4.2 inch display ( #13910 )
2026-04-20 09:34:31 -04:00
Clyde Stubbs
82656cb0cf
[mipi_dsi] Add Seeed reTerminal d1001 display ( #15867 )
2026-04-20 09:28:52 -04:00
Rui Marinho
b72f5447c3
[modbus] Simplify payload size validation in modbus_helpers ( #15838 )
2026-04-20 09:24:07 -04:00
Clyde Stubbs
73b8e8ac09
[lvgl] Fix update of textarea attached to keyboard ( #15866 )
2026-04-20 09:15:51 -04:00
Clyde Stubbs
9459f0426d
[lvgl] Fix overloads for setting images on styles ( #15864 )
2026-04-20 09:14:15 -04:00
Clyde Stubbs
0dae41aa22
[lvgl] Fix format of hello world page ( #15868 )
2026-04-20 09:13:42 -04:00
Thomas Rupprecht
7321e6e52f
[rtttl] allow any control parameters order and default value fallback ( #14438 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-20 09:10:05 -04:00
guillempages
f0c21520aa
[mipi_rgb] Add definitions for sunton displays ( #15858 )
2026-04-20 21:56:56 +10:00
Jesse Hills
b0c133201f
Merge branch 'release' into dev
2026-04-20 13:53:30 +12:00
Jesse Hills
572fb83015
Merge pull request #15859 from esphome/bump-2026.4.1
...
2026.4.1
2026-04-20 13:52:45 +12:00
Clyde Stubbs
0d3db2b670
[lvgl] Fix angles for arc ( #15860 )
2026-04-20 12:08:35 +12:00
Clyde Stubbs
e5f6a734ba
[lvgl] Fix angles for arc ( #15860 )
2026-04-20 12:08:07 +12:00
J. Nick Koston
bab9cd3e7a
[runtime_stats] Track main loop active time and report overhead ( #15743 )
2026-04-20 11:20:39 +12:00
Jesse Hills
36812591eb
Bump version to 2026.4.1
2026-04-20 10:20:56 +12:00
Javier Peletier
1862c6115f
[packages] Improve error messages with include stack and fix missing path propagation ( #15844 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-20 10:20:56 +12:00
J. Nick Koston
ef780886c3
[substitutions] Fix substitutions: !include file.yaml regression ( #15850 )
2026-04-20 10:20:56 +12:00
J. Nick Koston
602305b20d
[core] Default PollingComponent() to 1ms when codegen is bypassed ( #15831 )
2026-04-20 10:20:56 +12:00
dependabot[bot]
78701debec
Bump aioesphomeapi from 44.16.0 to 44.16.1 ( #15836 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-20 10:20:56 +12:00
J. Nick Koston
08ac61ae94
[core] Feed WDT unconditionally in main loop to fix empty-config panic ( #15830 )
2026-04-20 10:20:16 +12:00
Clyde Stubbs
6d5340f253
[lvgl] Fix crash with snow on rotated display ( #15822 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
e2dfef5ddc
[runtime_image] Fix RGB order ( #15813 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
1d88027618
[esp32] Downgrade unneeded ignore_pin_validation_error to a warning ( #15811 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
9841deec31
[core] Fix DelayAction compile error with non-const reference args ( #15814 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
ed5852c2d6
[ethernet] Fix SPI3_HOST default breaking compile on variants without SPI3 ( #15809 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-20 10:18:05 +12:00
J. Nick Koston
b26601a3dc
[core] coerce set_interval(0) / update_interval: 0ms to 1ms ( #15799 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
f5806818cd
[image] Fix byte order handling ( #15800 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
c3e739eba9
[mipi_spi] Drawing fixes for native display ( #15802 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
b167b64f06
[lvgl] Guard lv_image_set_src wrapper with LV_USE_IMAGE ( #15789 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
722cfae04c
[esp32] Accept unquoted minimum_chip_revision values ( #15785 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
9cb2b562b9
[ili9xxx] Guard against null buffer in display_() when allocation fails ( #15786 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
81fb6712fe
[bundle] Force-resolve nested IncludeFile during file discovery ( #15762 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
227dfa3730
[qmc5883l] Move per-update log line from DEBUG to VERBOSE ( #15781 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
aa80bdbbc6
[time] Fix RTC is_valid() rejecting valid times after day_of_year cleanup ( #15763 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
914ed10bcc
[core] Diagnose missing cg.templatable in codegen for TEMPLATABLE_VALUE fields ( #15758 )
2026-04-20 10:18:05 +12:00
Boris Krivonog
92c99a7d41
[mitsubishi_cn105] use HEAT_COOL mode to enable temperature slider ( #15748 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
af1aaba547
[lvgl] Clean the build if lv_conf.h changes ( #15777 )
2026-04-20 10:18:05 +12:00
dependabot[bot]
5a2b7546f6
Bump aioesphomeapi from 44.15.0 to 44.16.0 ( #15757 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
4047d5af5f
[sx126x][sx127x] Fix frequency precision loss from float32 codegen ( #15753 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
6857e1ceb4
[st7789v] Fix swapped offset_width/offset_height in model presets ( #15755 )
2026-04-20 10:18:04 +12:00
J. Nick Koston
4479212008
[core] Inline feed_wdt hot path with out-of-line slow path ( #15656 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-20 10:18:04 +12:00
J. Nick Koston
cb90ac45c3
[core] Fix app_state_ status bits clobbered for non-looping components ( #15658 )
2026-04-20 10:18:04 +12:00
J. Nick Koston
1847666e75
[core] Default PollingComponent() to not run when codegen is bypassed ( #15832 )
2026-04-19 17:05:27 -05:00
Javier Peletier
aad1318b4a
[packages] Improve error messages with include stack and fix missing path propagation ( #15844 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-19 21:09:14 +00:00
J. Nick Koston
7a23a339e9
[substitutions] Fix substitutions: !include file.yaml regression ( #15850 )
2026-04-20 09:00:31 +12:00
J. Nick Koston
38d894dfe7
[ld2412] Fix flaky integration test race condition ( #15833 )
2026-04-18 08:17:22 -05:00
J. Nick Koston
b293be23b0
[ci] Honor CONFLICTS_WITH when grouping component tests ( #15834 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-04-18 08:11:38 -05:00
J. Nick Koston
ccb53e34ca
[core] Default PollingComponent() to 1ms when codegen is bypassed ( #15831 )
2026-04-18 09:04:51 -04:00
dependabot[bot]
ec9d59f3dc
Bump aioesphomeapi from 44.16.0 to 44.16.1 ( #15836 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-18 12:32:36 +00:00
J. Nick Koston
df72aa26c0
[core] Feed WDT unconditionally in main loop to fix empty-config panic ( #15830 )
2026-04-18 11:58:54 +00:00
Clyde Stubbs
d3691c7ca5
[lvgl] Fix crash with snow on rotated display ( #15822 )
2026-04-18 09:17:28 +10:00
J. Nick Koston
562ce541a0
[bme680_bsec] [bme68x_bsec2] Mark the two BSEC variants as mutually exclusive ( #15826 )
2026-04-17 17:54:24 -05:00
J. Nick Koston
6ebe1e92eb
[ci] Scope local pylint pre-commit hook to esphome/ ( #15818 )
2026-04-17 17:54:12 -05:00
Clyde Stubbs
1bf455cfbb
[runtime_image] Fix RGB order ( #15813 )
2026-04-18 06:42:45 +10:00
Clyde Stubbs
290e213cd0
[mipi_spi] Add Sunton ESP32-2424S012 ( #15812 )
2026-04-18 06:41:33 +10:00
Jonathan Swoboda
b1b0005574
[esp32] Downgrade unneeded ignore_pin_validation_error to a warning ( #15811 )
2026-04-17 16:14:54 -04:00