Commit Graph
3449 Commits
Author SHA1 Message Date
J. Nick Koston c7414e464a Try every image on a rollback and report all that stay, keep restoring the other files after a second interrupt 2026-09-30 01:57:15 +02:00
J. Nick Koston 27c6ca863f Cover a plain subdirectory in the shared secret scan 2026-09-30 01:54:32 +02:00
J. Nick Koston d32c74343d Scan the configuration once per run, place a merged key only by its value's line, drop every image on a rollback
One parse of the configuration and one walk of the directory per run,
with_sharers called once from the command, the secret name passed to
old_key_edit instead of found again, one !secret pattern, the encryption
not offered error folded into the branch it shared, the ota item filter
shared with __main__, and terser docstrings.
2026-09-30 01:47:15 +02:00
J. Nick Koston 84ae05b290 Discard the image built with the new key on a rollback, show the keys when an interrupt lands in the rollback 2026-09-30 01:33:29 +02:00
J. Nick Koston 3dc07bd565 [cli] Add rotate-key to change the OTA encryption key over the air
Builds on the line editor from #19410: the generic pieces it still needed
(insertion, apply with rollback, restore, editable file checks) go into
yaml_edit, the OTA key location and old_key handling into ota_key_edit,
and the command itself into esphome/cli/rotate_key.py.
2026-09-30 01:28:38 +02:00
J. Nick Koston 215fb68717 Say old_key can go only after run, whose image was just built from this config 2026-09-30 01:17:28 +02:00
J. Nick Koston 6faed242f2 Say the current key applies once the firmware has booted, warn when old_key was the key that worked 2026-09-30 01:17:28 +02:00
J. Nick Koston b4433bc031 Keep an invalid curve point a plain handshake error, not a key failure 2026-09-30 01:17:28 +02:00
J. Nick Koston 12cc1fd9fc Use the shared run_ota kwargs in the bare block test 2026-09-30 01:17:28 +02:00
J. Nick Koston ae8f104bf7 Never wait before an intentional reconnect, say when both keys were rejected 2026-09-30 01:17:28 +02:00
J. Nick Koston 6fe473f289 Report old_key obsolete only after an app image from this config, cover the fallback on a non key reject 2026-09-30 01:17:27 +02:00
J. Nick Koston 0a84057fed Retry with old_key only on a key failure, notice only after an app image, reject merged blocks with different old keys 2026-09-30 01:17:27 +02:00
J. Nick Koston d8079e4423 Reconnect at once with the old key, one rejection path, warn to remove old_key after the upload 2026-09-30 01:17:27 +02:00
J. Nick Koston 86d7793d13 [ota] Add old_key so an upload can retry with the previous key 2026-09-30 01:17:27 +02:00
J. Nick Koston c8f5180e4c Tell the user up front that a serial target ignores the key, and do not ask for it 2026-09-30 01:16:55 +02:00
J. Nick Koston 12028bb42f Ignore the presented key for a serial target and a host run instead of validating it 2026-09-30 01:16:55 +02:00
J. Nick Koston 45b0718d8a Skip the platform check only for a serial target; refuse the web_server platform up front otherwise 2026-09-30 01:16:55 +02:00
J. Nick Koston 5d96dc983d Leave a target picked in the chooser to upload_program, which refuses the key on the web_server path 2026-09-30 01:16:55 +02:00
J. Nick Koston 6c6825cfb0 Count the SERIAL selector as a serial target before the platform check 2026-09-30 01:16:55 +02:00
J. Nick Koston bc95925d24 Let a serial target through the platform check 2026-09-30 01:16:55 +02:00
J. Nick Koston 5bac38a9c9 Count configurations only for upload and run 2026-09-30 01:16:55 +02:00
J. Nick Koston 54b351682f Refuse one key for several configs, share the platform scan 2026-09-30 01:16:55 +02:00
J. Nick Koston 25b5c8ff43 Put the new test above the decorator it landed under 2026-09-30 01:16:54 +02:00
J. Nick Koston 52432c9516 Warn when the environment key goes to a command that never uploads, report a bad platform before the prompt 2026-09-30 01:16:54 +02:00
J. Nick Koston 556e2cac04 Cover the upload command taking the key 2026-09-30 01:16:54 +02:00
J. Nick Koston 4f1eab12c3 Scrub ESPHOME_OTA_KEY for every command, reject an empty value, keep serial configs without OTA working 2026-09-30 01:16:54 +02:00
J. Nick Koston d209a4758d Warn on every upload path that drops the key, show the prompt on a pipe, pin the prompt before compile 2026-09-30 01:16:54 +02:00
J. Nick Koston baac3db639 Accept the key from ESPHOME_OTA_KEY for calling programs 2026-09-30 01:16:54 +02:00
J. Nick Koston 8a7db59793 Refuse web_server before prompting and stub the prompt in tests 2026-09-30 01:16:54 +02:00
J. Nick Koston 0170786ec8 Test the prompted OTA key 2026-09-30 01:16:54 +02:00
J. Nick Koston 7187acec04 [core] Add a line based yaml editor and use it for rename (#19410) 2026-09-30 11:15:14 +13:00
J. Nick Koston 25ddc94d5d [web_server_idf] Build state documents in a stack arena so a state event does no heap allocation (#19383) 2026-09-30 11:10:40 +13:00
J. Nick Koston 5502f620d4 [web_server_idf] Send events straight from the caller's buffers instead of a std::string (#19376) 2026-09-30 11:10:40 +13:00
guillempagesandJ. Nick Koston 99c7f9e625 [runtime_image] Improve format logs (#19903)
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-09-29 23:28:28 +02:00
Clyde Stubbs 35d41adf86 [lvgl] Animation updates and debug borders option (#19420) 2026-09-30 07:20:13 +10:00
Keith BurzinskiandClaude Fable 5.1 662c7db222 [nfc] Pass tags to triggers by reference and keep the listener list in static storage (#19902)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-29 15:00:23 -05:00
J. Nick Koston 46be513a39 [core] Create the PlatformIO HTTP cache dir before the first registry lookup (#19906) 2026-09-29 19:34:38 +00:00
J. Nick Koston b8ba8aa1a8 [espidf] Run cmake and ninja directly instead of through idf.py (#19871) 2026-09-29 19:55:22 +02:00
J. Nick Koston 55a7340d06 [esp8266] Make the native arduino toolchain the default (#19886) 2026-09-29 18:52:28 +02:00
J. Nick Koston b22f2e6b4c [core] Leave the precompiled header off on Windows for a GCC with bug 14940 (#19875) 2026-09-29 18:51:12 +02:00
J. Nick Koston a7e0afeb46 [esp8266] Use our own Arduino core builds for the native toolchain (#19876) 2026-09-29 18:38:51 +02:00
J. Nick Koston 5be41dec15 [esp8266] Use our own compiler builds for the native toolchain (#19849) 2026-09-29 18:31:24 +02:00
J. Nick Koston 5fdb73aceb [libretiny] Load the precompiled header on Apple Silicon Macs (#19857) 2026-09-29 18:26:40 +02:00
n-IA-haneandn-IA-hane 627832f7ba [speaker_source] Account for playback callbacks during speaker writes (#19499)
Co-authored-by: n-IA-hane <n-IA-hane@users.noreply.github.com>
2026-09-29 10:36:37 -04:00
Christopher PruijsenandJonathan Swoboda 757a1c42f9 [dfrobot_sen0395] Fix output_latency treating milliseconds as seconds (#19873)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-09-29 09:03:19 -04:00
54a9238425 [epaper_spi] reTerminal Sticky: Four-level grayscale for SSD1677 panels, and a full-refresh action (#19213)
Co-authored-by: Pierre <pierre@mysweethome.ch>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
2026-09-29 19:38:01 +10:00
J. Nick Koston 21c9604918 [network] Keep lwip off the PSRAM tier when Ethernet is configured (#19367) 2026-09-29 01:56:17 -05:00
Clyde Stubbs 2d6a7dae54 [mipi_rgb] Fix SWRESET delay for st7701s (#17646) 2026-09-29 09:40:39 +10:00
J. Nick Koston 30dc453dc1 [ethernet] Move received frames to PSRAM on SPI ethernet chips (#19377) 2026-09-29 10:30:51 +13:00
Clyde Stubbs 13c27429a4 [split_buffer] Allow direct access to buffer chunks (#19819) 2026-09-29 06:30:29 +10:00