J. Nick Koston
04ee66d76b
Log the CCCD write status as a signed int and name the handle
...
The neutral write callback reports an int status, so %x printed
errno-style negatives as ffffff..; include the failing handle too.
Also correct the hex buffer comment: the size comes from the V2
minimum payload, not the longest message.
2026-10-13 20:18:15 -10:00
J. Nick Koston
9f25e3eba0
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-10-13 13:35:01 -10:00
J. Nick Koston
c83ea861eb
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
...
# Conflicts:
# esphome/components/ble_client/automation.cpp
2026-10-13 13:34:04 -10:00
Panoplian
3cdcf0417a
[lvgl] Make the list_outside_block tests work offline ( #20676 )
2026-10-13 13:31:08 -10:00
J. Nick Koston
c6e90de262
[ci] Catch out-of-class member log tags and keep midea's in flash ( #20674 )
2026-10-14 12:21:24 +13:00
J. Nick Koston
92f6ab8367
[ci] Lint log tags in headers and core ( #20668 )
2026-10-14 12:21:24 +13:00
J. Nick Koston
f61955baa2
[core] Declare the remaining log tags with ESPHOME_LOG_TAG ( #20666 )
2026-10-14 12:21:23 +13:00
J. Nick Koston
36e1d831d3
[core] Add a decimal fast path to parse_number<float> ( #20639 )
2026-10-14 12:18:35 +13:00
J. Nick Koston
63616bf642
[rtttl] Play a configured song from static storage without copying it ( #19569 )
2026-10-14 12:06:27 +13:00
d275926f65
[mdns] Advertise the connected interface in the network TXT record ( #20673 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-13 17:55:22 -05:00
Andrej Friesen
f265c46c21
[PCA9505] Add PCA9505/PCA9506 40-channel GPIO expander ( #20667 )
2026-10-13 12:50:43 -10:00
Frédéric Metrich and Claude Opus 5.5
7d735f0677
[emontx] Lock the emonTx on reboot when its firmware supports it ( #20621 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 12:37:09 -10:00
Remco van Essen
5c23a827b6
[tmc2209] Add current and diagnostic sensors ( #20638 )
2026-10-13 12:35:55 -10:00
Jonathan Swoboda
e265c0c0fc
[core] Sync the static analysis dependency pins with the code ( #20681 )
2026-10-13 12:30:42 -10:00
J. Nick Koston
a0c7d754cb
[syslog] Keep the log level to severity table in flash ( #20662 )
2026-10-13 12:22:35 -10:00
Jesse Hills
a6dbd72c53
Merge branch 'beta' into dev
2026-10-14 11:15:09 +13:00
Jesse Hills
9d530f5c56
Merge pull request #20680 from esphome/bump-2026.10.0b4
...
2026.10.0b4
2026-10-14 11:14:49 +13:00
Panoplian
6562c49686
[thermostat] Allow a dry-only thermostat without cool_action ( #20682 )
2026-10-13 12:08:13 -10:00
guillempages
a97ce3a201
[image] Fix pillow deprecation warning ( #20679 )
2026-10-13 11:58:21 -10:00
Jesse Hills
5a78f636b9
Bump version to 2026.10.0b4
2026-10-14 10:43:50 +13:00
tomaszduda23 and Claude
53d504137b
[nrf52] Accept S140 7.2.0 and 7.3.0 in the sd140_v7 DFU package ( #20661 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-10-14 10:43:49 +13:00
bb0546fc0b
[script] Keep the running script.wait item out of the queue while its chain runs ( #20570 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-14 10:43:49 +13:00
emes30 and J. Nick Koston
b43630cf8e
[rp2_pio] Use pioasm 4.1.0 so PIO programs run on RP2350 ( #19260 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-14 10:43:49 +13:00
Firat Hajiyev and Firat17aze
c9664d4e42
[wifi] Reject unsupported WPA3 on ESP8266 ( #20592 )
...
Co-authored-by: Firat17aze <187820330+Firat17aze@users.noreply.github.com >
2026-10-14 10:43:49 +13:00
Kevin Ahrendt
39ea6a3220
[audio] Bump microFLAC to v0.3.0 ( #20591 )
2026-10-14 10:43:49 +13:00
J. Nick Koston
f4a6d6f18b
[core] Create the PlatformIO HTTP cache dir before the prefetch resolve threads run ( #20579 )
2026-10-14 10:43:49 +13:00
esphome[bot]
6c24d4aa43
Bump aioesphomeapi from 46.9.0 to 46.10.0 ( #20563 )
2026-10-14 10:43:49 +13:00
J. Nick Koston
0dc1d3b5a1
[toshiba] Move the lookup tables to PROGMEM ( #20636 )
2026-10-13 11:25:18 -10:00
tomaszduda23 and Claude
42341d05f9
[nrf52] Accept S140 7.2.0 and 7.3.0 in the sd140_v7 DFU package ( #20661 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-10-13 11:12:08 -10:00
J. Nick Koston
f941fee5ed
[homeassistant] Add sensor platform benchmarks ( #20637 )
2026-10-13 11:10:14 -10:00
Bonne Eggleston
8721976066
[epaper_spi] Abandon an update when the busy pin never clears ( #20555 )
2026-10-14 07:47:09 +11:00
Bonne Eggleston
05bf7d3440
[epaper_spi] Write pixel blocks straight into mono buffers ( #20552 )
2026-10-14 07:40:56 +11:00
J. Nick Koston
6e24529ab9
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-10-13 10:16:48 -10:00
J. Nick Koston
955afc4847
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-10-13 10:12:14 -10:00
918b7d2553
[script] Keep the running script.wait item out of the queue while its chain runs ( #20570 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-13 09:31:19 -10:00
rwrozelle and Claude Opus 5.5
417ab4d2e9
[openthread] Add core_options for OpenThread compile-time options ( #20595 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 15:00:45 -04:00
Jonathan Swoboda
0821c84b7a
[core] Let a nested repeat shadow the outer iteration variable ( #20634 )
2026-10-13 14:35:24 -04:00
Clyde Stubbs
a827058928
[lvgl] Change deprecated calls to current version ( #20620 )
2026-10-13 14:27:50 -04:00
J. Nick Koston
3063b76210
[haier_tundra] Build the IR frame on the stack ( #20635 )
2026-10-13 14:25:36 -04:00
Remco van Essen and Claude Opus 5.5
55261ae7e5
[tmc2209] Add driver diagnostics and stall detection ( #20618 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 08:17:25 -10:00
cociweb and J. Nick Koston
1d8423edd8
[es8388] Add initial option configuration for DAC output and ADC input mic ( #16342 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-13 08:14:43 -10:00
n-IA-hane and n-IA-hane
d27ec8ec49
[voice_assistant] Make TTS playback start timeout configurable ( #18707 )
...
Co-authored-by: n-IA-hane <n-IA-hane@users.noreply.github.com >
2026-10-13 08:13:26 -10:00
Ivan Kruglov and J. Nick Koston
5acbd44067
[pcf8574] Add reset option to preserve outputs across MCU reboots ( #20589 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-13 08:12:28 -10:00
40271fb597
[haier_tundra] New Climate IR component ( #20469 )
...
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 >
2026-10-13 08:10:36 -10:00
95766ed3ad
[icm20689] Add ICM-20689 6-axis accelerometer/gyroscope (SPI) ( #19234 )
...
Co-authored-by: Ludovic BOUÉ <938089+lboue@users.noreply.github.com >
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.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@home-assistant.io >
2026-10-13 08:07:32 -10:00
4a80d785a8
[filter_lifetime] Add component with sensor/lambda support for is_on … ( #13914 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-13 07:52:46 -10:00
J. Nick Koston
c1c1d2b2ae
[core] Add probe_ota_key, a Noise handshake with the device that sends no image ( #20601 )
2026-10-13 07:28:32 -10:00
Mat931 and Jonathan Swoboda
29a668af04
[esp32_camera] Fix compile warning ( #20628 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-10-13 14:01:17 +00:00
J. Nick Koston
fd541bca2c
[core] Document constexpr constants, per-model schemas and isolated build tests in AGENTS.md ( #20617 )
2026-10-13 08:20:32 -04:00
J. Nick Koston
192ae31e45
[tests] Turn off the Hypothesis deadline for the MAC address tests ( #20614 )
2026-10-13 08:19:10 -04:00
Frédéric Metrich and Claude Opus 5.5
77c9fa2fa4
[emontx] Read the emonTx firmware version ( #20619 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 22:43:02 -10:00
guillempages and J. Nick Koston
25843c5242
[image] Implement RGB111 format ( #20114 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 22:16:44 -10:00
7881dfc5d8
[deep_sleep] Reject wakeup_pin configs that fail after validation ( #18616 )
...
Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 15:29:42 +11:00
e289a94451
[friedrich] New Climate IR component ( #9178 )
...
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@home-assistant.io >
2026-10-12 17:11:21 -10:00
5017165800
[selec_meter] Add EM4M (3-phase) support via model option ( #17782 )
...
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.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@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-13 02:58:25 +00:00
8acf885241
[bq76972] Add BQ76972 BMS chip monitoring component ( #17720 )
...
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 >
2026-10-12 16:43:51 -10:00
f829447b2e
[tmp102] Add number entities for runtime thermostat thresholds ( #20596 )
...
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-10-12 16:25:49 -10:00
74e96b7da6
[INA3221] Add optional flags to expose all functionality ( #16309 )
...
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-10-12 16:21:00 -10:00
753c10e5ea
[ld2410s] Add the distance sensor, firmware version and common parameters (Part 2) ( #8486 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 16:06:45 -10:00
J. Nick Koston
98d3d23ce1
[ecocomfort2] Test the component in isolation ( #20613 )
2026-10-12 15:59:25 -10:00
Rodrigo Martín and J. Nick Koston
d6e5b9b03b
[bq25186] Add the status sensors, buttons, PG/GPO switch and watchdog option (part 2) ( #15736 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 15:50:12 -10:00
J. Nick Koston
02287fdf7b
[sensor] Share filter_out and throttle_with_priority value tables in flash ( #20078 )
2026-10-12 15:48:27 -10:00
J. Nick Koston
2001f60954
[core] Keep string constants in apply conditions in flash on ESP8266 ( #20107 )
2026-10-12 15:48:05 -10:00
J. Nick Koston
5a39097b3a
[light] Keep one copy of the color mode lookup table in flash ( #20394 )
2026-10-12 15:46:41 -10:00
J. Nick Koston
fb14db267c
[const] Move CONF_SERIAL_NUMBER to the shared component constants ( #20611 )
2026-10-13 01:45:52 +00:00
J. Nick Koston
36900e36f9
[esp32_power_management] Build the flash power-down path in a standalone test variant ( #20612 )
2026-10-12 15:45:09 -10:00
a035c17e04
[gt911] Fix the interrupt pin initialisation after reset ( #15021 )
...
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-10-12 15:42:24 -10:00
88fdf822cd
[runtime_image] Speed up RGB565 JPEG decoding ( #19454 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 15:41:30 -10:00
e7a7aa150d
[yaml_util] Raise a clear error for a non-mapping defaults: in a package ( #19425 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 15:36:57 -10:00
J. Nick Koston
54f228766c
[stcc4] Use SUB_SENSOR for the output sensors ( #20605 )
2026-10-12 21:12:39 -04:00
Bascht74
58188305c4
[uart] Keep the swapped UART0 pins on an ESP8266 reload ( #20463 )
2026-10-12 15:09:32 -10:00
J. Nick Koston
afedddafe2
[systa_bus] Use SUB_SENSOR and explicit sub_sensors calls for the sensors ( #20610 )
2026-10-12 20:57:01 -04:00
J. Nick Koston
c3c235dea7
[pzem6l24] Use SUB_SENSOR and explicit sub_sensors calls for the sensors ( #20609 )
2026-10-12 20:56:58 -04:00
J. Nick Koston
39a7f4482a
[bh1745] Use SUB_SENSOR for the sensors ( #20606 )
2026-10-12 20:52:16 -04:00
J. Nick Koston
f3f3ca5a8a
[runtime_image] Add CodSpeed benchmarks for JPEG decoding ( #20603 )
2026-10-12 14:50:24 -10:00
Jesse Hills and J. Nick Koston
bdd2dcd8c6
[weikai] Mark configurable classes as final ( #17292 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 14:39:08 -10:00
J. Nick Koston
a3e373b063
[noise] Add generate_encryption_key and use it in the wizard and dashboard_import ( #20600 )
2026-10-12 20:31:36 -04:00
dc9a7cffbd
[ota] Refuse a second OTA while one is already running ( #20588 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-13 00:28:38 +00:00
4cae63bbaa
[ecocomfort2] Add the read-only sensors and clock sync (Part 2) ( #15447 )
...
Co-authored-by: gledian <gledina.kruja@gmail.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.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@home-assistant.io >
2026-10-12 14:27:16 -10:00
8aab968136
[aranet] Add Aranet BLE sensor support ( #18263 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 14:11:10 -10:00
J. Nick Koston
80fa6efd1e
[core] Document string tables, shared CRC helpers, NaN sentinels and polling start-up in AGENTS.md ( #20599 )
2026-10-12 13:44:49 -10:00
J. Nick Koston
3ad83ad02b
[text_sensor] Share substitute and map filter tables in flash ( #20076 )
2026-10-12 13:40:38 -10:00
J. Nick Koston
b66cde0270
[sensor] Share calibrate_linear and calibrate_polynomial tables in flash ( #20074 )
2026-10-12 13:39:38 -10:00
J. Nick Koston
331d12af2f
[binary_sensor] Share multi click timing tables in flash and skip the default cooldown setter ( #20071 )
2026-10-12 13:39:10 -10:00
318e4b79c1
[apc1] Add support for the ScioSense APC1 air quality sensor (UART) ( #19274 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-10-12 13:38:34 -10:00
J. Nick Koston
99a4ae1f51
[ota] Add old_key so an upload can retry with the previous key ( #19398 )
2026-10-12 13:35:27 -10:00
J. Nick Koston
72ca565a0e
[core] Resume if and while from the end of their branch instead of an embedded continuation action ( #20283 )
2026-10-12 13:35:03 -10:00
J. Nick Koston
cce435a31e
[gpio] Keep each interlock group in one shared flash table ( #20238 )
2026-10-12 13:34:44 -10:00
J. Nick Koston
6c86a8903f
[core] Report incomplete YAML discovery and record remote package sources ( #20312 )
2026-10-12 13:28:17 -10:00
b21354d6d9
[mistral_ir] Add climate component for Mistral MHFE1126A IR AC units ( #17812 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 13:22:34 -10:00
Ilya Esin and J. Nick Koston
fa519cea64
[apds9930] Add ambient light and proximity sensor ( #13125 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 13:14:31 -10:00
Remco van Essen and J. Nick Koston
132e9dac8b
[tmc2209] Add TMC2209 stepper driver ( #20437 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 13:13:11 -10:00
0c43d689d7
[sh1122] Add OLED display driver ( #15295 )
...
Co-authored-by: Nicolas Reinecke <nr@das-labor.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 13:11:51 -10:00
73d5bb3c97
[remko_ar715] Add Remko AR-715 IR climate platform ( #17173 )
...
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-10-12 13:09:40 -10:00
81c275777d
[bmi270] Add optional BMM150 magnetometer support via aux interface ( #18436 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 13:08:41 -10:00
54fdeb7b1b
[samsung] Add climate IR samsung support ( #8004 )
...
Co-authored-by: Georgi Filipov <georgi.filipov@uplink.bg >
Co-authored-by: Jonathan Swoboda <154711427+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: J. Nick Koston <nick@home-assistant.io >
2026-10-12 13:01:22 -10:00
150e32c4be
[renogy_inverter_ble] Add Renogy inverter BLE sensor component ( #16754 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 12:56:50 -10:00
1e13b7f973
[tinyusb] Add tinyusb_keyboard component ( #16079 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 12:56:28 -10:00
Rodrigo Martín and J. Nick Koston
d08d324a83
[bq25186] Add bq25186 1-Cell, 1A Linear Battery Charger component (part 1) ( #15700 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 12:54:35 -10:00
88668f448e
[max17048] Add MAX17048 Li+ Cell Fuel Gauge IC ( #13585 )
...
Co-authored-by: Rodrigo Martín <contact@rodrigomartin.dev >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 12:53:16 -10:00
c5baae35d5
[ezsp_proxy_tap] Add SiLabs EZSP auto-ACK implementation ( #20304 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 12:51:48 -10:00
1c315c3bf2
[ns2009] Add Nsiway NS2009 touchscreen controller component ( #10597 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
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-10-12 12:49:07 -10:00
f9f41ef16e
[MAX31888] Add temperature sensor ( #13567 )
...
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-10-12 12:45:08 -10:00
a68cf669aa
[tca8418] Add TCA8418 keypad component ( #18521 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 12:39:11 -10:00
3ddbf8b3ef
[lp5562] Add LP5562 4-channel I2C LED driver output component ( #18453 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 12:12:11 -10:00
Ryan Gammon and J. Nick Koston
b88eafcd00
[bq27220] Add BQ27220 battery fuel gauge component ( #17702 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 12:05:34 -10:00
d7dd25a1bc
[ld2410s] Add HLK-LD2410S presence radar component ( #10452 )
...
Co-authored-by: NovakI <novaki@debian.ka11 >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:57:16 -10:00
83e5e32e2b
[i2s_clockless_led_strip] Drives LED strips using I2S and DMA ( #20255 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:52:05 -10:00
584d4878eb
[lis3dh] Add LIS3DH accelerometer component ( #17393 )
...
Co-authored-by: Claude <noreply@anthropic.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@home-assistant.io >
2026-10-12 11:44:33 -10:00
93183c661e
[ecocomfort2] Add component for Fantini Cosmi VMC units via BLE (Part 1: hub + fan) ( #17092 )
...
Co-authored-by: gledian <gledina.kruja@gmail.com >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:36:27 -10:00
Anton Viktorov and J. Nick Koston
5a819f4b48
[bh1745] Add BH1745 colour sensor ( #6349 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:34:04 -10:00
Anton Viktorov and J. Nick Koston
2cd7c0eb36
[husb238] Add HUSB238 USB PD controller hub with binary sensors ( #16572 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:31:16 -10:00
1c8808339a
[power_management] Add the power_management domain with an esp32_power_management platform ( #12325 )
...
Co-authored-by: Kevin Ahrendt <kahrendt@gmail.com >
Co-authored-by: Kevin Ahrendt <kevin.ahrendt@openhomefoundation.org >
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@home-assistant.io >
2026-10-12 11:23:55 -10:00
matt123p and pre-commit-ci-lite[bot]
6bf091104f
[es7210] Add TDM support for future AEC support ( #18954 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-12 11:22:17 -10:00
Martin Klingensmith and J. Nick Koston
4e3845ba68
[pd_pioneer_ir] Add Pioneer mini-split IR climate component ( #17680 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:20:13 -10:00
0b6856c052
[udp] Add IPv6 unicast and multicast ( #20590 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 11:17:58 -10:00
Stephen Cox and J. Nick Koston
ffa849753a
[ds3231] Add DS3231 real-time clock hub with temperature sensor ( #18883 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:00:05 -10:00
0f087f425a
[ld2460] Add HLK-LD2460 radar hub with target sensors ( #19002 )
...
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 >
2026-10-12 10:52:04 -10:00
833c6634ad
[lis2dw12] Add ST LIS2DW12 accelerometer component ( #14780 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-13 09:44:51 +13:00
5a3bee638f
[siemens_ira211] Add the Siemens IRA211 protocol and climate platform ( #15154 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-13 09:33:33 +13:00
66ba258baa
[udp] Wake the main loop when a datagram arrives ( #20585 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 08:53:22 -10:00
216e1bee5c
[socket] Read the LwIP interface list under the core lock ( #20583 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 18:15:44 +00:00
emes30 and J. Nick Koston
e0436e2600
[rp2_pio] Use pioasm 4.1.0 so PIO programs run on RP2350 ( #19260 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 18:01:11 +00:00
ca69c33530
[whirlpool] Add the HISENSE_ARG model for Hisense and BGH units sold in Argentina ( #17352 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 07:57:23 -10:00
J. Nick Koston
aa0bd9af72
[core] Add YAML secret reference and registration helpers ( #20343 )
2026-10-12 07:55:38 -10:00
Jonathan Swoboda
9c35bb7426
[esp32] Check the TLS option the active IDF version writes in tests ( #20584 )
2026-10-12 07:48:33 -10:00
J. Nick Koston
af8a0739f0
[web_server] Self contained AP mode: embedded interface served as a captive portal ( #18517 )
2026-10-12 07:46:11 -10:00
99b61760c3
[remote_base] Add the Pioneer WYT transmit protocol ( #17175 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 07:37:31 -10:00
db9138c550
[bl0939] Add current transformer measurement mode support ( #13350 )
...
Co-authored-by: ShuishengPeng <63339353+ackPeng@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-12 07:34:25 -10:00
J. Nick Koston
5bb1f0f779
[statsd] Use the socket UDP API on ESP8266 and RP2040 ( #20557 )
2026-10-12 07:17:01 -10:00
J. Nick Koston
4c549d6e92
[e131] Use the socket UDP API on ESP8266 and RP2040 ( #20559 )
2026-10-12 07:16:47 -10:00
J. Nick Koston
dc719b300b
[udp] Use the socket UDP API on ESP8266 and RP2040 ( #20558 )
2026-10-12 07:16:29 -10:00
J. Nick Koston
f854da4f8d
[cli] Add --prompt-ota-key to present a different key for one upload ( #19397 )
2026-10-12 07:15:51 -10:00
Firat Hajiyev and Firat17aze
2dad6e4f62
[wifi] Reject unsupported WPA3 on ESP8266 ( #20592 )
...
Co-authored-by: Firat17aze <187820330+Firat17aze@users.noreply.github.com >
2026-10-12 07:15:13 -10:00
J. Nick Koston
72ea9ae458
[remote_base] Generate the byte payload transmit actions with no C++ class ( #20568 )
2026-10-12 07:14:19 -10:00
Kevin Ahrendt
9e8845885b
[audio] Bump microFLAC to v0.3.0 ( #20591 )
2026-10-12 11:22:59 -04:00
J. Nick Koston
00872d4336
[ethernet] Skip setters that pass the default PHY address, MDC, MDIO, clock and SPI interface ( #20070 )
2026-10-12 09:56:53 -04:00
J. Nick Koston
780ccfc462
[adc] Skip the output raw, sample count, attenuation and sampling mode setters when they match the defaults ( #20068 )
2026-10-12 09:56:24 -04:00
J. Nick Koston
9acc07a973
[remote_base] Generate transmit_pronto and transmit_rc6 with no C++ class ( #20564 )
2026-10-12 07:48:02 -04:00
J. Nick Koston
698988669d
[remote_transmitter] Compile pronto, rc6, midea and lambda byte payloads in the test config ( #20565 )
2026-10-12 07:37:51 -04:00
J. Nick Koston
bde67d83f2
[noise] Exclude the handshake write step from the loop blocking guard ( #20573 )
2026-10-12 07:33:19 -04:00
J. Nick Koston
057a0c5843
[api] Exclude the spare key refill from the loop blocking guard ( #20574 )
2026-10-12 07:31:15 -04:00
J. Nick Koston
c212950df5
[wifi] Exclude the station connect from the loop blocking guard on LibreTiny ( #20575 )
2026-10-12 07:30:59 -04:00
J. Nick Koston
3c88d39192
[remote_base] List the hob2hood, nexus and onkyori protocol defines in defines.h ( #20577 )
2026-10-12 07:28:33 -04:00
J. Nick Koston
c0d4287c6e
[core] Create the PlatformIO HTTP cache dir before the prefetch resolve threads run ( #20579 )
2026-10-12 07:28:07 -04:00
BugHaver and J. Nick Koston
3472ac3dcc
[heatpumpir] Add Eco and Boost presets and fix fan speeds on Mitsubishi Heavy ZJ and ZMP ( #16877 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 23:44:01 -10:00
5a90bceba0
[cse7766] Clamp a power factor above 1 instead of publishing NaN ( #15307 )
...
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 >
2026-10-11 23:42:17 -10:00
af76f19ab4
[heatpumpir] Add ZMP IR receiver ( #17099 )
...
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 >
2026-10-11 23:18:22 -10:00
e92d239996
[dsmr] add Switzerland channel 1-1 sensors (EWL Luzern AM550) ( #17391 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 22:37:05 -10:00
602bf00435
[daikin_brc] Add sub_unit parameter for multi-unit addressing ( #15234 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-11 22:21:26 -10:00
mfishma
1e05106a78
[mipi_spi] Add M5STACK-ATOMS3R-ST7735 as a display panel configuration ( #18673 )
2026-10-12 08:01:48 +00:00
marshn and J. Nick Koston
061b27af02
[remote_base] Add a data option and checksum handling to the Drayton protocol ( #13060 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 21:54:55 -10:00
Siddharth Singh and J. Nick Koston
d265ed2b9e
[remote_base] Fix NEC command_repeats to send repeat frames ( #17663 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 21:29:09 -10:00
20cdca6f18
[remote_base] Decode the full MagiQuest frame and check its checksum ( #10622 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 07:01:12 +00:00
toups and J. Nick Koston
c668ca516c
[remote_base] updates to support 56 bit panasonic codes ( #20260 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 20:48:55 -10:00
Frédéric Metrich and Claude Opus 5.5
7fbdcb0205
[emontx] Lock the emonTx across reboots ( #20576 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 20:42:52 -10:00
Zach Isbach
92a4e283a9
[epaper_spi] Add Good Display GDEY0213F51 4-color e-paper support ( #17991 )
2026-10-12 17:40:59 +11:00
Frédéric Metrich and Claude Opus 5.5
ba9061e34e
[nextion] Pass std::string to custom-protocol automations that defer ( #20571 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 20:30:53 -10:00
0c645ac3a1
[remote_base] Adding Marantz RC5 Extended protocol ( #13164 )
...
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 06:24:50 +00:00
J. Nick Koston
eb8a793f6e
[core] Add a name truncation helper and keep the MAC suffix in the nRF52 BLE name ( #19768 )
2026-10-11 20:22:11 -10:00
36082b23c2
[remote_base] Add the Somfy RTS transmit protocol ( #16502 )
...
Co-authored-by: Copilot Autofix powered by AI <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@home-assistant.io >
2026-10-11 20:11:15 -10:00
esphome[bot]
8191cd18d2
[ci] Refresh integration test durations ( #20578 )
2026-10-12 06:02:07 +00:00
2692e0f189
[remote_base] Add Nexus RF protocol support ( #13577 )
...
Co-authored-by: zry98 <dev@zry.io >
Co-authored-by: Citizen <kvirbickas@gmail.com >
Co-authored-by: Citizen07 <34106434+Citizen07@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
Signed-off-by: zry98 <dev@zry.io >
2026-10-11 19:36:07 -10:00
Ivan Kruglov and J. Nick Koston
29db7b3f51
[bl0939] Add optional internal temperature sensor ( #19415 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 05:33:44 +00:00
Firat Hajiyev
1c1b4d13ad
[core] Mask integer-valued credentials without changing code generation ( #20430 )
2026-10-11 18:58:41 -10:00
J. Nick Koston
f8076fe90b
[core] Add UnavoidableBlockingScope for blocking that cannot be shortened ( #19020 )
2026-10-11 18:48:41 -10:00
19eeab0385
[wifi] Add DHCP lease cache ( #17767 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-11 18:48:13 -10:00
3f21ddf6ff
[lvgl] Add a color picker widget ( #17883 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 15:12:22 +11:00
J. Nick Koston
5c1c946e88
[wake_on_lan] Use the socket UDP API on ESP8266 and RP2040 ( #20556 )
2026-10-11 18:09:11 -10:00
J. Nick Koston
698935c321
[seeed_mr24hpc1] Remove the duplicate startup delay constant left by the beta merge ( #20569 )
2026-10-11 17:38:41 -10:00
J. Nick Koston
0c6543c4a6
[remote_base] Name transmit as a template in ProtocolCall::perform ( #20566 )
2026-10-11 17:38:38 -10:00
4688df3b94
[mcp9808] Remove k7hpn as codeowner ( #20561 )
...
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-10-11 17:06:46 -10:00
esphome[bot]
32f416109e
Bump aioesphomeapi from 46.9.0 to 46.10.0 ( #20563 )
2026-10-12 03:05:16 +00:00
J. Nick Koston
08a55c97b7
[remote_base] Generate the simple transmit actions with no C++ class ( #20549 )
2026-10-11 17:03:59 -10:00
d19bb7f4be
[cse7761] Add current_input option for current transformer boards such as the Sonoff POW CT ( #7836 )
...
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@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 >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 17:00:16 -10:00
J. Nick Koston
6095d9d610
[improv_serial] Remove the duplicate timeout id left by the beta merge ( #20562 )
2026-10-11 16:56:56 -10:00
Jesse Hills
95d9b68ac9
Merge branch 'beta' into dev
2026-10-12 15:42:45 +13:00
Jesse Hills
2c4b1f3ed5
Merge pull request #20542 from esphome/bump-2026.10.0b3
...
2026.10.0b3
2026-10-12 15:42:25 +13:00
J. Nick Koston and Claude Opus 4.6
847be14d1e
[socket] Add lwip raw UDP socket implementation ( #14677 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-10-11 16:27:41 -10:00
J. Nick Koston
40606a6c08
[core] Do not search the same heap twice in RAMAllocator single-region requests ( #19381 )
2026-10-11 16:24:36 -10:00
J. Nick Koston
650a02beb0
[remote_transmitter] Compile the transmit actions the test config left out ( #20550 )
2026-10-11 22:13:15 -04:00
J. Nick Koston
c6ed2069a5
[json][web_server] Link strings that outlive the document instead of copying them ( #19380 )
2026-10-11 15:55:51 -10:00
J. Nick Koston
fa4bc28d3e
[text] Build the on_value trigger with build_callback_automation ( #19613 )
2026-10-11 15:54:44 -10:00
J. Nick Koston
95de93bebb
[fan] Build the on_state trigger with build_parent_callback_automation ( #19612 )
2026-10-11 15:54:25 -10:00
J. Nick Koston
028db614ca
[select] Build the on_value trigger with build_callback_automation ( #19609 )
2026-10-11 15:54:09 -10:00
J. Nick Koston
c38674bb7b
[climate] Build the on_state and on_control triggers with build_callback_automation ( #19611 )
2026-10-11 15:53:55 -10:00
Clyde Stubbs and Claude Opus 5.5
4ba5afaa1b
[core] Move CONF_ON_STOP to the shared component constants ( #20548 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 01:37:17 +00:00
J. Nick Koston
0cd239dfd1
[uart] Keep constant switch, button and write payloads in flash ( #20082 )
2026-10-12 01:16:34 +00:00
J. Nick Koston
ed6ab4565d
[core] Emit filter, action and condition lists one item at a time ( #20116 )
2026-10-11 15:12:59 -10:00
J. Nick Koston
5d64b65d72
[esp32_ble_server] Keep constant set_value payloads in shared flash tables ( #20314 )
2026-10-11 15:12:09 -10:00
J. Nick Koston
993fd8d7a2
[thermostat] Keep presets in shared flash tables ( #20080 )
2026-10-11 15:04:16 -10:00
J. Nick Koston
9295342c16
[event] Keep event types in a shared flash table ( #20217 )
2026-10-11 14:58:49 -10:00
J. Nick Koston
e16b3a6245
[api] Share one flash string pool between API action and Home Assistant action strings ( #20281 )
2026-10-11 14:57:20 -10:00
J. Nick Koston
da0c59a57c
[http_request] Keep action request headers in a shared flash table ( #20225 )
2026-10-11 14:57:06 -10:00
J. Nick Koston
40425610d5
[remote_base] Keep constant abbwelcome payloads in shared flash tables ( #20311 )
2026-10-11 14:55:22 -10:00
Bascht74
643f29fae6
[uart] Let a UART say it has no line timing ( #20227 )
2026-10-11 14:49:19 -10:00
59d31505e9
[mipi_spi] Add LCDwiki ES3C35P model (ST77922 QSPI) ( #19011 )
...
Co-authored-by: Claude Opus 5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 00:48:47 +00:00
J. Nick Koston
e50a0d902e
[core] Expose the preferences storage helpers to components ( #20535 )
2026-10-11 20:42:21 -04:00
Bascht74 and pre-commit-ci-lite[bot]
22c17fe7e1
[remote_base] Add optional suffix bits to KeeLoq after the HCS301 word ( #19891 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-11 14:36:27 -10:00
techdregs
826a7a252a
[tmp102] Add comparator alert binary sensor ( #20540 )
2026-10-11 14:33:06 -10:00
J. Nick Koston
ce19978cfd
[ci] Tell too-big PR authors that review waits until the PR is under the cap ( #20543 )
2026-10-11 14:17:07 -10:00
J. Nick Koston
427e0c9064
[const] Move the colour channel config keys to the shared constants ( #20544 )
2026-10-11 13:50:50 -10:00
J. Nick Koston
0df7b0b366
[core] Move zstd_module from the api wizard to esphome.helpers ( #20342 )
2026-10-12 12:46:59 +13:00
Jesse Hills
bd4b32873a
Bump version to 2026.10.0b3
2026-10-12 11:52:33 +13:00
Bascht74
9e580db434
[uart] Reuse the ISR pin argument on an ESP8266 software serial reload ( #20541 )
2026-10-12 11:52:31 +13:00
Jesse Hills
87187c5391
[api] Let a wizard input pick multiple entities ( #20537 )
2026-10-12 11:52:31 +13:00
tomaszduda23 and Claude
60402614cd
[nrf52] fix zigbee time component ( #20527 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-10-12 11:52:25 +13:00
puddly
2727d35655
[usb_uart] Fix invalid stop bits and parity enum mappings ( #20408 )
2026-10-12 11:51:44 +13:00
J. Nick Koston
fb1ef29d54
[uart] Stop ESP8266 software serial RX ISR from blocking for a whole byte ( #18519 )
2026-10-12 11:51:39 +13:00
Frédéric Metrich and Claude Opus 5.5
7c0f63ea20
[core] Copy trigger arguments in wait_until and script.wait ( #20536 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 11:46:44 +13:00
heikkikii and J. Nick Koston
5d75828ceb
[seeed_mr24hpc1] Wait for the module to boot before sending UART traffic ( #18860 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:46:44 +13:00
bd2e8d184d
[gree] Keep display light on by default for YAN/YAA/YAC/YAC1FB9 ( #18516 )
...
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 >
2026-10-12 11:46:44 +13:00
J. Nick Koston
3c7ce71d6f
[uart_tcp] Prove the accept has run before checking what a new client receives ( #20489 )
2026-10-12 11:46:44 +13:00
Frédéric Metrich and Claude Opus 5.5
58e03a875f
[teleinfo] Fix out-of-bounds read when splitting a frame into groups ( #20513 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 11:46:44 +13:00
Clyde Stubbs and Claude Opus 5.5
41a9fca881
[ci] Reset sdkconfig after ESP-IDF component discovery ( #20511 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 11:46:44 +13:00
ec58e864f5
[canbus] Fix high frame rates causing crashes due to unbounded iteration ( #14481 )
...
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 >
2026-10-12 11:46:44 +13:00
esphome[bot]
375fbd829e
Bump bundled esphome-device-builder to 1.23.1 ( #20497 )
2026-10-12 11:46:44 +13:00
4bae89bd4a
[nrf52] Fix BLE OTA/log device discovery & transport selection on macOS ( #17101 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-12 11:46:43 +13:00
Bascht74 and J. Nick Koston
897b2f16a9
[tests] Close leftover server connections in the tcp_uart bridge and TCP client link tests ( #20215 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 11:46:43 +13:00
tomaszduda23
93c8796ae8
[nrf52] fix build error on 3.4.0 with pch ON ( #20474 )
2026-10-12 11:46:43 +13:00
J. Nick Koston
654afb536e
[core] Fix the native ESP8266 and host builds on Windows without ccache ( #20468 )
2026-10-12 11:46:43 +13:00
jabla
97154f9e5f
[espidf] Clean the build when the IDF target changes ( #20473 )
2026-10-12 11:46:43 +13:00
c9e49b8e8f
[teleinfo] Add predefined properties for main tags of TIC standard and historical ( #9167 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-12 11:42:45 +13:00
21804a75de
[openthread] add mesh_local_eid openthread_info sensor ( #13924 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 12:41:14 -10:00
J. Nick Koston
3ae52e21cf
[usb_host] Warn instead of failing when a device duplicates a usb_uart entry ( #20373 )
2026-10-12 11:38:38 +13:00
Zhaoqi Xu
f2395f9001
[heatpumpir] Fix fan speeds for mitsubishi_msc protocol ( #20460 )
2026-10-12 11:38:38 +13:00
Ali Alaei and tomaszduda23
3d248496ab
[zephyr_mcumgr] Enable MCUMGR_GRP_OS for UART transport, not just BLE ( #18319 )
...
Co-authored-by: tomaszduda23 <tomaszduda23@gmail.com >
2026-10-12 11:38:38 +13:00
esphome[bot]
34eca948c4
Bump bundled esphome-device-builder to 1.23.0 ( #20446 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
58815575ef
[core] Pass a single condition to actions directly instead of wrapping it in a group ( #19223 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
28b012389d
[ci] Keep bus group partners on the same runner ( #20431 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
54f86537ad
[esp32][libretiny] Skip registering static destructors that never run ( #20440 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
3284d93a33
[nrf52] Fake a larger flash in testing mode ( #20439 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
01686a5f67
[improv_serial] Use a numeric scheduler id for the Wi-Fi connect timeout ( #20360 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
3b0c485701
[mqtt] Use a numeric scheduler id for the deferred state publish ( #20359 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
e61d348f0c
[wifi] Use numeric scheduler ids instead of string names ( #20357 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
22e594bc62
[esp32_ble_client] Track conn_id per attempt and stop logging an error on a failed open ( #20417 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
061733672f
[ci] Refit component batch estimates to a full run ( #20401 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
b1f5da9561
[esp8266] Keep ArduinoJson's float tables in flash (Arduino core 3.1.2-esphome.3) ( #20416 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
db517059a3
[ota] Collapse duplicate CI test variants ( #20407 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
0b40892775
[mcp23xxx_base] Keep the interrupt handler in IRAM on ESP8266 ( #20409 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
8e6ed71e2a
[ethernet] Collapse duplicate CI test variants ( #20406 )
2026-10-12 11:38:37 +13:00
J. Nick Koston
cf569702c4
[ci] Stop the toolchain tests from installing ESP-IDF ( #20413 )
2026-10-12 11:38:37 +13:00
Bascht74
9a35c5229b
[uart] Reuse the ISR pin argument on an ESP8266 software serial reload ( #20541 )
2026-10-11 22:36:06 +00:00
Jesse Hills
96eaf42336
[api] Let a wizard input pick multiple entities ( #20537 )
2026-10-12 11:22:29 +13:00
tomaszduda23 and Claude
94894d60b7
[nrf52] fix zigbee time component ( #20527 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-10-11 12:15:23 -10:00
puddly
4155b82f84
[usb_uart] Fix invalid stop bits and parity enum mappings ( #20408 )
2026-10-12 10:58:31 +13:00
J. Nick Koston
61d98534f6
[uart] Stop ESP8266 software serial RX ISR from blocking for a whole byte ( #18519 )
2026-10-12 10:56:21 +13:00
embe and J. Nick Koston
8060dadd6c
[micro_wake_word] Add opt-in internal RAM placement ( #20529 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-11 11:49:49 -10:00
luar123 and J. Nick Koston
7d7db6bf90
[zigbee] add report action on esp32 ( #20488 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-11 11:31:49 -10:00
Frédéric Metrich and Claude Opus 5.5
2ef95bbc28
[core] Copy trigger arguments in wait_until and script.wait ( #20536 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 21:22:52 +00:00
luar123
3035a08b0a
[zigbee] Improve basic cluster and add manufacturer and app version setting ( #20519 )
2026-10-11 11:19:43 -10:00
Frédéric Metrich and Claude Opus 5.5
9b34db14d4
[mqtt] Reject deferring actions in on_json_message ( #20538 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 21:15:15 +00:00
heikkikii and J. Nick Koston
9998849009
[seeed_mr24hpc1] Wait for the module to boot before sending UART traffic ( #18860 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 11:10:50 -10:00
Maciej Kucharek and J. Nick Koston
f2db62adf2
[mipi_dsi] Add JC1060P470-V2 ( #18695 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 11:08:02 -10:00
Frédéric Metrich and Claude
36fbf5bf22
[emontx] Add pause/resume actions to let another component take over the UART ( #18756 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-10-11 21:07:39 +00:00
Fabio Pugliese Ornellas and J. Nick Koston
5cdefa910f
[cse7761] Add new sensors ( #17531 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 11:06:05 -10:00
Frédéric Metrich and Claude Opus 5.5
eb56ce2b76
[haier] Reject deferring actions in on_status_message ( #20539 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 11:05:09 -10:00
2ab06fa937
[pipsolar] Add QET/QLT total energy sensors ( #17347 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 10:39:22 -10:00
Clyde Stubbs and Claude
bea0ef264a
[lvgl] Migrate to 9.6.0 ( #20257 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-10-12 07:36:32 +11:00
153c51e39f
[gree] Keep display light on by default for YAN/YAA/YAC/YAC1FB9 ( #18516 )
...
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 >
2026-10-11 10:24:50 -10:00
f562d7a6a4
[socket] Add join_multicast_group() and set_ipv6_multicast_if() helpers ( #17045 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 09:59:44 -10:00
b73f151619
[pmsx003] add support for luftmy ld15 ( #15296 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 09:49:06 -10:00
Frédéric Metrich and Claude Opus 5.5
da43b6292d
[mk2pvrouter] Store the frame as bytes and read with read_byte() ( #20530 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 09:41:58 -10:00
Frédéric Metrich and Claude Opus 5.5
b10eef537e
[teleinfo] Log the tag name for an invalid timestamp ( #20532 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 09:41:28 -10:00
Frédéric Metrich and Claude Opus 5.5
5c5737303f
[teleinfo] Store the frame as bytes and read with read_byte() ( #20531 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 09:41:02 -10:00
Frédéric Metrich and Claude Opus 5.5
16a474cce5
[core] Only treat action names as actions in has_non_synchronous_actions() ( #20524 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 09:40:27 -10:00
86192d89f4
[ufm01] Improve stale recovery, add diagnostics and clear flow action ( #18899 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 09:29:56 -10:00
J. Nick Koston
c130e2808b
[display] Build on_page_change with build_callback_automation and compile it out when unused ( #20456 )
2026-10-11 09:23:05 -10:00
J. Nick Koston
78c7cd725d
[remote_base] Transmit constant Haier, Mirage and AEHA codes without a heap vector ( #20287 )
2026-10-11 09:22:39 -10:00
Frédéric Metrich and Claude Opus 5.5
eff3a6f9a2
[modbus_client] Use the core deferring-actions validators ( #20526 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 09:17:39 -10:00
Frédéric Metrich and Claude Opus 5.5
8449820480
[emontx] Use the core validate_synchronous_automation() helper ( #20525 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 09:17:18 -10:00
9355bdc3c5
[canbus] Bus error logging, Auto-recover bus-off on ESP32 ( #10953 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 09:12:28 -10:00
J. Nick Koston
eb1aa2bfd6
[web_server] Keep the cover, valve and alarm panel action tables in flash ( #20397 )
2026-10-11 09:07:06 -10:00
6322cef8e2
[tmp102] Add hardware configuration options ( #20063 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 09:06:40 -10:00
Frédéric Metrich and Claude Opus 5.5
c8a300164b
[core] Add validators that reject deferring actions in an automation ( #20523 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 08:53:37 -10:00
J. Nick Koston
86af0af0e4
[core] Add sum_bytes() and use it for the additive byte checksums components hand-roll ( #20507 )
2026-10-11 08:48:47 -10:00
J. Nick Koston
8e8261c39e
[core] Add this week's review lessons to AGENTS.md ( #20522 )
2026-10-11 18:14:56 +00:00
Mat931 and pre-commit-ci-lite[bot]
e9073f7298
[systa_bus] Add text_sensor ( #20518 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-11 07:38:37 -10:00
Frédéric Metrich
5186728d53
[emontx] Pass on_json/on_data data without copies and reject deferring actions ( #20516 )
2026-10-11 06:52:41 -10:00
Bonne Eggleston
1312d5eec0
[modbus] Pass the request's address to client device callbacks ( #20504 )
2026-10-11 06:51:41 -10:00
Frédéric Metrich and Claude Opus 5.5
c5cbc4a4e0
[emontx] Test lines of exactly MAX_LINE_LENGTH bytes ( #20517 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 12:50:42 +00:00
J. Nick Koston
7f7ae4c8fc
[uart_tcp] Prove the accept has run before checking what a new client receives ( #20489 )
2026-10-11 08:47:12 -04:00
J. Nick Koston
493db0c2bb
[esp32] Add allow_insecure_tls() for components that skip certificate verification ( #20506 )
2026-10-11 08:45:19 -04:00
6001cde234
[emontx] Discard the rest of a line that overflows the buffer ( #20515 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-10-11 08:41:02 -04:00
Frédéric Metrich and Claude Opus 5.5
3df03e4be9
[emontx] Read UART bytes with read_byte() ( #20514 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 08:31:07 -04:00
1402cb7b64
[tuya] Add forced minute boundary time sync ( #18603 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
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-10-11 00:32:39 -10:00
Frédéric Metrich and Claude Opus 5.5
2681126986
[teleinfo] Fix out-of-bounds read when splitting a frame into groups ( #20513 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 00:31:14 -10:00
J. Nick Koston
3e7fafb705
[daikin] Prefix the PendingComfort enumerators ( #20512 )
2026-10-11 00:09:55 -10:00
Clyde Stubbs and Claude Opus 5.5
b6096c9437
[ci] Reset sdkconfig after ESP-IDF component discovery ( #20511 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 10:04:57 +00:00
J. Nick Koston
681b481654
[tests] Reset shared App state before every host test ( #20510 )
2026-10-11 00:02:00 -10:00
84694b602a
[ld2412] Fix crash when only some gate thresholds are configured ( #18194 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 23:14:38 -10:00
cb54f6d6cc
[daikin] Add presets and half-degree temperature steps ( #17891 )
...
Co-authored-by: James Nimmo <james@nimmo.net.nz >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 23:13:21 -10:00
TJ Horner and J. Nick Koston
254690100c
[hub75] add set_rotation and get_rotation methods ( #13921 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 17:52:24 -10:00
6bc19d2a1a
[espnow] Add support for ESPNow with ESP8266 ( #14407 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-11 03:45:03 +00:00
fdf1752307
[toshiba] Add RAS-B10N3KV2 model support ( #17550 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Petr Helebrant <petr@helebrant.cz >
Co-authored-by: longerCZE <72692179+longerCZE@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Signed-off-by: Petr Helebrant <petr@helebrant.cz >
2026-10-10 17:35:42 -10:00
377a43c5be
[toshiba] Add 'seiya' model support ( #17830 )
...
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 >
Signed-off-by: Petr Helebrant <petr@helebrant.cz >
2026-10-10 17:17:22 -10:00
J. Nick Koston
70e4463644
[const] Move the adc_time and adc_averaging constants to the shared constants ( #20503 )
2026-10-10 16:56:35 -10:00
J. Nick Koston
e6da33d3f0
[const] Move the verify_ssl constant to the shared constants ( #20501 )
2026-10-10 16:49:54 -10:00
Clyde Stubbs and Claude Opus 5.5
eeaa8c78d8
[cli] Add line format error message option ( #20470 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 13:33:18 +11:00
8af91c9663
[feedback] Support for overshoot_duration ( #13186 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-11 01:23:31 +00:00
3be8c5b6b8
[canbus] Fix high frame rates causing crashes due to unbounded iteration ( #14481 )
...
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 >
2026-10-10 15:07:36 -10:00
luar123
1763adf526
[zigbee] add support for SED on esp32 ( #20487 )
2026-10-10 13:24:13 -10:00
Paul Traina
924d7364ba
[mipi_spi] ESP32-2432S028-9342 panel is RGB, not BGR ( #19419 )
2026-10-10 13:22:56 -10:00
esphome[bot]
5f43b8168e
Bump bundled esphome-device-builder to 1.23.1 ( #20497 )
2026-10-10 12:00:39 -10:00
J. Nick Koston
642c3b7a9e
[const] Add the milliampere hour unit to the shared constants ( #20495 )
2026-10-10 11:43:21 -10:00
78d3b9f5a1
[nrf52] Fix BLE OTA/log device discovery & transport selection on macOS ( #17101 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 21:17:01 +00:00
6559ea470b
[tca9548a] Allow separate I²C bus frequencies on each multiplexer port ( #10422 )
...
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 >
2026-10-10 10:58:09 -10:00
J. Nick Koston
ebbe3860ec
[const] Move aqi to the shared constants ( #20494 )
2026-10-10 09:43:57 -10:00
J. Nick Koston
844418b1cc
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-10-10 09:26:01 -10:00
J. Nick Koston
7a01c71022
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
...
# Conflicts:
# esphome/components/ble_client/__init__.py
2026-10-10 09:25:46 -10:00
Rupayon Haldar and J. Nick Koston
ff96530e4d
[esp32] Honor sdkconfig CPU frequency options ( #20158 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 09:13:05 -10:00
865863abf5
[cm1106] Add ABC function ( #8894 )
...
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-10-10 09:12:40 -10:00
17cbb75161
[mitsubishi] Control both vanes on multi-vane Mitsubishi minisplit heads ( #12609 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 09:11:14 -10:00
f70b6a6b03
[mitsubishi] Add fahrenheit_compatibility mode ( #18880 )
...
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-10-10 09:04:06 -10:00
J. Nick Koston
2ac48d408f
[const] Move automatic_baseline_calibration to the shared constants ( #20492 )
2026-10-10 08:56:49 -10:00
667dbd1ec3
[adalight] Add a component build test ( #19103 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 08:56:16 -10:00
Jeff Brown
a4ef8a6c90
[addressable_light] Clear white channel when setting HSV color ( #20265 )
2026-10-10 08:43:33 -10:00
Jonathan Swoboda
ea7c277c08
[ci] Mark PRs with merge conflicts stale after 30 days ( #20490 )
2026-10-10 14:34:29 -04:00
Bascht74 and J. Nick Koston
eb1afa4245
[tests] Close leftover server connections in the tcp_uart bridge and TCP client link tests ( #20215 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-10 08:15:30 -10:00
J. Nick Koston
3447b68136
[ci] Compile an ESP8266 config with the native toolchain on Windows ( #20467 )
2026-10-10 08:00:40 -10:00
tomaszduda23
9f4a7cf5cc
[nrf52] fix build error on 3.4.0 with pch ON ( #20474 )
2026-10-10 07:49:35 -10:00
J. Nick Koston
4ba0e1bfa2
[core] Fix the native ESP8266 and host builds on Windows without ccache ( #20468 )
2026-10-10 07:39:49 -10:00
jabla
f4fbc3215d
[espidf] Clean the build when the IDF target changes ( #20473 )
2026-10-10 07:28:40 -10:00
721228c1d2
[teleinfo] Add predefined properties for main tags of TIC standard and historical ( #9167 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-10 08:31:06 -04:00
Clyde Stubbs
f9a81869ef
[it8951] Hold display enable pins off during deep-sleep ( #20471 )
2026-10-10 17:43:38 +11:00
J. Nick Koston
d3e7bb119c
[core] Deprecate the named status_momentary_warning/error overloads ( #20369 )
2026-10-10 02:39:21 +00:00
J. Nick Koston
dd45f8a6f8
[usb_host] Warn instead of failing when a device duplicates a usb_uart entry ( #20373 )
2026-10-09 16:38:05 -10:00
ba7d3bd770
[gpio][esp32][uart] Add option to hold gpio during (deep)sleep and reboot (3/3) ( #18964 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 02:37:46 +00:00
J. Nick Koston
dc553aae55
[core] Use status_momentary_warning/error without a name in components ( #20363 )
2026-10-09 22:27:19 -04:00
J. Nick Koston
f7b9646705
[improv_ble] Build the state triggers with build_callback_automation ( #20444 )
2026-10-09 16:06:14 -10:00
J. Nick Koston
0ae24f7536
[core] Catch heap allocating helper calls with explicit template arguments ( #20391 )
2026-10-10 02:00:41 +00:00
J. Nick Koston and pre-commit-ci-lite[bot]
41cc96bbb8
[light] Keep the effect list in a flash table ( #20204 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-09 15:55:09 -10:00
Zhaoqi Xu
6b03d68fac
[heatpumpir] Fix fan speeds for mitsubishi_msc protocol ( #20460 )
2026-10-09 21:53:38 -04:00
J. Nick Koston
640d677913
[st7735][st7789v][waveshare_epaper] Declare log tags with ESPHOME_LOG_TAG ( #20295 )
2026-10-09 15:51:55 -10:00
J. Nick Koston
8567e69d46
[core] Add status_momentary_warning/error overloads without a name ( #20362 )
2026-10-09 15:51:38 -10:00
J. Nick Koston
4d187a2bb7
[valve] Build on_open and on_closed with build_callback_automation ( #20442 )
2026-10-09 15:43:22 -10:00
J. Nick Koston
073394b1eb
[core] Let a trigger filter name its parent with {parent} ( #20448 )
2026-10-09 15:43:22 -10:00
J. Nick Koston
02bfa07819
[opentherm] Build before_send and before_process_response with build_callback_automation ( #20450 )
2026-10-09 15:42:55 -10:00
J. Nick Koston
fdc163a30d
[tuya] Build on_datapoint_update with build_trigger_callback ( #20453 )
2026-10-09 15:42:43 -10:00
J. Nick Koston
bc44e8b550
[display] Test on_page_change with each from and to combination ( #20457 )
2026-10-09 21:40:40 -04:00
J. Nick Koston
e894397503
[datetime] Build on_value with build_callback_automation ( #20445 )
2026-10-09 15:39:25 -10:00
J. Nick Koston
f1a23a02c2
[time] Build on_time_sync with build_callback_automation ( #20441 )
2026-10-09 15:39:06 -10:00
J. Nick Koston
95dc9a749b
[display_menu_base] Build the menu item triggers with build_parent_callback_automation ( #20443 )
2026-10-09 15:39:00 -10:00
J. Nick Koston
59963dd246
[espidf] Declare the map byproduct only when IDF has not ( #20462 )
2026-10-09 15:38:16 -10:00
J. Nick Koston
79fd5edc7f
[core] Bind InternalGPIOPin to the platform pin class instead of a virtual base ( #20455 )
2026-10-09 15:37:10 -10:00
J. Nick Koston
5d2433f69a
[graphical_display_menu] Build on_redraw with build_callback_automation ( #20452 )
2026-10-09 15:36:57 -10:00
J. Nick Koston
1b49e79bf8
[microphone] Build on_data with build_callback_automation ( #20451 )
2026-10-09 15:35:38 -10:00
Bascht74
4e4056d790
[uart] Share uart_tcp's write pacing and uart_id matcher ( #20464 )
2026-10-09 15:11:48 -10:00
Ali Alaei and tomaszduda23
e5f5ca07c4
[zephyr_mcumgr] Enable MCUMGR_GRP_OS for UART transport, not just BLE ( #18319 )
...
Co-authored-by: tomaszduda23 <tomaszduda23@gmail.com >
2026-10-09 12:50:50 -10:00
a4a09043ec
[deep_sleep][gpio][core][power_supply] Prepare for gpio hold (2/3) ( #18966 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-09 11:32:24 -10:00
esphome[bot]
a613073ee3
Bump bundled esphome-device-builder to 1.23.0 ( #20446 )
2026-10-09 10:06:10 -10:00
PolarGoose and J. Nick Koston
8416a29862
[dlms_meter] Add support for "Landis+Gyr E450 HDLC Cyprus". Adapt the code for new API of dlms_parser ( #16942 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-09 10:03:38 -10:00
J. Nick Koston
9ab0fa9669
[dlms_meter] Remove deprecated predefined sensor keys ( #20386 )
2026-10-09 09:36:28 -10:00
J. Nick Koston
05aeb2f094
[http_request] Test shared, lambda and trigger argument request headers ( #20224 )
2026-10-09 09:25:36 -10:00
J. Nick Koston
c859c347cb
[core] Pass a single condition to actions directly instead of wrapping it in a group ( #19223 )
2026-10-09 09:24:32 -10:00
J. Nick Koston
7ab24bf850
[nextion] Remove deprecated dump_device_info option ( #20388 )
2026-10-09 09:23:46 -10:00
J. Nick Koston
cfbdd58e4a
[lvgl] Remove deprecated update_on_release option ( #20387 )
2026-10-09 09:23:28 -10:00
8084916e30
[remote_base] Add Onkyo RI Wired Serial Support ( #18595 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-09 19:23:10 +00:00
J. Nick Koston
9d02ab3734
[remote_base] Keep constant IR codes in flash ( #20083 )
2026-10-09 09:22:32 -10:00
J. Nick Koston
3442bb6624
[core] Remove deprecated esphome::RingBuffer alias ( #20390 )
2026-10-09 09:21:29 -10:00
J. Nick Koston
23d13d3a6e
[core] Stop re-exporting alloc_helpers.h from helpers.h ( #20389 )
2026-10-09 09:21:16 -10:00
J. Nick Koston and pre-commit-ci-lite[bot]
5cd7bf5993
[wireguard] Keep allowed IPs in a shared flash table ( #20087 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-09 09:20:46 -10:00
J. Nick Koston
f7b80e6d44
[dlms_meter] Remove deprecated provider option ( #20385 )
2026-10-09 09:20:17 -10:00
J. Nick Koston
588fde91b2
[template] Keep alarm codes in a shared flash table ( #20084 )
2026-10-09 09:19:35 -10:00
J. Nick Koston
94e6bd90d8
[sensor] Merge the radar timeout and throttle filters into one ( #20118 )
2026-10-09 09:19:22 -10:00
J. Nick Koston
456e3d8979
[ci] Keep bus group partners on the same runner ( #20431 )
2026-10-09 09:10:18 -10:00
J. Nick Koston
76ba7f0c88
[espidf] Cache the discovered component list once per target ( #20432 )
2026-10-09 09:10:06 -10:00
J. Nick Koston
0652e6c3fb
[esp32][libretiny] Skip registering static destructors that never run ( #20440 )
2026-10-09 19:02:22 +00:00
luar123 and J. Nick Koston
dbad1d4629
[core][zigbee] Wake main loop on defer/set_timeout from background task ( #20356 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-09 18:58:33 +00:00
J. Nick Koston
dd8315059c
[core] Document the trigger callback helpers in AGENTS.md ( #20435 )
2026-10-09 08:56:50 -10:00
J. Nick Koston
822bbb85dc
[core] Build trigger callbacks as stateless lambdas ( #19606 )
2026-10-09 08:50:32 -10:00
J. Nick Koston
daea315b13
[nrf52] Fake a larger flash in testing mode ( #20439 )
2026-10-09 08:36:42 -10:00
J. Nick Koston
52b274c5e8
[improv_serial] Collapse duplicate CI test variants ( #20405 )
2026-10-09 07:34:34 -10:00
J. Nick Koston
b5716a70c2
[ethernet] Remove deprecated clk_mode option ( #20384 )
2026-10-09 17:26:47 +00:00
J. Nick Koston
3eb8155ed2
[logger] Collapse duplicate CI test variants ( #20402 )
2026-10-09 07:22:48 -10:00
J. Nick Koston
11368a0b16
[adc] Collapse duplicate CI test variants ( #20400 )
2026-10-09 07:22:20 -10:00
J. Nick Koston
cf0e64f84c
[improv_serial] Use a numeric scheduler id for the Wi-Fi connect timeout ( #20360 )
2026-10-09 07:21:53 -10:00
J. Nick Koston
d98ddeeb56
[mqtt] Use a numeric scheduler id for the deferred state publish ( #20359 )
2026-10-09 07:21:29 -10:00
J. Nick Koston
0701329ea7
[wifi] Use numeric scheduler ids instead of string names ( #20357 )
2026-10-09 07:20:59 -10:00
J. Nick Koston
f5ce33a8de
[esp32_ble_client] Track conn_id per attempt and stop logging an error on a failed open ( #20417 )
2026-10-09 07:16:17 -10:00
J. Nick Koston
f89a603582
[esp8266] Keep switch lookup tables out of RAM ( #20398 )
2026-10-09 07:15:59 -10:00
J. Nick Koston
279f68c432
[tuya] Use numeric scheduler ids instead of string names ( #20365 )
2026-10-09 07:15:33 -10:00
J. Nick Koston
b6ee8f8035
[power_supply] Use a numeric scheduler id for the power off timeout ( #20367 )
2026-10-09 07:15:14 -10:00
J. Nick Koston
cea872be0b
[modbus] Use a numeric scheduler id for the deferred server reply ( #20368 )
2026-10-09 07:14:59 -10:00
J. Nick Koston
558de5ebee
[core] Use numeric scheduler ids instead of string names (5/5) ( #20378 )
2026-10-09 07:14:39 -10:00
J. Nick Koston
aba0c5d7ee
[dallas_temp] Use a numeric scheduler id and drop the cached address string ( #20361 )
2026-10-09 07:14:19 -10:00
J. Nick Koston
4c17ee7393
[core] Use numeric scheduler ids instead of string names (2/5) ( #20375 )
2026-10-09 07:13:46 -10:00
J. Nick Koston
24237a07c9
[ci] Refit component batch estimates to a full run ( #20401 )
2026-10-09 07:12:35 -10:00
J. Nick Koston
d4d5ee87cb
[ir_rf_proxy] Collapse duplicate CI test variants ( #20399 )
2026-10-09 07:12:14 -10:00
J. Nick Koston
56e6e332cb
[ci] Skip the static analyzer on the generated protobuf dump file ( #20414 )
2026-10-09 07:11:45 -10:00
J. Nick Koston
7ac679aa04
[esp8266] Keep ArduinoJson's float tables in flash (Arduino core 3.1.2-esphome.3) ( #20416 )
2026-10-09 07:11:30 -10:00
J. Nick Koston
8a09e49e31
[ci] Skip the memory impact target build when the base test is missing ( #20410 )
2026-10-09 07:11:18 -10:00
J. Nick Koston
3485297e6e
[core] Use numeric scheduler ids instead of string names (4/5) ( #20377 )
2026-10-09 07:11:01 -10:00
J. Nick Koston
541562451e
[sprinkler] Key timers by index and keep them in a fixed array ( #20379 )
2026-10-09 07:10:48 -10:00
J. Nick Koston
824834f847
[core] Use numeric scheduler ids instead of string names (3/5) ( #20376 )
2026-10-09 07:10:19 -10:00
J. Nick Koston
bc6fecfadb
[core] Use numeric scheduler ids instead of string names (1/5) ( #20374 )
2026-10-09 07:10:04 -10:00
J. Nick Koston
a2434f9aa3
[core] Document numeric scheduler ids in AGENTS.md ( #20382 )
2026-10-09 07:09:33 -10:00
J. Nick Koston
466081acc1
[core] Use numeric scheduler ids instead of string names (ESP32 2/2) ( #20381 )
2026-10-09 07:09:04 -10:00
J. Nick Koston
d9b9ce2909
[core] Use numeric scheduler ids instead of string names (ESP32 1/2) ( #20380 )
2026-10-09 07:07:56 -10:00
J. Nick Koston
a0f0949078
[mdns] Collapse duplicate CI test variants ( #20403 )
2026-10-09 06:42:00 -10:00
J. Nick Koston
6f4d0e9488
[debug] Collapse duplicate CI test variants ( #20404 )
2026-10-09 06:32:33 -10:00
J. Nick Koston
65e8345ab8
[ota] Collapse duplicate CI test variants ( #20407 )
2026-10-09 06:32:07 -10:00
J. Nick Koston
de5c2cda09
[mcp23xxx_base] Keep the interrupt handler in IRAM on ESP8266 ( #20409 )
2026-10-09 06:31:42 -10:00
J. Nick Koston
9adb7e92e1
[ethernet] Collapse duplicate CI test variants ( #20406 )
2026-10-09 06:31:26 -10:00
J. Nick Koston
c7d6a2e898
[sendspin] Fix duplicate definitions after the beta merge ( #20424 )
2026-10-08 22:13:45 -10:00
Jesse Hills
6188778538
Merge branch 'beta' into dev
2026-10-09 15:42:24 +13:00
Jesse Hills
2affc04e62
Merge pull request #20421 from esphome/bump-2026.10.0b2
...
2026.10.0b2
2026-10-09 15:42:04 +13:00
Clyde Stubbs
6513b176f4
[spd2010] Fix DOMAIN ( #20422 )
2026-10-09 02:23:56 +00:00
646f386f12
[spd2010] Add touchscreen platform ( #19057 )
...
Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-09 12:50:09 +11:00
J. Nick Koston
6a463c801e
[ci] Stop the toolchain tests from installing ESP-IDF ( #20413 )
2026-10-08 21:42:45 -04:00
Jesse Hills
d9795399ad
[core] Use component DOMAIN constants instead of name literals ( #20419 )
2026-10-09 13:50:29 +13:00
Jesse Hills
a648822027
Bump version to 2026.10.0b2
2026-10-09 13:45:36 +13:00
J. Nick Koston
c6244fa4b9
[esp32] Record the PC for cache error and interrupt watchdog crashes ( #20415 )
2026-10-09 13:45:35 +13:00
J. Nick Koston
f6746b4977
[api] Fix C++ unit test link failure when api is only a dependency ( #20418 )
2026-10-09 13:45:35 +13:00
J. Nick Koston
f1f1a77151
[ci] Deal clang-tidy files across five shards ( #20411 )
2026-10-09 13:45:35 +13:00
J. Nick Koston
ba1af627fd
[ci] Pin the shared I2C bus in test configs that left it implicit ( #20412 )
2026-10-09 13:45:35 +13:00
J. Nick Koston
b82dfd7e64
[mdns] Bump espressif/mdns to 1.14.0 ( #20383 )
2026-10-09 13:45:35 +13:00
Kevin Ahrendt and J. Nick Koston
7de2bcb584
[api][sendspin] Add a request for the Sendspin pairing token ( #20355 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-09 13:45:35 +13:00
esphome[bot]
d5d11e1077
Bump aioesphomeapi from 46.8.0 to 46.9.0 ( #20358 )
2026-10-09 13:45:34 +13:00
Kevin Ahrendt
ab66b20944
[sendspin] Add an unpaired access switch ( #20350 )
2026-10-09 13:45:34 +13:00
Kevin Ahrendt
baf1682635
[sendspin] Add the dynamic pairing code ( #20349 )
2026-10-09 13:45:34 +13:00
Kevin Ahrendt
eea11834f8
[sendspin] Add the static pairing code, pairing window and unpaired access option ( #20348 )
2026-10-09 13:45:34 +13:00
Kevin Ahrendt
1d86cc39e9
[sendspin] Update to sendspin-cpp v0.9.3 ( #20347 )
2026-10-09 13:45:34 +13:00
J. Nick Koston
686252f151
[esp8266] Fix Arduino core regressions that keep data in RAM and link the unused unwinder ( #20337 )
2026-10-09 13:45:23 +13:00
J. Nick Koston
f5c15f66a5
[esp8266] Force-include the throw stubs into the core and libraries on the native toolchain ( #20336 )
2026-10-09 13:45:23 +13:00
J. Nick Koston
9d6b50320d
[noise] Bump noise-c to 0.1.31 and libsodium to 1.10021.12 ( #20345 )
2026-10-09 13:45:23 +13:00
Jesse Hills and J. Nick Koston
b903c54be4
[combination] Use cv.rename_key for the deprecated coeffecient key ( #20159 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-09 13:45:23 +13:00
esphome[bot]
63b4a59588
Bump bundled esphome-device-builder to 1.22.0 ( #20334 )
2026-10-09 13:45:23 +13:00
Jesse Hills
adc6255fd4
[core] Let cv.rename_key pass non-dict input through ( #20331 )
2026-10-09 13:45:23 +13:00
J. Nick Koston
b28e7a1357
[esp8266] Normalize misspelled boards and fall back to PlatformIO for unknown ones ( #20322 )
2026-10-09 13:45:23 +13:00
J. Nick Koston
e7ba9a5726
[api] Add a progmem option for bytes fields kept in flash ( #20318 )
2026-10-09 13:45:22 +13:00
J. Nick Koston
2586e78127
[core] Warn on every run that Intel Mac support ends by 2027.6.0 ( #20303 )
2026-10-09 13:45:22 +13:00
J. Nick Koston
23f6dedb42
Pin smp to 4.1.0 on Intel macOS so cbor2 installs from a wheel ( #20302 )
2026-10-09 13:45:22 +13:00
David Buezas
10f30ddb59
[cc1101] Keep the remote_receiver interrupt on a shared GDO0 pin in begin_tx ( #20296 )
2026-10-09 13:45:22 +13:00
Keith Burzinski and Claude Opus 5.5
96a66f3ddd
[core] Wake the main loop on its own task notification index on ESP32 ( #20326 )
...
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-09 13:45:22 +13:00
esphome[bot]
5bf8ceac66
Bump aioesphomeapi from 46.7.0 to 46.8.0 ( #20321 )
2026-10-09 13:45:22 +13:00
mrtoy-me
4d42352ec5
[tas58xx] Improve TAS5805M audio performance and use GPIO1 for TAS5825M faults ( #20319 )
2026-10-09 13:45:22 +13:00
esphome[bot]
479232b6c0
Bump aioesphomeapi from 46.6.0 to 46.7.0 ( #20317 )
2026-10-09 13:45:22 +13:00
J. Nick Koston
0d596a20f8
[esp32] Record the PC for cache error and interrupt watchdog crashes ( #20415 )
2026-10-09 00:25:11 +00:00
Jesse Hills
5ca272b262
[mipi_dsi] Make config tests pass in isolation ( #20420 )
2026-10-09 13:20:52 +13:00
J. Nick Koston
ff0d4347d6
[api] Fix C++ unit test link failure when api is only a dependency ( #20418 )
2026-10-08 14:05:18 -10:00
Jesse Hills
e03db60a52
[core] Add a DOMAIN constant to every component ( #20395 )
2026-10-08 14:04:26 -10:00
J. Nick Koston
b4bd95b2ac
[ci] Deal clang-tidy files across five shards ( #20411 )
2026-10-08 13:48:03 -10:00
J. Nick Koston
fe21e3ad16
[ci] Pin the shared I2C bus in test configs that left it implicit ( #20412 )
2026-10-08 13:14:00 -10:00
Jesse Hills
85108bfd84
[qspi_amoled] Remove legacy renamed component stub ( #20396 )
2026-10-08 12:58:20 -10:00
J. Nick Koston
92bfd0ea7e
[mdns] Bump espressif/mdns to 1.14.0 ( #20383 )
2026-10-08 21:18:21 +00:00
dependabot[bot]
542de8f03a
Bump j178/prek-action from 3.0.0 to 3.0.1 ( #20372 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-08 09:36:01 -10:00
dependabot[bot]
06864917a5
Bump filelock from 4.0.10 to 4.0.12 ( #20371 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-08 19:31:14 +00:00
dependabot[bot]
bcfe6fd1d2
Bump prek from 0.5.4 to 0.5.5 ( #20370 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-08 19:30:04 +00:00
Kevin Ahrendt and J. Nick Koston
e395e626ec
[api][sendspin] Add a request for the Sendspin pairing token ( #20355 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-08 19:12:20 +00:00
esphome[bot]
f9b5eca2b9
Bump aioesphomeapi from 46.8.0 to 46.9.0 ( #20358 )
2026-10-08 18:48:19 +00:00
Kevin Ahrendt
920295527f
[sendspin] Add an unpaired access switch ( #20350 )
2026-10-08 08:13:31 -10:00
Kevin Ahrendt
9c79fa7430
[sendspin] Add the dynamic pairing code ( #20349 )
2026-10-08 13:36:12 -04:00
J. Nick Koston
4b2f8122e3
[udp] Keep constant write payloads in shared flash tables ( #20268 )
2026-10-08 07:31:09 -10:00
J. Nick Koston
052f5a4cc6
[core] Declare component log tags with ESPHOME_LOG_TAG ( #20291 )
2026-10-08 07:24:17 -10:00
Kevin Ahrendt
78bf74eafb
[sendspin] Add the static pairing code, pairing window and unpaired access option ( #20348 )
2026-10-08 07:19:14 -10:00
Kevin Ahrendt
b1c145dd5f
[sendspin] Update to sendspin-cpp v0.9.3 ( #20347 )
2026-10-08 06:33:46 -10:00
J. Nick Koston
3055343b6d
[esp8266] Use toolchain 10.3.0-esphome.3, which trims newlib RAM ( #20335 )
2026-10-08 06:15:11 -10:00
J. Nick Koston
70f64374d4
[esp8266] Use toolchain 10.3.0-esphome.3, which trims newlib RAM ( #20335 )
2026-10-08 06:11:51 -10:00
J. Nick Koston
1362e52aa7
[esp8266] Fix Arduino core regressions that keep data in RAM and link the unused unwinder ( #20337 )
2026-10-08 06:09:39 -10:00
J. Nick Koston
e51e0e683f
[esp8266] Force-include the throw stubs into the core and libraries on the native toolchain ( #20336 )
2026-10-08 06:06:45 -10:00
J. Nick Koston
7910d02b71
[web_server] Emit the resource tables with cg.extern_progmem_array ( #20300 )
2026-10-08 11:34:34 -04:00
J. Nick Koston
f224cb37d6
[esp32_ble_server] Cover string, typed number, repeated and trigger argument set_value payloads in the component test ( #20308 )
2026-10-08 11:32:50 -04:00
J. Nick Koston
79813a1eac
[canbus] Keep constant send payloads in shared flash tables ( #20309 )
2026-10-08 11:14:02 -04:00
J. Nick Koston
9066ad6cd0
[modbus_client] Cover shared constant and trigger argument write values in the component test ( #20327 )
2026-10-08 11:13:03 -04:00
J. Nick Koston
f5e4c0356f
[core] Move zstd_module from the api wizard to esphome.helpers ( #20342 )
2026-10-08 11:08:38 -04:00
J. Nick Koston
3c634ecfd8
[noise] Bump noise-c to 0.1.31 and libsodium to 1.10021.12 ( #20345 )
2026-10-08 06:48:08 -04:00
Jesse Hills and J. Nick Koston
57eeca6341
[combination] Use cv.rename_key for the deprecated coeffecient key ( #20159 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-07 20:15:43 -10:00
esphome[bot]
23ba80c9c7
Bump bundled esphome-device-builder to 1.22.0 ( #20334 )
2026-10-07 20:03:30 -10:00
Jesse Hills
73bbd75d3f
[core] Let cv.rename_key pass non-dict input through ( #20331 )
2026-10-08 17:29:56 +13:00
J. Nick Koston
0a7763d902
[esp8266] Normalize misspelled boards and fall back to PlatformIO for unknown ones ( #20322 )
2026-10-08 17:05:18 +13:00
J. Nick Koston
7aeed8455e
[api] Add a progmem option for bytes fields kept in flash ( #20318 )
2026-10-08 16:24:27 +13:00
J. Nick Koston
8eba5a1c28
[core] Warn on every run that Intel Mac support ends by 2027.6.0 ( #20303 )
2026-10-08 16:23:01 +13:00
J. Nick Koston
0f552a8eef
Pin smp to 4.1.0 on Intel macOS so cbor2 installs from a wheel ( #20302 )
2026-10-08 16:14:40 +13:00
David Buezas
31c488e5b0
[cc1101] Keep the remote_receiver interrupt on a shared GDO0 pin in begin_tx ( #20296 )
2026-10-07 22:53:12 -04:00
J. Nick Koston
1ee4940d4d
[remote_base] Cover shared, empty and trigger argument abbwelcome payloads in the component test ( #20307 )
2026-10-07 16:43:44 -10:00
J. Nick Koston
640ef1bb17
[canbus] Cover shared, string and trigger argument send payloads in the component tests ( #20306 )
2026-10-07 16:43:34 -10:00
luar123
42edfe0681
[CI] Remove obsolete platform labels ( #20301 )
2026-10-07 22:18:47 -04:00
Keith Burzinski and Claude Opus 5.5
6a6d263c0d
[core] Wake the main loop on its own task notification index on ESP32 ( #20326 )
...
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-07 21:17:16 -05:00
esphome[bot]
68a5e33182
Bump aioesphomeapi from 46.7.0 to 46.8.0 ( #20321 )
2026-10-08 00:17:23 +00:00
mrtoy-me
883af036a9
[tas58xx] Improve TAS5805M audio performance and use GPIO1 for TAS5825M faults ( #20319 )
2026-10-07 13:57:46 -10:00
esphome[bot]
8f003dfa3b
Bump aioesphomeapi from 46.6.0 to 46.7.0 ( #20317 )
2026-10-07 13:31:24 -10:00
Jesse Hills
6d3792e5c5
[ci] Only run sync dependency versions workflow on PRs targeting dev ( #20316 )
2026-10-08 12:22:07 +13:00
Jesse Hills
c73ec262e9
Merge branch 'beta' into dev
2026-10-08 12:15:20 +13:00
Jesse Hills
33cf262616
Merge pull request #20305 from esphome/bump-2026.10.0b1
...
2026.10.0b1
2026-10-08 12:14:49 +13:00
Jesse Hills
7a1bfed81f
Bump version to 2026.11.0-dev
2026-10-08 12:01:52 +13:00
J. Nick Koston
12c03d539a
[cc1101] Keep constant send_packet payloads in shared flash tables ( #20264 )
2026-10-07 10:54:56 -10:00
J. Nick Koston
24fc86c2c4
[core] Deprecate TemplatableValue::is_static_string and get_static_string ( #20280 )
2026-10-07 20:48:46 +00:00
Jesse Hills
5e4990badc
Bump version to 2026.10.0b1
2026-10-08 09:27:43 +13:00
J. Nick Koston
16568c0453
[sx126x] Keep constant send_packet payloads in shared flash tables ( #20273 )
2026-10-07 10:24:14 -10:00
J. Nick Koston
677c089614
[sx127x] Keep constant send_packet payloads in shared flash tables ( #20275 )
2026-10-07 10:23:59 -10:00
J. Nick Koston
6db2e781ce
[api] Keep Home Assistant action fields in a flash table ( #20237 )
2026-10-07 10:09:49 -10:00
J. Nick Koston
3296bccd3c
[api] Keep the protobuf write cursor in a register and emit sub-message tags inline ( #20124 )
2026-10-07 10:08:25 -10:00
J. Nick Koston
0323fd36d4
[core] Clone git PlatformIO packages in parallel in the prefetch ( #18837 )
2026-10-08 09:00:07 +13:00
J. Nick Koston
1ba323e9a3
[core] Keep log tags in flash on ESP8266 with ESPHOME_LOG_TAG ( #20290 )
2026-10-07 09:51:17 -10:00
Jesse Hills and J. Nick Koston
6f940a486b
[api] Add a device wizard for Home Assistant onboarding ( #19966 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-07 09:49:31 -10:00
dependabot[bot]
82cffe81f3
Bump platformdirs from 4.12.2 to 4.12.3 ( #20297 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-07 19:30:59 +00:00
dependabot[bot]
887e3c302f
Bump filelock from 4.0.9 to 4.0.10 ( #20298 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-07 19:30:26 +00:00
TheSwert
2560a4436e
[audio_http][core] Add ca_certificate_path to audio_http media source ( #19392 )
2026-10-07 09:28:10 -10:00
Clyde Stubbs and Claude Sonnet 5
6dec759261
[core] Select I/O expander pin providers by I2C address ( #18939 )
...
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-10-07 09:18:40 -10:00
1c0d406cbb
[serial_proxy] Add USB_SERIAL port type and device identity ( #19308 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
2026-10-07 19:05:07 +00:00
Jesse Hills
ae6ebd2d9d
[epaper_spi] Add is_updating condition ( #20261 )
2026-10-07 14:52:25 -04:00
J. Nick Koston
13a8efd694
[api] Reply when an infrared/RF raw timings transmit has completed ( #19086 )
2026-10-07 08:25:44 -10:00
678975b6b2
[usb_host] iManufacturer and iProduct descriptor filters ( #19095 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
2026-10-07 13:25:28 -05:00
006f5f0fc9
[xiaomi_mccgq02hl] Add Xiaomi Mijia Door/Window Sensor 2 (MCCGQ02HL) ( #20104 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-07 07:09:35 -10:00
J. Nick Koston
cf96c53279
[espnow] Keep constant send payloads in shared flash tables ( #20271 )
2026-10-07 05:40:12 -10:00
J. Nick Koston and pre-commit-ci-lite[bot]
72413494b0
[esp32] Disable mbedTLS TLS and TLS-only crypto when no component needs them ( #18877 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-07 05:29:17 -10:00
J. Nick Koston
51dbd3a63f
[core] Test that if and while branches resume after delays, stops, nesting and script modes ( #20282 )
2026-10-07 08:33:20 -04:00
J. Nick Koston
19561d44a2
[cc1101] Cover shared, string and trigger argument send_packet payloads in the component test ( #20263 )
2026-10-07 08:32:18 -04:00
J. Nick Koston
1661f84deb
[udp] Cover identical constant and trigger argument write payloads in the component test ( #20266 )
2026-10-07 08:32:04 -04:00
J. Nick Koston
f0035c1db6
[sx127x] Cover shared constant, string and trigger argument send_packet payloads in the component test ( #20274 )
2026-10-07 08:31:24 -04:00
J. Nick Koston
b78f00a037
[espnow] Cover a send payload lambda that reads trigger arguments in the component test ( #20270 )
2026-10-07 08:31:04 -04:00
J. Nick Koston
40809ffa10
[sx126x] Cover shared constant and trigger argument send_packet payloads in the component test ( #20272 )
2026-10-07 08:30:48 -04:00
luar123
e4d8913680
[zigbee] Add zigbee support for number on esp32 ( #20243 )
2026-10-07 08:21:17 -04:00
J. Nick Koston
fd2df8896f
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-10-06 21:35:46 -10:00
J. Nick Koston
9f254c69a1
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-10-06 21:32:51 -10:00
Bascht74
d234a4d51e
[tcp_uart][uart_tcp] Add a disconnects sensor ( #20096 )
2026-10-06 20:45:29 -10:00
Raphael Hehl and J. Nick Koston
3cc89a35a2
[hoermann_hcp] Send each command once, and the lamp as a state ( #19765 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-06 20:23:08 -10:00
Jonathan Swoboda
15aac378df
[ci] Run label checks in parallel instead of cancelling them ( #20259 )
2026-10-06 20:19:41 -10:00
J. Nick Koston and pre-commit-ci-lite[bot]
0e04b230fe
[api] Add outgoing connections so the device can dial Home Assistant (or anything that implements native API) ( #18919 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-07 16:22:14 +13:00
Guillaume Rischard and Clyde Stubbs
f3f79c301b
[mipi_spi] Add Waveshare ESP32-S3-Touch-LCD-1.46 SPD2010 model ( #19056 )
...
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com >
2026-10-07 13:24:08 +11:00
Francesco Pace
923700dcc9
[espectre] Add Wi-Fi CSI motion detection component ( #19801 )
2026-10-06 19:46:06 -05:00
Clyde Stubbs
19dce8840d
[ci] Ignore esphome/idf_component.yml in external component bot ( #20258 )
2026-10-07 11:19:44 +11:00
Jesse Hills
e040647530
[homeassistant] Add text, select and button platforms ( #19964 )
2026-10-07 11:46:36 +13:00
Bascht74 and J. Nick Koston
ab5a4b4f04
[uart_tcp] Claim the UART, reject duplicate server ports, pace on loop_interval ( #20180 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-06 15:50:28 -06:00
dependabot[bot]
cb1b4b0bd7
Update tzdata requirement from >=2026.4 to >=2026.5 ( #20250 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-06 17:07:13 -04:00
dependabot[bot]
597a4e46b1
Bump pylint from 4.1.1 to 4.1.2 ( #20249 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-06 17:06:37 -04:00
Clyde Stubbs
e68a499429
[motion] Add gesture detection ( #16787 )
2026-10-06 15:57:20 -05:00
Jonathan Swoboda
a56c85949a
[wireguard] Bump the library to esphome/wireguard 0.4.8 ( #20246 )
2026-10-06 16:28:03 -04:00
J. Nick Koston
4eeb110247
[esp32] Extract prefetched ESP-IDF tool archives in parallel ( #18841 )
2026-10-07 09:26:46 +13:00
mrtoy-me
194273955c
[tas58xx] Add support for tas5825 dac ( #19971 )
2026-10-06 15:22:00 -05:00
Clyde Stubbs and Claude Opus 5.5
490d478e54
[mipi_spi] Light platform for AMOLED display brightness ( #20212 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-07 07:02:34 +11:00
Keith Burzinski and Claude Fable 5.1
1520d228bc
[i2s_audio] Park the speaker data-out pin low at setup ( #20226 )
...
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-06 11:43:49 -06:00
Bascht74
61ac0cb753
[tcp_uart] Keep received bytes readable after the connection drops ( #20164 )
2026-10-06 11:39:02 -06:00
dependabot[bot]
2b02602a49
Bump smpclient from 7.2.0 to 7.3.0 ( #17443 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-06 11:37:14 -06:00
Bascht74 and J. Nick Koston
cad670785b
[socket] Add host tests for TcpClientLink and TcpListener ( #20167 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-06 11:28:06 -06:00
Kevin Ahrendt
980fed9e96
[sendspin] Require a type on the switch platform ( #20189 )
2026-10-06 11:23:57 -06:00
Jonathan Swoboda
f670993fe9
[ethernet] Pin the IDF version in the KSZ8851SNL test fixtures ( #20245 )
2026-10-06 11:40:53 -04:00
Jonathan Swoboda
fb20966353
[wireguard] Restart the connection while the peer is offline so the endpoint is re-resolved ( #20231 )
2026-10-06 11:16:57 -04:00
Clyde Stubbs
74d0a90308
[esphome] Revise warning text for password use ( #20230 )
2026-10-06 11:11:25 -04:00
J. Nick Koston
fef3804aa5
[espidf] Fix V1 ECDSA signed builds when skipping the bootloader ( #20244 )
2026-10-06 09:09:47 -06:00
luar123
e66ef45df7
[zigbee] add missing tests ( #20234 )
2026-10-06 11:08:01 -04:00
J. Nick Koston
1f53ccb572
[api] Cover Home Assistant action fields in the api test config ( #20236 )
2026-10-06 11:04:45 -04:00
b63794b53c
[web_server_idf] Respect explicit HTTP header limit ( #18657 )
...
Co-authored-by: jeroen85 <26403565+jeroen85@users.noreply.github.com >
Co-authored-by: Jeroen Jansen <jeroen@Jeroens-MacBook-Air.local >
2026-10-06 11:00:50 -04:00
J. Nick Koston
a69c648c6f
[neopixelbus] Cover addressable_color_wipe with a random color on ESP8266 ( #20221 )
2026-10-06 09:04:52 -04:00
J. Nick Koston
29090d50a7
[event] Cover how configs and components read and set event types in the component test ( #20216 )
2026-10-06 09:04:37 -04:00
J. Nick Koston
9b1a75b0ed
[fan] Cover preset mode reads and runtime sets in the component test ( #20209 )
2026-10-06 09:03:58 -04:00
J. Nick Koston
b7ddd1daa2
[climate] Cover custom mode reads and runtime sets in the component test ( #20208 )
2026-10-06 09:03:20 -04:00
Bascht74
6002c28a8d
[host] Ignore SIGPIPE so a write to a closed peer fails with EPIPE ( #20228 )
2026-10-06 22:38:16 +11:00
Bascht74
718b6651fe
[ci] Run pylint when its version, dependencies or configuration change ( #20202 )
2026-10-05 21:20:28 -05:00
J. Nick Koston
6191b7553e
[light] Cover get_effects() as published configs use it in the component test ( #20203 )
2026-10-05 21:07:37 -05:00
Bascht74
082a0b746a
[lvgl] Remove redundant __aexit__ override ( #20201 )
2026-10-05 19:45:15 -05:00
J. Nick Koston
8d8bd73112
[ble_device_base] Keep MAC filter lists in shared flash tables ( #20088 )
2026-10-05 19:28:36 -05:00
J. Nick Koston
3a3707926d
[wifi] Run the LN882x fallback AP on its own instead of retrying AP+STA every loop ( #20166 )
2026-10-05 19:25:14 -05:00
J. Nick Koston
80dc93d6ce
[core] [select] Keep select options in flash with a shared ConstVector ( #20117 )
2026-10-05 19:24:31 -05:00
J. Nick Koston
40af90ad25
[logger] Use the static ring buffer structure as its handle on ESP32 ( #20129 )
2026-10-05 19:24:13 -05:00
J. Nick Koston
4097f45677
[sx1509] Keep the keypad keys in flash ( #20111 )
2026-10-05 19:23:39 -05:00
esphome[bot]
039f07d332
Bump bundled esphome-device-builder to 1.21.0 ( #20199 )
2026-10-05 22:10:00 +00:00
dependabot[bot]
cdcc7bbf74
Bump ruff from 0.16.9 to 0.16.10 ( #20196 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-05 22:07:49 +00:00
dependabot[bot] and J. Nick Koston
9af9414dcc
Bump cryptography from 48.0.1 to 50.0.2 ( #20193 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-05 22:07:43 +00:00
dependabot[bot]
cf334e8758
Bump pylint from 4.0.10 to 4.1.1 ( #20194 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-05 22:07:37 +00:00
dependabot[bot] and J. Nick Koston
888043762e
Bump filelock from 4.0.6 to 4.0.9 ( #20195 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-05 22:07:33 +00:00
dependabot[bot]
7af96c8d36
Bump CodSpeedHQ/action from 5.2.1 to 5.4.0 ( #20197 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-05 22:07:10 +00:00
J. Nick Koston
a778baddca
[usb_uart] Only compile the vendor drivers that are configured ( #20190 )
2026-10-05 17:56:10 -04:00
Samuel Sieb
fc441646f4
[unicode][font] move extract_unicode_codepoint to new component ( #19969 )
2026-10-05 17:40:06 +00:00
J. Nick Koston
4a47a984a0
[audio_file] Keep audio files in flash instead of building them in setup() ( #20072 )
2026-10-05 12:41:33 -04:00
J. Nick Koston
8735aee847
[wifi] Leave the AP before an LN882x reboots ( #20176 )
2026-10-05 10:56:24 -05:00
J. Nick Koston
c8eaf518ba
[libretiny] Flag the LN882H SDK default MAC ( #20175 )
2026-10-05 10:56:02 -05:00
J. Nick Koston
bb8c23805a
[wifi] Connect LN882x to the BSSID asked for ( #20174 )
2026-10-05 10:55:11 -05:00
J. Nick Koston
f334b9ea11
[core] Decode base64 in a single pass ( #20123 )
2026-10-05 10:54:17 -05:00
J. Nick Koston
666cf169b9
[remote_base] Keep RC switch protocols in flash ( #20081 )
2026-10-05 10:54:03 -05:00
J. Nick Koston
a058937fe0
[api] Count packed varints a machine word at a time ( #20122 )
2026-10-05 10:53:47 -05:00
J. Nick Koston
417fdd9dc7
[nrf52] Share the ccache between devices ( #20028 )
2026-10-05 10:53:35 -05:00
Sebastian Noack
bc388b1de5
[epaper_spi] Add SSD1681 and the Waveshare 1.54in V2 panel ( #18073 )
2026-10-05 11:51:49 -04:00
Jonathan Swoboda
9820896430
[wireguard] Bump the library to esphome/wireguard 0.4.7 ( #20188 )
2026-10-05 11:34:07 -04:00
J. Nick Koston
4258b226a4
[wifi] Default LN882x power save to none, as on BK72xx and RTL87xx ( #20170 )
2026-10-05 10:26:22 -05:00
J. Nick Koston
5be0aca6d2
[libretiny] Build LN882x with 1-byte enums to match the SDK's WiFi library ( #20173 )
2026-10-05 10:24:19 -05:00
J. Nick Koston
1110857ffa
[wifi] Keep ESP8266's report of a replaced attempt from failing the next one ( #20183 )
2026-10-05 10:21:52 -05:00
J. Nick Koston
9a97419cfc
[ethernet] Store PHY registers in a StaticVector sized from the config ( #20131 )
2026-10-05 10:21:23 -05:00
ca74e71348
[emontx] Use total state class for energy sensors ( #20128 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-05 09:16:21 -05:00
Jonathan Swoboda
00303fb72b
[esp32][api][noise] Resolve arduino's libsodium requirement to the converted esphome/libsodium ( #20185 )
2026-10-05 09:55:18 -04:00
Bascht74
aa02a0996a
[socket][tcp_uart][uart_tcp] Reject an IPv6 host at config time ( #20165 )
2026-10-05 08:48:33 -05:00
Bascht74
59b49d34cc
[tcp_uart][uart_tcp] Expose the no-arg load_settings() and mark UartTcp final ( #20163 )
2026-10-05 08:47:18 -05:00
Bascht74
862047386c
[modbus] Reject send_wait_time and turnaround_time above 65535 ms ( #20160 )
2026-10-05 08:46:36 -05:00
Clyde Stubbs
bbd05e4811
[esp32] Work around ESP-IDF stack bug on P4 ( #20181 )
2026-10-05 07:50:18 -05:00
J. Nick Koston
a02fa71dc8
Merge pull request #20179 from esphome/sync/integration-durations
2026-10-05 07:48:03 -05:00
esphome[bot]
99fd1bca3e
[ci] Refresh integration test durations
2026-10-05 05:58:43 +00:00
J. Nick Koston
2d73ea24ca
[libretiny] Keep a scan that finds no networks from resetting the LN882x ( #20169 )
2026-10-04 21:23:09 -05:00
Max Slotov
645144ad4d
[uart] Validate parity and stop bits correctly ( #20161 )
2026-10-05 13:21:48 +11:00
J. Nick Koston
88378ab354
[mipi_spi] Keep the init sequence in flash ( #20089 )
2026-10-04 21:21:28 -05:00
J. Nick Koston
f91ac5ed1d
[mipi_dsi] Keep the init sequence in flash ( #20091 )
2026-10-04 21:20:56 -05:00
J. Nick Koston
3b319240c6
[mipi_rgb] Keep the init sequence in flash ( #20090 )
2026-10-04 21:20:32 -05:00
Clyde Stubbs and J. Nick Koston
d9b3f299e0
[exponential_moving_average] Add EMA preserved across reboots ( #19882 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-05 13:19:12 +11:00
J. Nick Koston
6f2d2a2001
[libretiny] Fix LN882x boot crash with the logger or a uart on UART0 ( #20162 )
2026-10-05 14:53:47 +13:00
esphome[bot]
8b9d51cf93
Bump bundled esphome-device-builder to 1.20.0 ( #20172 )
...
Co-authored-by: esphome[bot] <115708604+esphome[bot]@users.noreply.github.com>
2026-10-04 20:21:46 -05:00
J. Nick Koston
66eec7af15
[wifi] Keep a second fallback AP start from resetting the LN882x ( #20168 )
2026-10-05 13:58:35 +13:00
J. Nick Koston
60e511282a
[udp] Keep addresses in a shared flash table ( #20085 )
2026-10-05 13:45:18 +13:00
J. Nick Koston
e4be4c7fcb
[select] Keep select.is option lists in flash ( #20108 )
2026-10-04 18:30:45 -05:00
J. Nick Koston
99bf080092
[select] Cover select.is in the component test ( #20112 )
2026-10-04 18:30:44 -05:00
J. Nick Koston
0017b9c439
[matrix_keypad] Keep the keys in flash ( #20110 )
2026-10-05 12:26:42 +13:00
J. Nick Koston
ad1b6ab37e
[web_server] Keep allowed origins in a shared flash table ( #20086 )
2026-10-05 12:23:36 +13:00
J. Nick Koston
acf7257293
[core] Use the static queue structure as the FreeRTOSQueue handle ( #20133 )
2026-10-05 12:17:22 +13:00
J. Nick Koston
b36c5441cb
[esp32] Remove the unused loop_task_handle global ( #20132 )
2026-10-05 12:16:16 +13:00
J. Nick Koston
feedea4954
[web_server] Remove dead ESP-IDF event source connect callback and pack expose_log_ ( #20130 )
2026-10-05 12:15:58 +13:00
J. Nick Koston
4f9cd7821a
[core] Log ignored --skip-bootloader at debug level ( #20059 )
2026-10-05 12:14:42 +13:00
J. Nick Koston
31e0a31c65
[api] Skip the listen backlog setter when it matches the default ( #20066 )
2026-10-05 12:13:41 +13:00
J. Nick Koston
e09cab94d4
[version] Skip the hide hash and hide timestamp setters when they match the defaults ( #20067 )
2026-10-05 12:13:01 +13:00
J. Nick Koston
e708c85100
[uart] Skip the parity setter when it matches the default ( #20069 )
2026-10-05 12:12:34 +13:00
J. Nick Koston
cfbbd13b86
[remote_receiver] Pack carrier_duty_percent_ next to with_dma_ ( #20135 )
2026-10-05 12:05:29 +13:00
J. Nick Koston
8f0e032b5e
[esp32_ble] Group the one byte io_cap_ with the other byte fields ( #20136 )
2026-10-05 12:05:15 +13:00
J. Nick Koston
0dc10d9f30
[improv_ble] Pack the byte fields into the padding after connecting_sta_ ( #20137 )
2026-10-05 12:04:44 +13:00
J. Nick Koston
c4aa8fa9c5
[wifi] Place ap_ before the byte fields so they pack after it ( #20138 )
2026-10-05 12:02:40 +13:00
J. Nick Koston
9b83f37b78
[core] Let the empty Scheduler mutex take no space on single-threaded platforms ( #20139 )
2026-10-05 12:02:27 +13:00
J. Nick Koston
a1a4474a01
[script] Let the empty argument tuple take no space for scripts without parameters ( #20140 )
2026-10-05 12:02:24 +13:00
J. Nick Koston
3a06318b65
[template] Use distinct empty types so both unused select members take no space ( #20141 )
2026-10-05 12:02:18 +13:00
J. Nick Koston
2f9e37d6a9
[wifi] Let the empty pending_ flags struct take no space ( #20142 )
2026-10-05 12:00:23 +13:00
J. Nick Koston
fe2e541dc8
[template] Pack restore_value_ next to optimistic_ in TemplateNumber ( #20149 )
2026-10-05 09:26:21 +13:00
J. Nick Koston
474c2791fe
[ledc] Pack initialized_ next to bit_depth_ ( #20150 )
2026-10-05 09:25:35 +13:00
J. Nick Koston
7421b165e8
[rtttl] Pack state_ after wholenote_duration_ ( #20151 )
2026-10-05 09:25:28 +13:00
J. Nick Koston
52fc5f2c75
[ld2450] Pack direction_dedup_ after zone_config_ ( #20152 )
2026-10-05 09:25:25 +13:00
Jesse Hills
4f539d3391
[homeassistant] Use input_number.set_value for input_number entities ( #19965 )
2026-10-05 08:56:34 +13:00
guillempages
aad7907c37
[http_request] Reduce log level for missing header ( #18932 )
2026-10-05 06:55:55 +11:00
J. Nick Koston
fb8f679be9
[ring_buffer] Use the static ring buffer structure as its handle ( #20134 )
2026-10-04 15:40:57 -04:00
J. Nick Koston
84435e7d81
[sendspin] Pack mdns_advertised_ next to task_stack_in_psram_ ( #20148 )
2026-10-04 15:39:20 -04:00
J. Nick Koston
d0473438d9
[i2s_audio] Pack pdm_ with the other microphone bools ( #20145 )
2026-10-04 15:38:54 -04:00
J. Nick Koston
2ee13d59ac
[speaker] Pack mute_state_ next to state_ ( #20143 )
2026-10-04 15:38:32 -04:00
J. Nick Koston
bccdbc23c4
[mixer] Pack has_contributed_ next to pause_state_ ( #20144 )
2026-10-04 15:38:12 -04:00
J. Nick Koston
4b5375145a
[microphone] Move bits_per_sample_ to the end of MicrophoneSource ( #20146 )
2026-10-04 15:38:05 -04:00
J. Nick Koston
c6e3a5a165
[voice_assistant] Group the one byte members at the end ( #20147 )
2026-10-04 15:37:12 -04:00
J. Nick Koston
63cb75726b
[noise] Use the shared PROGMEM table helper for the PSK ( #20101 )
2026-10-04 13:06:05 -05:00
abderrahmen bejaoui
b070c828b3
[es8311] Encode the REG02 MCLK pre-multiplier instead of writing the factor ( #20121 )
2026-10-04 11:37:03 +00:00
J. Nick Koston
2d56559f04
[lvgl] Reject ESP8266 at validation ( #20099 )
2026-10-03 06:36:33 -05:00
J. Nick Koston
8691a43879
[font] Keep the glyph table in flash ( #20079 )
2026-10-03 06:29:06 -05:00
J. Nick Koston
f5c79eeec0
[qmi8658] Pin motion_id in test config to fix grouped component test conflict ( #20075 )
2026-10-02 19:29:34 -05:00
dependabot[bot]
fcf8fe2c11
Bump pre-commit-ci/lite-action from 1.1.0 to 1.2.0 ( #20057 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-02 14:38:02 -05:00
dependabot[bot]
4447f8a065
Bump platformdirs from 4.12.1 to 4.12.2 ( #20054 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-02 14:37:45 -05:00
dependabot[bot]
911bd3dadb
Bump pylint from 4.0.9 to 4.0.10 ( #20056 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-02 14:37:34 -05:00
dependabot[bot]
03f264775f
Bump filelock from 4.0.5 to 4.0.6 ( #20055 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-10-02 14:37:16 -05:00
Bascht74 and J. Nick Koston
fe5a155c13
[const] Hoist the allowed ips key to the shared constants ( #20053 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-02 19:14:51 +00:00
25eaf1d025
[wifi] Start IPv6 link-local on connect, not on DHCPv4 lease ( #19749 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-02 19:07:58 +00:00
Bascht74
5328e5f5e0
[tcp_uart] Add a server role with an IPv4 allow list ( #20026 )
2026-10-02 13:47:10 -05:00
de0a0b2af4
[ethernet] Fix IPv6 SLAAC: link-local on link-up, pass all-nodes multicast ( #19752 )
...
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-02 13:46:16 -05:00
J. Nick Koston
a5178a0f3d
[bmp280_base][bmp3xx_base][bmp581_base][spa06_base][mlx90393] Use the sub_* helpers for optional child entities ( #20051 )
2026-10-02 14:33:03 -04:00
J. Nick Koston
483b9ebe2c
[combination][libretiny][sound_level] Use the sub_* helpers for optional child entities ( #20050 )
2026-10-02 14:32:45 -04:00
J. Nick Koston
3cc4df4b3a
[rd03d][sim800l][tas58xx][bedjet][hoermann_hcp] Use the sub_* helpers for optional child entities ( #20049 )
2026-10-02 14:32:26 -04:00
J. Nick Koston
8a49ba7e98
[iaqcore][t6615][hc8][as3935][tx20] Use the sub_* helpers for optional child entities ( #20048 )
2026-10-02 14:32:09 -04:00
J. Nick Koston
b130c79267
[xiaomi_hhccpot002][xiaomi_miscale][xiaomi_wx08zm][radon_eye_rd200][am43] Use the sub_* helpers for optional child entities ( #20047 )
2026-10-02 14:32:00 -04:00
J. Nick Koston
b0d5681022
[lc709203f][max17043][pulse_counter][pulse_meter][duty_time] Use the sub_* helpers for optional child entities ( #20046 )
2026-10-02 14:30:17 -04:00
J. Nick Koston
b15bc083f6
[mcp9600][tem3200][kmeteriso][ufire_ec][ufire_ise] Use the sub_* helpers for optional child entities ( #20045 )
2026-10-02 14:30:01 -04:00
J. Nick Koston
690227f6d8
[honeywellabp][honeywellabp2_i2c][npi19][xgzp68xx][xdb401] Use the sub_* helpers for optional child entities ( #20044 )
2026-10-02 14:29:49 -04:00
J. Nick Koston
46b12b43b2
[ens210][htu31d][hyt271][honeywell_hih_i2c][ms8607] Use the sub_* helpers for optional child entities ( #20043 )
2026-10-02 14:29:27 -04:00
J. Nick Koston
ba9d54b8ad
[bmi160][mpu6050][mpu6886][mlx90614][max31855] Use the sub_* helpers for optional child entities ( #20042 )
2026-10-02 14:29:14 -04:00
J. Nick Koston
7169c0c930
[ags10][cm1106][sds011][pm1006][senseair] Use the sub_* helpers for optional child entities ( #20041 )
2026-10-02 14:28:59 -04:00
J. Nick Koston
e3fcf173c2
[bmp085][dps310][lps22][mpl3115a2][ms5611] Use the sub_* helpers for optional child entities ( #20040 )
2026-10-02 14:28:44 -04:00
J. Nick Koston
6d33b0401d
[nrf52] Use the shared managed ccache settings for the native build ( #20027 )
2026-10-02 13:28:40 -05:00
J. Nick Koston
78f39c7fee
[hdc1080][hdc2010][hdc2080][hdc302x][hte501] Use the sub_* helpers for optional child entities ( #20039 )
2026-10-02 14:28:31 -04:00
J. Nick Koston
79ad67b56f
[aht10][am2315c][am2320][dht][dht12] Use the sub_* helpers for optional child entities ( #20038 )
2026-10-02 14:28:18 -04:00
Bascht74 and J. Nick Koston
b6c79fdc9a
[socket] Share the server side as TcpListener ( #20037 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-02 13:07:00 -05:00
J. Nick Koston
cbe89c940d
[atm90e32] Use the sub_* helpers for optional child entities ( #20034 )
2026-10-02 12:30:24 -04:00
J. Nick Koston
4f1be0fcb2
[shtcx] Use the sub_* helpers for optional child entities ( #20033 )
2026-10-02 12:29:58 -04:00
J. Nick Koston
25a30fc472
[mhz19] Use the sub_* helpers for optional child entities ( #20032 )
2026-10-02 12:29:37 -04:00
J. Nick Koston
2d286031a4
[sht3xd] Use the sub_* helpers for optional child entities ( #20031 )
2026-10-02 12:29:09 -04:00
J. Nick Koston
995109aa4f
[es8388] Use the sub_* helpers for optional child entities ( #20030 )
2026-10-02 12:28:41 -04:00
Bascht74 and J. Nick Koston
5def4d46ca
[socket] Add an IPv4 allow list ( #20025 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-02 11:22:21 -05:00
J. Nick Koston
a531ea07a2
[xiaomi_cgdk2] Use the sub_* helpers for optional child entities ( #20020 )
2026-10-02 12:11:02 -04:00
J. Nick Koston
984de58853
[xiaomi_mhoc401] Use the sub_* helpers for optional child entities ( #20021 )
2026-10-02 12:10:41 -04:00
J. Nick Koston
09ba060fd5
[xiaomi_xmwsdj04mmc] Use the sub_* helpers for optional child entities ( #20022 )
2026-10-02 12:10:15 -04:00
J. Nick Koston
d0eddc8fc8
[xiaomi_cgpr1] Use the sub_* helpers for optional child entities ( #20023 )
2026-10-02 12:09:50 -04:00
J. Nick Koston
bf176633b2
[xiaomi_mhoc303] Use the sub_* helpers for optional child entities ( #20024 )
2026-10-02 12:09:28 -04:00
26398747a1
[uart_tcp] Add a hardware UART copied to one TCP socket ( #19887 )
...
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-10-02 10:23:29 -05:00
J. Nick Koston
6491eaeaae
[tcp_uart] Report a failed flush when the flush drops the link ( #20013 )
2026-10-02 10:10:28 -05:00
J. Nick Koston
7096546d83
[nrf52] Create the precompiled header in ccache depend mode ( #20019 )
2026-10-02 15:07:13 +00:00
J. Nick Koston
1c31e9d28d
[xiaomi_cgd1] Use the sub_* helpers for optional child entities ( #20018 )
2026-10-02 10:50:58 -04:00
J. Nick Koston
f595d8677c
[xiaomi_cgg1] Use the sub_* helpers for optional child entities ( #20017 )
2026-10-02 10:50:48 -04:00
J. Nick Koston
416d0c46ac
[xiaomi_lywsdcgq] Use the sub_* helpers for optional child entities ( #20016 )
2026-10-02 10:50:37 -04:00
J. Nick Koston
97235a20b8
[xiaomi_lywsd02] Use the sub_* helpers for optional child entities ( #20015 )
2026-10-02 10:49:07 -04:00
J. Nick Koston
61446e3e4f
[xiaomi_lywsd02mmc] Use the sub_* helpers for optional child entities ( #20014 )
2026-10-02 10:49:00 -04:00
1440998f3c
[core] Add new options suspend_loop and loop_interval ( #18136 )
...
Co-authored-by: Jonathan Swoboda <154711427+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: J. Nick Koston <nick@home-assistant.io >
2026-10-02 09:09:14 -05:00
J. Nick Koston
4c9a44301d
[zyaura] Use the sub_* helpers for optional child entities ( #20008 )
2026-10-02 09:07:52 -05:00
J. Nick Koston
54cb4c711a
[mmc5983] Use the sub_* helpers for optional child entities ( #20007 )
2026-10-02 09:07:39 -05:00
J. Nick Koston
7b018b9dca
[socket] Move the outgoing buffer into the TCP client link ( #20010 )
2026-10-02 09:07:35 -05:00
J. Nick Koston
65fef7d5d8
[cs5460a] Use the sub_* helpers for optional child entities ( #20006 )
2026-10-02 09:07:26 -05:00
J. Nick Koston
87d4bea24b
[pm2005] Use the sub_* helpers for optional child entities ( #20004 )
2026-10-02 09:07:14 -05:00
J. Nick Koston
d938bc9913
[ee895] Use the sub_* helpers for optional child entities ( #20005 )
2026-10-02 09:06:56 -05:00
Jonathan Swoboda
a27c73b44e
[wifi] Warn when eap is configured with esp32_hosted ( #20011 )
2026-10-02 09:38:20 -04:00
J. Nick Koston
0c0015ef88
[const] Move the role and reconnect interval keys to shared constants ( #20009 )
2026-10-02 08:35:07 -05:00
J. Nick Koston
ee4322ecd0
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-10-02 08:19:44 -05:00
J. Nick Koston
1b6cc0bf18
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-10-02 08:15:50 -05:00
4724aea42e
[tcp_uart] Add a TCP client that implements a UART ( #19884 )
...
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-10-02 08:00:40 -05:00
J. Nick Koston
d970e9292e
[esphome][ota][core] Compress OTA uploads on ESP32, RP2040, LibreTiny and host ( #19037 )
2026-10-02 08:00:10 -05:00
J. Nick Koston
797682cccc
[espidf] Skip the lwip sources that compile to empty objects ( #20000 )
2026-10-02 07:59:52 -05:00
J. Nick Koston
a58f3d34aa
[core] Compile util.cpp only on MQTT builds ( #20003 )
2026-10-02 07:59:36 -05:00
J. Nick Koston
3fd8f00e97
[socket] Compile the lookup and client link helpers only when required ( #20002 )
2026-10-02 07:31:41 -05:00
Jeff Brown and J. Nick Koston
12b016e3d2
[substitutions] Support !include with a condition ( #19455 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-02 07:27:29 -05:00
J. Nick Koston
dc1ab535a2
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-09-17 09:19:31 -05:00
J. Nick Koston
0801211ba1
Merge remote-tracking branch 'upstream/dev' into HEAD
2026-09-17 08:48:59 -05:00
J. Nick Koston
5d8bbb380a
Merge remote-tracking branch 'upstream/dev' into HEAD
2026-09-17 08:48:57 -05:00
J. Nick Koston
278079ceba
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-09-16 09:23:20 -05:00
J. Nick Koston
5a2f059be7
Match the backend's user-provided default constructor convention
2026-09-16 09:23:15 -05:00
J. Nick Koston
14998c0905
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-09-16 09:20:38 -05:00
J. Nick Koston
bd8ff69452
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-09-14 11:54:25 -05:00
J. Nick Koston
d69a1e9bf9
Charge the backoff on a degraded build, drop raced completions, one slot-budget map
...
A table-build failure that keeps the link for legacy nodes now charges the
backoff, so an unwalkable database stops retrying at advertisement cadence.
The write action re-resolves from the current table only. The neutral engine
drops a discovery completion that raced a teardown. Slot charging and the
cap-check skip read one mapping, so a platform cannot be skipped uncharged.
2026-09-14 11:54:14 -05:00
J. Nick Koston
8eb5d17f3d
Merge remote-tracking branch 'origin/dev' into neutral-ble-client
...
# Conflicts:
# esphome/components/ble_client/automation.h
2026-09-14 10:58:23 -05:00
J. Nick Koston
b61594a9a6
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-09-02 11:36:05 +02:00
J. Nick Koston
808afc024d
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-09-02 11:34:17 +02:00
J. Nick Koston
41f6a3dd45
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-26 19:50:16 -05:00
J. Nick Koston
0bb98b715f
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-08-26 19:49:11 -05:00
J. Nick Koston
a1815ad3d5
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-24 10:28:53 -05:00
J. Nick Koston
90af765fae
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-08-24 10:27:17 -05:00
J. Nick Koston
ec681bb4fb
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-20 00:47:07 -05:00
J. Nick Koston
f17b18d51a
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
2026-08-20 00:45:33 -05:00
J. Nick Koston
3ee3d1b353
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-19 10:30:50 -05:00
J. Nick Koston
5f11c430cc
Emit the materializer define only for the backend that has one
...
The registry entry now carries its materializer gate, so rp2 builds stop
receiving a Bluedroid define. Also: parent before the capacity check in
register_gatt_node (neutral parity) and BluedroidServiceTable is
non-copyable (owning raw pointer).
2026-08-19 10:30:43 -05:00
J. Nick Koston
3fb5aa401b
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-19 09:18:06 -05:00
J. Nick Koston
baf57195e2
Name the materializer define for what it gates
...
USE_BLUEDROID_GATT_SERVICE_TABLE compiles the Bluedroid materializer and
nothing else; the old name read like a cross-backend consumer capability
(rp2 always materializes and ignores it).
2026-08-19 09:15:17 -05:00
J. Nick Koston
27a97f36af
Key backend and engine selection on their own defines
...
Each backend arm now has a codegen-emitted USE_BLE_GATT_BACKEND_<NAME>
define, making the alias ladder order-independent and letting the proxy
capability constants describe the backend instead of the platform (a second
esp32 backend carries its own facts). The legacy raw-gattc engine is
selected by USE_BLE_CLIENT_LEGACY_ENGINE instead of platform identity, so
esp32's future move to the neutral engine is one line per language. The
address-scoped maintenance calls key on the stack define they wrap.
2026-08-19 09:14:17 -05:00
J. Nick Koston
0a28a5b023
Document the contract facts a backend author needs
...
Connect-timing ownership (the backend integrates with its platform's
scan/connect arbitration), the asynchronous-completion rule for accepted
ops, and the reserved error ranges with the wire-frozen values - all learned
the hard way by the first out-of-tree backend.
2026-08-19 09:10:05 -05:00
J. Nick Koston
ae8760ded8
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 19:28:25 -05:00
J. Nick Koston
5c6e62ffe0
Pin the neutral cap branch a future hub platform will take
2026-08-12 19:28:21 -05:00
J. Nick Koston
588ca0de3c
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 19:12:12 -05:00
J. Nick Koston
0801b29617
Surface a degraded mixed client in component status
...
The table-build skip sets a warning cleared by the next successful fan-out.
2026-08-12 19:12:09 -05:00
J. Nick Koston
674215f7f7
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 19:03:19 -05:00
J. Nick Koston
b00ad7ca8a
Name the mixed-client invariant and fold the promote loop
...
has_legacy_nodes_() lives next to the invariant it derives from; both
bailout outcomes reach one promotion loop; the carve assert relaxes to the
descending chain the comment claims; the notify op string names the IDF
call like its siblings.
2026-08-12 19:03:16 -05:00
J. Nick Koston
b2dd602cef
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 18:59:00 -05:00
J. Nick Koston
7ad51b4b8f
Pin the carve alignment, name the node-abort contract, fix strays
...
The static_assert enforces what the carve comment claims; the node header
now states that aborting inside on_connected() can leave on_disconnect
unpaired; the passive-proxy test comment names the current gate; the
pending-regs comment lands on the right member (lost to an aborted batch).
2026-08-12 18:58:56 -05:00
J. Nick Koston
6f9b5993b9
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 18:42:07 -05:00
J. Nick Koston
65c1b06f7f
Keep legacy nodes connected through a table-build failure
...
A failed search still poisons the whole discovery, but an allocation or walk
failure is table-specific: on a mixed client the legacy nodes keep the link
and only the gatt nodes skip that connection.
2026-08-12 18:42:03 -05:00
J. Nick Koston
93d352df83
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 18:38:08 -05:00
J. Nick Koston
e158205e4c
Surface the node-capacity guard in component status and log sync register failures
2026-08-12 18:38:04 -05:00
J. Nick Koston
014cccb67e
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 18:16:44 -05:00
J. Nick Koston
f5debdad32
Drop the orphaned Automation TAG box and fix the tidy naming
...
The write action's own tag left Automation::TAG with zero readers;
automation.cpp existed only to define it. Also notes the unpaired legacy
disconnect trigger on the failed-discovery path and re-anchors the
gatt_nodes_ comment.
2026-08-12 18:16:40 -05:00
J. Nick Koston
bbe643e16b
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 18:07:48 -05:00
J. Nick Koston
2a95fa44dc
Pack ConnectBackoff into 4 bytes and regroup the table walk context
...
256 ms ticks in a uint16_t drop the struct from 8 bytes (3 padding) to 4 on
both engines; the materializer's uint8 fields move behind its uint16s.
2026-08-12 18:07:44 -05:00
J. Nick Koston
63ab68b58a
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 17:56:33 -05:00
J. Nick Koston
314557f83b
Deduplicate the review-round additions
...
One ConnectBackoff shared by both engines replaces the forked hold-off
fields and constants (the duration is derived from the failure count). The
pending-registration scan lives once, sized by its own bound instead of the
node counter. The failure-suppressing SEARCH_CMPL arm moves to the call site
so the dispatcher stays void, notify-state logging is one helper on the
neutral wording, and the op-check helper takes the backend's spelling.
2026-08-12 17:56:29 -05:00
J. Nick Koston
e5cc588ab5
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 17:47:09 -05:00
J. Nick Koston
e4e464a3b9
Log GATT failures the bridge previously fanned out silently
...
Failed notify enables, reads, writes and unsubscribes now leave the same
breadcrumbs as the neutral engine; the shared-completion guarantee moves to
the node contract header.
2026-08-12 17:47:07 -05:00
J. Nick Koston
8ba15fa7af
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 17:24:38 -05:00
J. Nick Koston
a41dbed69c
Clear the bridge backoff on re-enable and fail the table build closed
...
set_enabled(true) resets the hold-off (neutral-engine parity), and every
failing build() return now resets the counts so a failed build can never
present a non-empty view.
2026-08-12 17:24:34 -05:00
J. Nick Koston
527ba05474
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 17:09:40 -05:00
J. Nick Koston
ba10832ed7
Tighten the bridge comments to repo style
2026-08-12 17:09:37 -05:00
J. Nick Koston
f2bae23b4e
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 17:04:51 -05:00
J. Nick Koston
d6b35f8ccf
Keep the on_connect trigger out of a failed discovery's teardown
...
A discovery the bridge classifies as failed now suppresses the legacy
SEARCH_CMPL fan-out, so user automations never observe the doomed link as a
connection (neutral-engine parity, including the mid-fan-out node abort).
Also documents that same-handle subscriptions from mixed node kinds are
unsupported during the migration window.
2026-08-12 17:04:46 -05:00
J. Nick Koston
7bc00c8eda
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 16:58:38 -05:00
J. Nick Koston
03efcf6bb5
Hold off reconnects after materializer failures on the esp32 bridge
...
A peer that reliably fails discovery (walk error, allocation failure) would
otherwise reconnect on its next sighting forever, holding a controller slot
each cycle - the neutral engine already backs off on this path.
2026-08-12 16:58:34 -05:00
J. Nick Koston
dd76743909
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 16:38:37 -05:00
J. Nick Koston
0d46b1047e
Name the failure in the discovery-bailout log
...
A failed search or count was indistinguishable from a service-less peer.
2026-08-12 16:38:33 -05:00
J. Nick Koston
313127d3dd
Gate on the unified neutral-node-surface define
2026-08-12 16:33:50 -05:00
J. Nick Koston
50f2eb4459
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 16:33:21 -05:00
J. Nick Koston
456f5b3042
Apply the simplify pass to the single-interface rework
...
Neutral fan-out runs before the legacy nodes so on_connect triggers observe
resolved gatt nodes (the neutral engine's order). Pending notify
registrations move to a fixed array (no post-setup heap). Gatt nodes also
join nodes_, collapsing the twin state loops. One define now means 'the
neutral node surface is compiled in' on both engines. The service count
moves into BluedroidServiceTable, free() resets it, bridge ops log failures,
the write action carries its own tag, and the automation headers drop
includes that left with the write actions.
2026-08-12 16:32:46 -05:00
J. Nick Koston
349ba6a02f
Merge branch 'neutral-ble-client' into radon-eye-single-node
2026-08-12 16:11:36 -05:00
J. Nick Koston
83c9603b4b
Address review: one overcommit message per platform and a stall breadcrumb
...
Platforms whose BLE stack owns a connection budget (esp32, rp2) report an
overcommit exactly once through that stack; the neutral cap check covers
future backend platforms without one. The write action logs unmatched
completions while a chain is parked, and the schema-dump gap is documented
as deliberate.
2026-08-12 16:11:20 -05:00
J. Nick Koston
f9993aa010
Migrate radon_eye_rd200 onto the neutral ble_client node interface
...
One implementation replaces the raw-gattc one and runs on esp32 and rp2
alike; user YAML is unchanged. The node resolves the V1/V2 variant from the
service table, owns its CCCD write, and keeps the drop-the-link-between-polls
protocol.
2026-08-12 16:09:44 -05:00
J. Nick Koston
ad9a41ed61
Cover the engine feature gates in the schema tests
2026-08-12 16:04:57 -05:00
J. Nick Koston
e6b7b3a028
One ble_write action on the neutral node interface
...
The raw-gattc and neutral twins collapse into ble_write_action.h, registered
through register_gatt_node on both engines. On esp32 this is the in-tree
exerciser of the node bridge; builds without a ble_write action compile no
bridge code.
2026-08-12 16:02:50 -05:00
J. Nick Koston
9a4a550fb9
Express ble_client engine capabilities per platform
...
BLEClientFeatures (gatt_node / raw_gattc / security) with a per-platform
provider set, capability-named validation errors, NODE_BLE_CLIENT_SCHEMA +
register_gatt_node for migrated components, and the security actions gated on
the feature instead of the platform. esp32 auto-loads bluetooth_connection
for the shared materializer (compiles empty without a neutral node).
2026-08-12 15:58:25 -05:00
J. Nick Koston
42dc4025c9
Deliver the neutral node callbacks from the esp32 engine
...
Nodes registered through register_gatt_node() get the neutral surface:
service table at SEARCH_CMPL (honoring the search status the base ignores),
translated completion/notify fan-outs, pairing results, and teardown via
on_disconnect_complete. Bridge-initiated notify registrations are intercepted
before the base's automatic CCCD write - the CCCD is the node's job on the
neutral contract. Compiled only under USE_BLE_CLIENT_GATT_NODES; builds
without a neutral node are unchanged.
2026-08-12 15:55:56 -05:00
J. Nick Koston
901fd35a7e
Extract the Bluedroid service-table materializer into a shared class
...
BluedroidServiceTable carries the two-pass build verbatim in its own TU; the
backend embeds one instance. ble_client's esp32 engine becomes the second
consumer next.
2026-08-12 15:53:14 -05:00
J. Nick Koston
4344ffd682
Share one BLEClientNode between the engines and round out the neutral surface
...
The neutral callbacks (plus a new on_pairing_result hook) live unconditionally
in ble_client_node.h; the raw esp32 surface stays beneath them for unmigrated
nodes. Adds find_descriptor beside find_cccd and pair()/unpair() on the
neutral client. Drops the node 'client' pointer and address, which nothing
reads.
2026-08-12 15:47:43 -05:00
J. Nick Koston
1c671be1bd
Use the merged ledger accessor in the explicit-connections test
2026-08-12 15:04:26 -05:00
J. Nick Koston
52dc51c7c6
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
...
# Conflicts:
# esphome/components/bluetooth_connection/__init__.py
# esphome/components/bluetooth_connection/bluetooth_connection.cpp
# esphome/components/bluetooth_connection/bluetooth_connection.h
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.cpp
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.h
# esphome/components/bluetooth_connection/bluetooth_connection_hub.cpp
# esphome/components/bluetooth_connection/bluetooth_connection_hub.h
# esphome/components/bluetooth_proxy/__init__.py
# esphome/components/bluetooth_proxy/bluetooth_proxy.cpp
# esphome/components/bluetooth_proxy/bluetooth_proxy.h
# esphome/core/defines.h
# tests/components/bluetooth_connection/__init__.py
2026-08-12 15:04:09 -05:00
J. Nick Koston
671b6216a7
Merge branch 'dev' into neutral-ble-client
2026-08-10 14:30:42 -05:00
J. Nick Koston
5764ca607d
Merge remote-tracking branch 'upstream/dev' into neutral-ble-client
...
# Conflicts:
# esphome/components/ble_device_base/ble_gatt_client.h
# esphome/components/bluetooth_connection/__init__.py
# esphome/components/bluetooth_connection/bluetooth_connection.cpp
# esphome/components/bluetooth_connection/bluetooth_connection.h
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.cpp
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.h
# esphome/components/bluetooth_connection/bluetooth_connection_hub.cpp
# esphome/components/bluetooth_connection/bluetooth_connection_hub.h
# esphome/components/bluetooth_proxy/__init__.py
# esphome/components/bluetooth_proxy/bluetooth_proxy.cpp
# esphome/core/defines.h
# tests/component_tests/bluetooth_proxy/test_platform_gates.py
# tests/components/ble_device_base/__init__.py
# tests/components/bluetooth_proxy/test-passive.esp32-c6-idf.yaml
2026-08-10 10:50:00 -05:00
J. Nick Koston
273c80ecd3
Address review: state the table lifetime where it is freed
...
Every teardown path routes through release_services(), so the
materialized table cannot outlive its link - said at free_service_table_
so the next reviewer need not re-derive it.
2026-08-09 19:59:06 -05:00
J. Nick Koston
1933126ad7
Address review: de-vacuous the reject test, loud node overflow, walker logs
...
- The rejection test registers the hub and matches the extra-keys error,
so the missing-tracker error can no longer satisfy it vacuously
- register_ble_node logs and drops loudly at capacity: a push_back past
a StaticVector's bound is a silent no-op, and an undersized slot count
must show at boot, not as an unresolvable node
- Every walker failure names the failing call and status; the descriptor
cap gets its own message so a >64-descriptor characteristic is
diagnosable instead of a permanent silent backoff loop
2026-08-09 19:37:32 -05:00
J. Nick Koston
64034b5b23
Use the set_core_config fixture instead of hand-poking CORE.data
...
The conftest fixture is the one spelling for platform setup; the
ledger tests already use it.
2026-08-09 19:16:18 -05:00
J. Nick Koston
830854d661
Address review: pin the neutral arm's rejection of esp32-only keys
...
The schema split's accept side was tested; the reject side was not - a
key leaking from the legacy arm into the neutral schema would have
passed silently.
2026-08-09 19:12:52 -05:00
J. Nick Koston
87b7076cd1
Address review: fail the empty table before CONNECTED, one slot spelling
...
- The empty-table bailout ran after state_ went CONNECTED, so its
teardown's terminal report read as a completed connection and fired
on_disconnect with no preceding on_connect - the exact trigger
contract violation the sibling error branch avoids. The check now
runs first and the teardown resolves through connect_failed; a
node-less client still reaches CONNECTED through the single
assignment after the guard
- The esp32 arm claims its slot through consume_gatt_slot like every
other claimant (behavior-identical: it forwards to the same esp32
validator), so the ledger's one-spelling contract holds
2026-08-09 18:52:49 -05:00
J. Nick Koston
5ec7047151
Address review: empty-table failure semantics, async abort guard, StaticVector nodes
...
- A zero-service table on a client with nodes is treated as a failed
discovery (warn, release, charge the backoff, disconnect): a real GATT
peer always exposes at least GAP/GATT, so an empty table means the
materialization failed and the connection must retry instead of
sitting inert behind a successful on_connect
- The fan-out abort guard also tests cancel_requested_, covering the
normal async teardown a node starts from on_connected (the state-only
check caught just the synchronous refusal)
- nodes_ becomes a StaticVector sized by ESPHOME_BLE_CLIENT_MAX_NODES:
the client requests a baseline slot, each neutral write action (which
registers itself in its constructor) requests one, and the define
rides defines.h for analysis - no realloc machinery on the rp2 target
- The Bluedroid empty-table return logs its quiet cases; the
service_table=False stub notes the misconfiguration it implies
2026-08-09 18:34:13 -05:00
J. Nick Koston
45d921f77a
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 17:34:37 -05:00
J. Nick Koston
321b00143d
Address review: latch the retry only for the current subscriber
...
A gate-refused send to a peer that is not api_connection_ (the
subscribe-time path during a handover) must not arm a retry that
loop() would aim at a different connection.
2026-08-09 17:34:33 -05:00
J. Nick Koston
e6e9016ed4
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 17:07:45 -05:00
J. Nick Koston
a292aa2654
Drop the disconnect-notification retry latch
...
Overkill for its window: the address latch, drain, reuse guard and
session hygiene bought coverage for a case the client's own timeouts
and the retried connections-free state already heal. The notification
goes out when it can; the connections-free retry (the hardware-verified
fix) stays.
2026-08-09 17:07:42 -05:00
J. Nick Koston
4353f5ac9c
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 17:05:05 -05:00
J. Nick Koston
4925f6648b
Address review: retry-latch hygiene on subscriber change, parity note
...
- Both retry latches clear on subscribe/unsubscribe: a new subscriber
must not receive a connected=false for an address from the previous
session (it resyncs through its own subscribe requests)
- The app-register failure path states its BLEClientBase parity so the
no-retry behavior reads as deliberate
2026-08-09 17:05:01 -05:00
J. Nick Koston
47bd8f5ffc
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 17:03:13 -05:00
J. Nick Koston
31771da92c
Address review: gate the cache clean where the paths converge
...
The stack-down settle skipped release_services() locally, but its
report routes into the wrapper's reset which calls it anyway - the
warn survived. Gating the clean on an active stack inside
release_services() covers every path, and the stack-down branch goes
back to the plain call.
2026-08-09 17:03:09 -05:00
J. Nick Koston
1978f203bc
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 16:32:41 -05:00
J. Nick Koston
ae906ada94
Address review: quiet stack-down teardown, pin bitfield widths
...
- The stack-down settle resets the stream latches directly instead of
calling release_services(): the dying stack invalidates its own cache,
and the newly checked cache_clean would warn on every OTA or
ble.disable with a live connection
- static_asserts pin the exactly-sized state bitfields so a future
enumerator truncates loudly at compile time
2026-08-09 16:32:37 -05:00
J. Nick Koston
6a2465da63
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 16:24:06 -05:00
J. Nick Koston
9a5aab63d5
Address review: retry a dropped freed-slot notification too
...
The connections-free retry left its sibling asymmetric: on the same
full buffer the slot could report free while the device still read as
connected, with nothing resending the connected=false. A one-deep latch
(address + error) drains at the same 100 ms cadence and re-latches on a
repeat failure; a re-reservation of the address clears it, since the
client re-requesting the connect has already acted on the disconnect
and a late resend would shadow the new connection. A lost
connected=true stays client-timeout territory.
2026-08-09 16:24:03 -05:00
J. Nick Koston
deeec17d0d
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 16:07:38 -05:00
J. Nick Koston
735f810f08
Cover the unknown-platform raise in frameworks_for_platforms
2026-08-09 16:07:35 -05:00
J. Nick Koston
cd48023a56
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 16:03:30 -05:00
J. Nick Koston
9330204908
Address review: unknown platforms raise, the filter pin asserts equality
...
An unknown or misspelled platform name yielded an empty set - the file
would be filtered out of every build (link failure at the end of a long
compile) and the subset guard passed vacuously.
2026-08-09 16:03:25 -05:00
J. Nick Koston
45501056d8
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 15:58:59 -05:00
J. Nick Koston
2e6ad94bd1
Tighten the listener doc to repo style
2026-08-09 15:58:56 -05:00
J. Nick Koston
5994105d34
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 15:57:24 -05:00
J. Nick Koston
0ac9a0f8bd
Check the cache-clean status in release_services()
...
The one IDF call in the backend that skipped check_and_log_error_. A
failed clean leaves a stale database the next connection could serve as
authoritative, with nothing in the log to point at it. (The call fails
only at dispatch - stack down - not for an empty cache, so this cannot
warn-spam routine teardowns.)
2026-08-09 15:57:20 -05:00
J. Nick Koston
77b8b384bd
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 15:55:00 -05:00
J. Nick Koston
3728669fa6
Restore the reconnect-during-teardown cancel fast path
...
The collapse of the CONNECTING branch dropped a real race fix: HA
re-requesting a connect while a scheduled teardown was still pending
used to cancel the teardown and let the in-flight open complete;
without it the request was ignored and HA paid a teardown plus a fresh
connect during exactly the reconnect churn this path sees most.
cancel_gatt_disconnect() joins the contract: true only for a scheduled
teardown that has not started closing (Bluedroid clears the latched
want_disconnect_); rp2 and the stubs return false since their teardowns
start inside gatt_disconnect(). The wrapper's cancel_teardown() returns
its state to CONNECTING and the proxy handler carries the dev branch
verbatim.
2026-08-09 15:54:56 -05:00
J. Nick Koston
578e4774a9
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 15:44:01 -05:00
J. Nick Koston
8696255ccc
Give connection_index_ an in-class initializer like every sibling
2026-08-09 15:43:57 -05:00
J. Nick Koston
594931265b
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 15:15:37 -05:00
J. Nick Koston
b0f753a7a2
Address review: check prefer-conn-params, pace the retry drain
...
- Both esp_ble_gap_set_prefer_conn_params calls route through
check_and_log_error_ like the class this PR replaces did; a rejected
preference leaves the link on the controller default interval, which
is exactly the WiFi-coex failure the shared constants exist to avoid,
so it must be visible in logs
- The connections-free retry moves below the 100 ms gate so a full TCP
buffer is retried at the loop cadence instead of every iteration
2026-08-09 15:15:33 -05:00
J. Nick Koston
fc69d8543e
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 14:54:05 -05:00
J. Nick Koston
d586a6c8d4
Address review: check the reclaim close, log the mid-stream park
...
- The late-OPEN_EVT reclaim was the one unchecked IDF call in the
backend; a failed close there leaks a live link nothing tracks
- The mid-stream services_released_ park now leaves a trace like its
API-lost sibling, so a stuck GetServices is explicable from logs
2026-08-09 14:54:01 -05:00
J. Nick Koston
9301391792
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 14:46:35 -05:00
J. Nick Koston
1b801427c4
Dry-pass round 2: comment accuracy polish
...
Round 2 found no code issues - the round-1 mechanisms verify clean on
disk (every IDLE transition through the one door, the teardown-guard
trio minimal-complete per event, the error latch airtight, the reset
lists disjoint by construction). What remained was comment drift:
disconnect_pending() spelling, the OPEN_EVT and cached-MTU comments,
the contract header re-wrap, the two claim-a-slot docstrings
disambiguated, and ragged wraps from earlier text excisions.
2026-08-09 14:46:30 -05:00
J. Nick Koston
be391feaa9
Merge branch 'esp32-gatt-backend' into neutral-ble-client
...
# Conflicts:
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.cpp
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.h
2026-08-09 14:38:33 -05:00
J. Nick Koston
7e369f332c
Dry-pass round 1: one door to IDLE, complete teardown guards, residue
...
- set_idle_() is the single door back to IDLE (bootstrap, open-fail and
the DISCOVERED park went through bare set_state), so the per-attempt
reset list holds only per-attempt latches
- CFG_MTU joins OPEN_EVT and SEARCH_CMPL in suppressing reports while a
teardown owns the link - one spelling of the guard across all three
events, and the wrapper's race arm becomes defense instead of the only
cover
- The connections-free retry drain compiles on every proxy build (the
advertisement-only arm sends the message too; the latch already did)
- latch_pending_error_ makes first-cause-wins the mechanism at all three
latch sites; the dead freed-slot refused branch and its retired
vocabulary go; the initiate_connection/start_connect_ pair collapses
- UNSET_CONN_ID hoisted next to the field it initializes; count-status
shadow renamed; stale busy-error rationale replaced with the real one
(a repeat call would re-arm the teardown timer)
- Fixture states the batch-grouping caveat like its rp2 sibling; the
get_service_table stub carries a greppable direct-consumer warning
2026-08-09 14:37:57 -05:00
J. Nick Koston
a40ecfdf9c
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 14:22:40 -05:00
J. Nick Koston
9a6765eb8f
Log the deferred connections-free resend at verbose
...
Log lines ride the same API connection; a debug line at the exact
moment the TCP buffer is full adds traffic when it can least afford it
(the api layer's own buffer-full log is verbose for the same reason).
2026-08-09 14:22:37 -05:00
J. Nick Koston
1d0a87daa8
Address review: an empty service table with nodes logs a warning
...
A service-less device or a failed materialization both leave the nodes
unable to resolve; the client no longer sits inert without a trace.
2026-08-09 14:20:31 -05:00
J. Nick Koston
c98dd74e11
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 14:13:53 -05:00
J. Nick Koston
aceff27948
Retry a dropped connections-free update
...
Field bug on a Pico W: the slot freed device-side but the API client
kept free=0 with the address still allocated. send_message drops the
response when the TCP buffer is full (a boot storm makes that likely
right when HA reconnects), and nothing ever resent it - the client's
slot state is verbatim the last response received, so it stayed stale
until reboot. The cached response is current by construction, so a
pending bit retried from loop() is an idempotent resync; the
subscribe-time send heals through the same bit.
2026-08-09 14:13:50 -05:00
J. Nick Koston
211337cd6d
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 14:03:07 -05:00
J. Nick Koston
4276815734
Address review: scope the rp2 defines pin, contract-back the teardown semantics
...
- The esp32 arm's ESPHOME_BLE_GATT_CLIENT_COUNT shadowed the unanchored
regex; the pin now searches the USE_RP2 platform block
- The contract states what the wrapper relies on: nonzero from
gatt_disconnect means nothing to tear down, an accepted teardown
always reaches a terminal report
2026-08-09 14:03:04 -05:00
J. Nick Koston
3c57064bf2
Address review: skip table materialization when no node will read it
...
A client with only connect/disconnect automations paid the build/free
cycle on every reconnect for nothing - post-setup heap churn on the
Bluedroid direct-consumer path. release_services() stays unconditional.
2026-08-09 13:45:33 -05:00
J. Nick Koston
f9be82d1a6
Address review: on_notify_state joins the node interface
...
notify_characteristic() had no completion path to the node that asked;
the hook lands now while the surface has no external users, with the
client fanning out after its breadcrumb.
2026-08-09 13:30:08 -05:00
J. Nick Koston
10a0bf0ff8
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 13:29:27 -05:00
J. Nick Koston
484674b85d
Derive the bluedroid source-filter entry from the shared helper
...
frameworks_for_platforms() gains its production caller in the same file
as the platform registry; the derived set is identical to the hand list.
2026-08-09 13:29:00 -05:00
J. Nick Koston
49c1547fda
Compile the gated lookup helpers into the ble_device_base test build
...
The contract test's own #define only covers its translation unit;
ble_gatt_client.cpp needs the define from the build to link the
find_characteristic/find_cccd definitions the lookup tests call.
2026-08-09 13:25:52 -05:00
J. Nick Koston
7b4353b417
Import the service-table materializer from #18198
...
The Bluedroid on-demand materializer, the neutral lookup helpers' host
tests, and the USE_BLE_GATT_SERVICE_TABLE define move here, next to
their first consumer (the neutral engine's table resolution and the
service_table codegen flag). One behavior fix rides along: hitting
MAX_DESCRIPTORS_PER_CHARACTERISTIC now fails the walk like every other
inconsistency instead of truncating the table silently.
2026-08-09 13:23:44 -05:00
J. Nick Koston
5f20346d54
Merge branch 'esp32-gatt-backend' into neutral-ble-client
...
# Conflicts:
# esphome/components/ble_device_base/ble_gatt_client.h
2026-08-09 13:23:17 -05:00
J. Nick Koston
356c1d9134
Guard every GATT op on an unset conn id
...
discover_services() already returned the contract's not-connected value;
the read/write/notify/pair ops fell through to an arbitrary stack error
instead. Dead for the proxy (the wrapper gates on connected()), live for
a direct consumer racing an op against a teardown.
2026-08-09 13:22:28 -05:00
J. Nick Koston
9534a1df55
Move the dark service-table materializer and lookup helpers to #18205
...
Nothing in this PR emits USE_BLE_GATT_SERVICE_TABLE, so the Bluedroid
materializer, the neutral find_service/find_characteristic/find_cccd
helpers, their host tests, and the defines.h entry were scaffolding with
no caller here. They move to the PR that introduces their first
consumer. The contract op stays: get_service_table() keeps its {} stub
(the proxy streams in place).
2026-08-09 13:21:36 -05:00
J. Nick Koston
fb64b18047
Address review: notify/pairing breadcrumbs, aborted fan-out trace
...
- on_notify_state and on_pairing_result are handled on the neutral
client: a failed registration or pairing logs instead of vanishing
into the default no-op on a frozen surface
- A node tearing the link down during the connect fan-out leaves a
warning, since on_disconnect then fires with no preceding on_connect
2026-08-09 12:59:24 -05:00
J. Nick Koston
5572bf77dd
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 12:57:42 -05:00
J. Nick Koston
d8ec76e02b
Fail on premature enumeration terminators; explicit terminal states
...
- An INVALID_OFFSET/NOT_FOUND before the count from the same cache is a
contradiction, not an end-of-range: the walker fails the build and the
streamer aborts with the real cause instead of silently truncating
(the walker's descriptor loop keeps its terminator - the 64 cap is its
only bound)
- unconditional_disconnect_'s unset-conn-id path drives the slot to a
terminal reported state instead of leaning on the scheduled-teardown
timer
- find_characteristic/find_cccd log a corrupt range before returning the
not-found sentinel (moved out of line - no ESP_LOG in headers)
2026-08-09 12:57:36 -05:00
J. Nick Koston
cf5faa454c
Address review: rejection logs, honest service_table docstring, terse sweep
...
- connect()/disconnect() log a rejected user action like the legacy
engine instead of silently ignoring it
- The service_table docstring states the flag is Bluedroid-only forward
scaffolding and that rp2's proxy hub must keep its materializer
regardless (it streams through get_service_table())
- Review-round comments tightened to repo style
2026-08-09 12:47:17 -05:00
J. Nick Koston
55d14c6fbf
Merge branch 'esp32-gatt-backend' into neutral-ble-client
...
# Conflicts:
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.cpp
2026-08-09 12:43:57 -05:00
J. Nick Koston
d86bdb36cf
Address review: honor SEARCH_CMPL status, close a late OPEN, backstops
...
- handle_search_cmpl_ takes the event status: a failed discovery no
longer reads as a clean zero-service success (the empty cached
database satisfies the count calls), and the table invalidation plus
param step-down still run on the failure path
- A late successful OPEN_EVT on a slot the teardown net already gave up
is closed instead of leaking a live controller link with no conn id
- The counting pass logs its failure like the two paths below it
- static_assert pins the wrapper's compile-time streamer detection; a
signature drift would silently fall back to a table proxy builds
compile without
- find_characteristic/find_cccd range math widened to 32-bit (correct by
type; the wrapped-end case was already loop-safe)
2026-08-09 12:42:17 -05:00
J. Nick Koston
c64684dd00
Tighten review-round comments to repo style
2026-08-09 12:36:55 -05:00
J. Nick Koston
ed002feee9
Address review: mid-fan-out release, self-enforcing cap, scaffolding note
...
- The fan-out early return releases the borrowed table itself instead of
relying on the backend's own teardown release
- A registered non-esp32 backend platform without a slot cap now fails
validation loudly instead of failing open (the test pin remains)
- new_gatt_backend's docstring says the service_table flag is forward
scaffolding for the first esp32 direct consumer, not load-bearing on
any current build
2026-08-09 12:19:43 -05:00
J. Nick Koston
38f31d85b6
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 12:19:14 -05:00
J. Nick Koston
d04ef2378e
Contract doc: writes without response also report on_write_result
...
Both backends report the no-response completion (Bluedroid at
WRITE_CHAR_EVT, rp2 synthesized or via the can-send path); the neutral
write action already relies on it.
2026-08-09 12:18:35 -05:00
J. Nick Koston
5e26633231
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 12:07:13 -05:00
J. Nick Koston
6c78b480c4
Return the wrapper to 48 bytes - exact per-slot RAM parity with dev
...
The measured layout showed 56+48 = 104 B/slot vs dev's 96. Two changes
that only pay together (the wrapper is 8-aligned, so nothing under a
full 8 helps):
- The tail packs into 2 bytes of bitfields; remote_addr_type_ becomes a
start_connect_ parameter (written and read on adjacent lines only)
- The wrapper's duplicate 10 s teardown timer is gone: the backend owns
the whole safety window. Its timer now also arms for a teardown
scheduled during CONNECTING (the one case the wrapper covered alone),
a late OPEN_EVT on a given-up slot closes the link instead of
resurrecting it, and the wrapper's transient-refusal branch collapses
because both backends return nonzero only when already idle
48 + 48 = 96 B/slot, the split at dev parity.
2026-08-09 12:07:10 -05:00
J. Nick Koston
3d33a16b71
Return the wrapper to 48 bytes - exact per-slot RAM parity with dev
...
The measured layout showed 56+48 = 104 B/slot vs dev's 96. Two changes
that only pay together (the wrapper is 8-aligned, so nothing under a
full 8 helps):
- The tail packs into 2 bytes of bitfields; remote_addr_type_ becomes a
start_connect_ parameter (written and read on adjacent lines only)
- The wrapper's duplicate 10 s teardown timer is gone: the backend owns
the whole safety window. Its timer now also arms for a teardown
scheduled during CONNECTING (the one case the wrapper covered alone),
a late OPEN_EVT on a given-up slot closes the link instead of
resurrecting it, and the wrapper's transient-refusal branch collapses
because both backends return nonzero only when already idle
48 + 48 = 96 B/slot, the split at dev parity.
2026-08-09 12:06:44 -05:00
J. Nick Koston
e3aa8773e6
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 11:50:26 -05:00
J. Nick Koston
be5e00aefd
Address review: discovery status, loop lifetime, event conn id
...
- SEARCH_CMPL honors the event's own status: a failed discovery leaves
an empty cached database that the count calls read as a clean zero,
which would have become an authoritative empty service list
- The loop stays enabled while a link exists and settles only at IDLE -
the stack-down recovery needs a tick to run in ESTABLISHED, which the
settle-on-established optimization was silently blocking
- The pre-started search uses the OPEN_EVT conn id (replaced-class
parity)
2026-08-09 11:50:22 -05:00
J. Nick Koston
9c5ebdffc9
Address review: complete the node-facing surface, wiring test, comment placement
...
- read_descriptor and notify_characteristic passthroughs join the frozen
surface so the first migrated node can subscribe without extending the
client; the comment now says which ops have callers today
- The choke-point test also validates through the public
BLE_CLIENT_SCHEMA, so removing the cv.All wiring fails a test
- DOMAIN no longer sits between the BTstack comment and the constant it
explains
2026-08-09 11:26:47 -05:00
J. Nick Koston
9554e1a212
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 11:19:58 -05:00
J. Nick Koston
28491f83b4
Close the silent-failure paths from review
...
- A refused MTU request no longer wedges the connection: OPEN_EVT
reports with the default MTU so the consumer proceeds (previously no
CFG_MTU_EVT meant no connected report and a slot that never freed)
- Disabling the BLE stack settles a live link with a connected=false
report before forgetting it, so the consumer frees its slot instead of
holding a phantom connection
- A refused security response answers the pairing request with the
failure instead of hanging it
- The service-table walk mismatch logs its reason before discarding
- The shared streamer's two bounds-check aborts use abort_service_stream
with an ATT Unlikely Error cause (new shared GATT_ERR_UNLIKELY)
2026-08-09 11:19:55 -05:00
J. Nick Koston
2f71ec16d7
Close the silent-failure paths from review
...
- A refused MTU request no longer wedges the connection: OPEN_EVT
reports with the default MTU so the consumer proceeds (previously no
CFG_MTU_EVT meant no connected report and a slot that never freed)
- Disabling the BLE stack settles a live link with a connected=false
report before forgetting it, so the consumer frees its slot instead of
holding a phantom connection
- A refused security response answers the pairing request with the
failure instead of hanging it
- The service-table walk mismatch logs its reason before discarding
- The shared streamer's two bounds-check aborts use abort_service_stream
with an ATT Unlikely Error cause (new shared GATT_ERR_UNLIKELY)
2026-08-09 11:19:25 -05:00
J. Nick Koston
3daa1d2450
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 10:56:31 -05:00
J. Nick Koston
a513cef4e2
Encode the pre-started search lifecycle as a state machine
...
The three coordinated flags become one SearchState (NONE / PRESTARTED /
PRESTART_DONE / CLAIMED / REPORT_PENDING): illegal combinations are
unrepresentable, delivery and the two reset sites collapse to single
assignments, and the requested-meets-done subtlety becomes a named
state. A second discover_services() while one is in flight now returns 0
instead of issuing a duplicate search (one completion is already owed).
Same RAM: the enum sits in a 4-bit bitfield in the same flags byte.
2026-08-09 10:56:27 -05:00
J. Nick Koston
fa17215053
Address review: fan-out guard, refusal warning, sighting-less connect hint
...
- The connected fan-out stops if a node tears the link down mid-loop
(latent until a backend settles a teardown synchronously)
- A synchronously refused disconnect logs its own warning - a backend/
client state divergence is no longer the most quietly logged outcome
- An action-initiated connect before any sighting warns that the public
address type is assumed (an opaque repeated failure becomes
self-diagnosing); the connect() doc no longer mentions a config key
that does not exist
- The explicit-connections ledger test asserts the exact charged count;
the host-test override comment names the current gate macro
2026-08-09 10:43:21 -05:00
J. Nick Koston
073d9a72a0
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 10:22:39 -05:00
J. Nick Koston
3a24d0b03b
Reset the search latches per connection attempt
...
The latches were cleared only in set_idle_(), but the stack-down branch
in loop() reaches IDLE through set_state() without it, so after a
ble.disable/enable cycle the next connection's discover_services() would
complete immediately from the previous connection's latched result and
HA would cache an authoritative empty service list. tracker_connect_()
now resets the latch alongside the two per-attempt flags it already
clears, and delivery consumes the whole latch so a re-discovery on a
live link issues a real search instead of re-reporting the first
result.
2026-08-09 10:22:35 -05:00
J. Nick Koston
b229bd4d8a
Address review: explicit connections claim slots, re-enable clears backoff
...
- Explicit `connections:` entries now charge the slot ledger like the
generated ones (dev let them evade the controller budget); pinned by a
test
- set_enabled(true) clears the connect backoff - a re-enable is an
explicit try-again
- The neutral engine's source filter uses the shared
frameworks_for_platforms helper; ledger tests use the conftest fixture
2026-08-09 10:09:20 -05:00
J. Nick Koston
c8e240198d
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 10:07:42 -05:00
J. Nick Koston
0512339c58
Deduplicate the stream-abort sequence and small cleanups
...
- abort_service_stream() on the wrapper (which owns the latch discipline)
replaces five identical field-poke sequences in the streamer
- The pre-start reuses check_and_log_error_ like the serialized path
- discover_services() sets the requested flag where it sticks instead of
set-then-rollback; deliver_pending_search_() returns void (no caller
reads it); loop()'s IDLE arm folds into the settle arm
- SEARCH_CMPL during a teardown skips the param/count work whose result
is never delivered
- frameworks_for_platforms() in config_helpers derives framework sets
from platform lists; the hub.cpp filter entry is now a named map pinned
by a test against the proxy's platform list
2026-08-09 10:05:42 -05:00
J. Nick Koston
e95bebb7d0
Merge branch 'esp32-gatt-backend' into neutral-ble-client
...
# Conflicts:
# esphome/components/bluetooth_connection/bluetooth_connection.h
2026-08-09 09:54:08 -05:00
J. Nick Koston
084ff9d6e3
Restore the discovery/MTU overlap and latch streamer abort causes
...
The split serialized service discovery behind the MTU exchange: the
backend reported connected only at CFG_MTU_EVT and the wrapper started
discovery on that report, costing one ATT round trip per uncached
connection. The backend now pre-starts the search at OPEN_EVT (it knows
the connection type) and completes the consumer's discover_services()
from it: SEARCH_CMPL latches silently until requested, the flush after
the connected report delivers in the same event drain, and a refused
pre-start falls back to the serialized path. Net RAM cost is zero (the
flags pack into one bitfield byte plus a status byte, replacing the two
existing bools).
Also from review: SEARCH_CMPL no longer clobbers a teardown in progress
with ESTABLISHED, the five streamer abort sites latch pending_error_ so
HA sees the real Bluedroid status instead of a generic HCI reason, and a
completed re-discovery frees a materialized service table before the
counts its offsets derive from move.
2026-08-09 09:52:58 -05:00
J. Nick Koston
4a9e5f5da9
Require the proxy in the wrapper's compile gate
...
The hub wrapper serves the proxy's API surface, but its gate keyed on the
backend define alone while the backend guarded its own proxy pieces on
USE_BLUETOOTH_PROXY. Narrow BLUETOOTH_CONNECTION_HAS_GATT to require both
so a future backend-only consumer build agrees with the backend's guards.
No change to any build this PR can produce (only the proxy emits
USE_BLE_GATT_CLIENT here).
2026-08-09 09:44:23 -05:00
J. Nick Koston
f6158597ac
Address review: slot-cap testing mode, derived source filter, breadcrumbs
...
- Skip the hub-platform GATT slot cap in testing mode (mirrors
esp32_ble.validate_connection_slots) so grouped builds validate
- Derive the neutral engine's source filter from the backend registry so
a new platform cannot validate and then fail at link
- Log the real code on refused service discovery and cancelled connects;
read completions get the same breadcrumb writes have
- Comment accuracy: the dumper arm is the legacy shape, not a superset
- Ledger tests: real-validator end-to-end path and the testing-mode skip
2026-08-09 09:42:50 -05:00
J. Nick Koston
8924640593
Merge branch 'esp32-gatt-backend' into neutral-ble-client
...
# Conflicts:
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.h
# esphome/components/bluetooth_proxy/__init__.py
2026-08-09 09:37:59 -05:00
J. Nick Koston
26c000c417
Collapse shim-era indirection left by the merge of the two halves
...
- Fold the one-line event-handler forwarders, the state accessor renames,
and the report helper into direct calls; drop the dead forward
declaration and the tracker_client() accessor (the backend is the
tracker client)
- Hoist DEFAULT_ATT_MTU next to the other shared GATT constants and use
it in all three engines
- Emit BLUETOOTH_PROXY_MAX_CONNECTIONS once, in _connections_to_code
- Drop the unused esp_gatt_common_api.h include and DOMAIN constant
- Comment accuracy: stale shim/esp32-parity wording, registry roles,
request_gatt_client() caller
2026-08-09 09:36:17 -05:00
J. Nick Koston
7cb32f9546
Clean up iteration residue from the review rounds
...
- Drop unused includes (ble_client_state.h, <utility>) and the unused
notify/indicate property constants (no CCCD path yet)
- Note the frozen node-facing surface on the uncalled backend forwarders
- Keep the legacy-only 'name' key out of the neutral schema
- Move the slot-ledger test to tests/component_tests/bluetooth_connection
- Comment accuracy fixes (choke-point wording, wrapped lines, backoff note)
2026-08-09 09:31:21 -05:00
J. Nick Koston
13de0275c8
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 09:19:35 -05:00
J. Nick Koston
22af86a65b
Tighten new comments to repo style
2026-08-09 09:19:32 -05:00
J. Nick Koston
83b099d708
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 09:17:42 -05:00
J. Nick Koston
6957e2ef15
Type gattc_if_ at its real width instead of shrinking the timer
2026-08-09 09:17:38 -05:00
J. Nick Koston
743a10fa3e
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 09:04:35 -05:00
J. Nick Koston
f7b1e9ae65
Shrink the disconnect timestamp to a tick so the backend packs to 48 bytes
2026-08-09 09:04:31 -05:00
J. Nick Koston
53a5c7b051
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 09:00:25 -05:00
J. Nick Koston
54c50c07c5
Merge remote-tracking branch 'origin/dev' into esp32-gatt-backend
...
# Conflicts:
# esphome/components/bluetooth_proxy/bluetooth_proxy.cpp
# esphome/components/bluetooth_proxy/bluetooth_proxy.h
# esphome/core/defines.h
2026-08-09 08:59:12 -05:00
J. Nick Koston
64df0c1da1
The fixture comment follows the renamed predicate here
2026-08-09 08:56:18 -05:00
J. Nick Koston
9c31e08e95
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 08:55:53 -05:00
J. Nick Koston
93124f1f1f
Align two comments with the code they describe
2026-08-09 08:55:49 -05:00
J. Nick Koston
8abb5f102d
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 04:20:42 -05:00
J. Nick Koston
12fb1b0697
Name the MTU default and bound the descriptor walk sensibly
2026-08-09 04:20:39 -05:00
J. Nick Koston
81216da8e7
Apply review: honest slot docstring, cap-coverage pin, write breadcrumb
2026-08-09 04:02:45 -05:00
J. Nick Koston
ed2cdad9b4
Merge branch 'esp32-gatt-backend' into neutral-ble-client
2026-08-09 03:44:14 -05:00
J. Nick Koston
be818a5bf2
Apply review polish: bounded walk, real statuses, guarded settles
2026-08-09 03:44:10 -05:00
J. Nick Koston
444a217ee7
Apply review: honest teardown status and unresolved-write cause
2026-08-09 03:29:20 -05:00
J. Nick Koston
93f9d4a1ad
Apply review: state before fan-out, refusal breadcrumbs, write status log
2026-08-09 03:13:06 -05:00
J. Nick Koston
ac7d39a8c1
Merge branch 'esp32-gatt-backend' into neutral-ble-client
...
# Conflicts:
# esphome/components/bluetooth_connection/__init__.py
# esphome/components/bluetooth_connection/bluetooth_connection_rp2.h
# tests/component_tests/bluetooth_proxy/test_platform_gates.py
2026-08-09 03:09:32 -05:00
J. Nick Koston
612033062f
Apply combined review: wire MTU parity, abort teardown parity, closure ownership
2026-08-09 03:08:47 -05:00
J. Nick Koston
f9dbd24a2a
Apply review: settle refused teardowns, per-platform schema cache, ledger tests
2026-08-09 02:50:01 -05:00
J. Nick Koston
833a835e0f
Combine the flip into the backend PR and put the table define in the esp32 arm
2026-08-09 02:27:53 -05:00
J. Nick Koston
399dc26236
Follow the contract op rename
2026-08-09 02:17:36 -05:00
J. Nick Koston
0d9aea9594
Merge branch 'esp32-proxy-flip' into neutral-ble-client
2026-08-09 02:17:08 -05:00
J. Nick Koston
f2261d6632
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-09 02:16:17 -05:00
J. Nick Koston
d224a82e38
Fold the tracker shim into the backend and pass the MTU through
2026-08-09 02:16:14 -05:00
J. Nick Koston
ce436ff8b4
Apply review: refusal resolves waiters, cancel skips backoff, wrap-safe hold-off
2026-08-09 01:54:16 -05:00
J. Nick Koston
cbda1e71be
Merge branch 'esp32-proxy-flip' into neutral-ble-client
2026-08-09 01:53:48 -05:00
J. Nick Koston
ceabfeb6f4
Include the header that declares the bond removal
2026-08-09 01:52:39 -05:00
J. Nick Koston
5e11a886f1
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-09 01:51:59 -05:00
J. Nick Koston
e771b2522a
Terminate a released stream without services-done and keep the net armed
2026-08-09 01:51:42 -05:00
J. Nick Koston
ee96293c4c
Platform-split ble_client codegen and gate the raw-gattc node family
2026-08-09 01:45:34 -05:00
J. Nick Koston
fa18f5a0ad
Neutral ble_client engine on the GATT contract
2026-08-09 01:45:11 -05:00
J. Nick Koston
269d52ac2e
Revive backend-only builds, the slot ledger, and the table gate
2026-08-09 01:33:45 -05:00
J. Nick Koston
06a52f682f
Name the platform explicitly in schema builders for the dumper
2026-08-09 01:01:21 -05:00
J. Nick Koston
409ff027cc
Collapse the identical ignore branches
2026-08-09 00:59:16 -05:00
J. Nick Koston
3c7e5000a5
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-09 00:44:41 -05:00
J. Nick Koston
7af211ab54
Deliver completions through a GattClientListener interface
2026-08-09 00:44:35 -05:00
J. Nick Koston
cc81069d02
Keep the esp32 maintenance functions outside the gated surface
2026-08-09 00:28:54 -05:00
J. Nick Koston
ba567cecc3
Shared backend codegen registry and flip cleanups
2026-08-09 00:23:34 -05:00
J. Nick Koston
ee7fb83334
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
...
# Conflicts:
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.cpp
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.h
2026-08-09 00:20:09 -05:00
J. Nick Koston
9db31db24d
Multi-consumer sink, table materializer, and review fixes for the backend
2026-08-09 00:19:39 -05:00
J. Nick Koston
ceca66c01a
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 23:53:50 -05:00
J. Nick Koston
dc97c5a161
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 23:53:48 -05:00
J. Nick Koston
97bbcf55d9
Describe the ladder arm's real safety net in the test docstring
2026-08-08 23:53:45 -05:00
J. Nick Koston
d135ac97e5
Report teardown once at CLOSE_EVT and refuse connects on a busy slot
2026-08-08 23:27:04 -05:00
J. Nick Koston
296dd19361
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 23:21:58 -05:00
J. Nick Koston
138304cfbe
Fail discovery on count errors and free idle slots at once
2026-08-08 23:21:57 -05:00
J. Nick Koston
9fef1862be
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 23:09:18 -05:00
J. Nick Koston
80758f11aa
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 23:09:16 -05:00
J. Nick Koston
9d8362738f
Use the canonical board id and the sibling test conventions
2026-08-08 23:09:13 -05:00
J. Nick Koston
b2c22b5802
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 22:45:31 -05:00
J. Nick Koston
f62009ecc9
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 22:45:29 -05:00
J. Nick Koston
c09e3e0d45
Check the alias defines through real codegen
2026-08-08 22:42:56 -05:00
J. Nick Koston
cdd7bef74a
Check the alias defines through real codegen
2026-08-08 22:40:36 -05:00
J. Nick Koston
0e1321a813
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 22:38:31 -05:00
J. Nick Koston
022b612366
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 22:38:29 -05:00
J. Nick Koston
2dc9fbec5e
Pin the tracker alias three-place invariant
2026-08-08 22:38:26 -05:00
J. Nick Koston
9dafff6a61
Apply the simplify findings and fix the passive esp32 build
2026-08-08 22:32:36 -05:00
J. Nick Koston
3c7a1062c8
Flip the esp32 proxy onto the hub wrapper
2026-08-08 22:21:38 -05:00
J. Nick Koston
8164cdd018
Stream in place through a backend cut-through
2026-08-08 22:08:16 -05:00
J. Nick Koston
4ea491d46f
Bound the streaming peak to one batch window
2026-08-08 21:59:08 -05:00
J. Nick Koston
7fdb6cd2d5
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 21:41:25 -05:00
J. Nick Koston
2d50e07e90
Fold the push-hub surface into the concept
2026-08-08 21:41:23 -05:00
J. Nick Koston
78a451a1c0
Apply the simplify findings
2026-08-08 21:39:48 -05:00
J. Nick Koston
2483621500
Bluedroid backend for the GATT client contract
2026-08-08 21:31:09 -05:00
J. Nick Koston
4f086b6b25
Drive the push and poll halves off one define
2026-08-08 21:23:54 -05:00
J. Nick Koston
c4850a9320
Note the tracker-native calls in the esp32 arm
2026-08-08 21:03:19 -05:00
J. Nick Koston
91bcb14c09
Restore merged pairing dispatch and capability doc
2026-08-08 21:02:10 -05:00
J. Nick Koston
85e4a6cc33
Merge remote-tracking branch 'origin/dev' into esp32-hub-devirtualize
2026-08-08 21:00:53 -05:00
J. Nick Koston
149d7cd801
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
...
# Conflicts:
# esphome/components/bluetooth_proxy/bluetooth_proxy.h
# esphome/components/esp32_ble_tracker/esp32_ble_tracker.h
2026-08-08 19:14:28 -05:00
J. Nick Koston
ce2e113a6d
Update stale comments left by the listener removal
2026-08-08 19:13:11 -05:00
J. Nick Koston
ae5b6d271f
Retire the scanner-state listener interface
2026-08-08 19:13:11 -05:00
J. Nick Koston
e1572d7520
Drop the duplicated scanner-state define
2026-08-08 16:36:16 -05:00
J. Nick Koston
536afce394
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
...
# Conflicts:
# esphome/components/ble_device_base/ble_hub.h
# esphome/components/bluetooth_proxy/__init__.py
# esphome/components/bluetooth_proxy/bluetooth_proxy.cpp
# esphome/components/bluetooth_proxy/bluetooth_proxy.h
# esphome/components/esp32_ble_tracker/esp32_ble_tracker.h
2026-08-08 16:02:18 -05:00
J. Nick Koston
152b6a5d50
Update stale comments left by the listener removal
2026-08-08 15:59:54 -05:00
J. Nick Koston
f68ebcf7d1
Retire the scanner-state listener interface
2026-08-08 15:59:54 -05:00
J. Nick Koston
ca5fa6dfaf
Use the shared MAC validity helper
2026-08-08 15:59:53 -05:00
J. Nick Koston
962a82d157
Make the adapter MAC accessor const
2026-08-08 15:59:53 -05:00
J. Nick Koston
c6d4ca7377
Use one stack query for the adapter MAC
2026-08-08 15:59:53 -05:00
J. Nick Koston
465a6a3596
Let esp32_ble own the adapter MAC lookup
2026-08-08 15:59:53 -05:00
J. Nick Koston
03c9b001f4
Ask the stack for the adapter MAC on hosted controllers
2026-08-08 15:59:53 -05:00
J. Nick Koston
d680200e5a
Read the adapter MAC through esp_read_mac
2026-08-08 15:59:53 -05:00
J. Nick Koston
98dae49440
Remove redundant access specifier
2026-08-08 15:59:53 -05:00
J. Nick Koston
7ec366c1ba
Monotonic parse flag, client-scoped opt-out, drop dead include
2026-08-08 15:59:53 -05:00
J. Nick Koston
b1e1b0d7c5
Retire the raw listener path and parser-type enum from the tracker
2026-08-08 15:59:53 -05:00
J. Nick Koston
ec49eb12dd
Finish the docstring reflow
2026-08-08 11:28:16 -05:00
J. Nick Koston
949474efc6
Name the alias header in the module docstring
2026-08-08 10:55:27 -05:00
J. Nick Koston
708f095b6f
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 10:55:27 -05:00
J. Nick Koston
bf4af703b6
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 10:55:25 -05:00
J. Nick Koston
541616e19c
Use the shared MAC validity helper
2026-08-08 10:55:22 -05:00
J. Nick Koston
952c3e6584
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 09:52:26 -05:00
J. Nick Koston
2ea55bee7b
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 09:52:24 -05:00
J. Nick Koston
1931ef32ee
Merge branch 'esp32-proxy-hub-scanner-state' into esp32-tracker-parser-cleanup
2026-08-08 09:52:12 -05:00
J. Nick Koston
f2da6c1a56
Merge remote-tracking branch 'origin/dev' into esp32-proxy-hub-scanner-state
...
# Conflicts:
# esphome/components/bluetooth_proxy/__init__.py
# esphome/components/bluetooth_proxy/bluetooth_proxy.cpp
# esphome/components/bluetooth_proxy/bluetooth_proxy.h
# tests/component_tests/ble_device_base/test_slot_counter.py
2026-08-08 09:51:50 -05:00
J. Nick Koston
6e9e83bdfd
Include defines.h where its define is tested
2026-08-08 04:05:45 -05:00
J. Nick Koston
fe29a53b71
Require the push slot in the concept where it exists
2026-08-08 03:20:11 -05:00
J. Nick Koston
fa2dafcbca
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 02:43:49 -05:00
J. Nick Koston
dc18fced19
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 02:43:47 -05:00
J. Nick Koston
389d3629c2
Make the adapter MAC accessor const
2026-08-08 02:43:45 -05:00
J. Nick Koston
36a4d87611
Merge branch 'esp32-proxy-hub-scanner-state' into esp32-tracker-parser-cleanup
2026-08-08 02:43:21 -05:00
J. Nick Koston
65db614f22
Pin the scanner-state callback slot semantics
2026-08-08 02:43:09 -05:00
J. Nick Koston
591856e7dc
Constrain the contract's return types
2026-08-08 02:30:10 -05:00
J. Nick Koston
b680482092
Trim the surface doc to the semantics
2026-08-08 02:01:49 -05:00
J. Nick Koston
7fe447a4a2
Enforce the hub surface with a concept
2026-08-08 02:00:17 -05:00
J. Nick Koston
8fae4f6767
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 01:54:40 -05:00
J. Nick Koston
3d458bd9c8
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 01:54:38 -05:00
J. Nick Koston
fd7510d6e5
Use one stack query for the adapter MAC
2026-08-08 01:54:36 -05:00
J. Nick Koston
ffe55f7691
Trim the new comments to repo style
2026-08-08 01:52:40 -05:00
J. Nick Koston
40ac344bf2
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
...
# Conflicts:
# esphome/components/esp32_ble_tracker/esp32_ble_tracker.h
2026-08-08 01:51:20 -05:00
J. Nick Koston
667ffe98d9
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 01:50:51 -05:00
J. Nick Koston
270f776675
Let esp32_ble own the adapter MAC lookup
2026-08-08 01:50:49 -05:00
J. Nick Koston
965bbd4425
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 01:46:50 -05:00
J. Nick Koston
e485e5af90
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 01:46:48 -05:00
J. Nick Koston
c795d0734d
Ask the stack for the adapter MAC on hosted controllers
2026-08-08 01:46:45 -05:00
J. Nick Koston
0e77d47df4
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 01:38:39 -05:00
J. Nick Koston
47c2f8f31a
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 01:38:36 -05:00
J. Nick Koston
fe53d24e46
Read the adapter MAC through esp_read_mac
2026-08-08 01:38:33 -05:00
J. Nick Koston
daf988fde8
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 01:31:26 -05:00
J. Nick Koston
6604a9cca7
Update stale comments left by the listener removal
2026-08-08 01:31:22 -05:00
J. Nick Koston
ddd45e393b
Merge branch 'esp32-tracker-retire-scanner-listener' into esp32-hub-devirtualize
2026-08-08 01:26:09 -05:00
J. Nick Koston
0974e8a1f5
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 01:26:07 -05:00
J. Nick Koston
1478307280
Merge branch 'esp32-proxy-hub-scanner-state' into esp32-tracker-parser-cleanup
2026-08-08 01:26:06 -05:00
J. Nick Koston
fc77cdcb7d
Drop a leftover declaration and fix a stale test name
2026-08-08 01:26:03 -05:00
J. Nick Koston
fcb9da489e
Call the static capability query through the type
2026-08-08 01:22:53 -05:00
J. Nick Koston
ab458fffab
Bind BLEHub to the build's tracker at compile time
2026-08-08 01:18:21 -05:00
J. Nick Koston
c0c3afe6b1
Merge branch 'esp32-tracker-parser-cleanup' into esp32-tracker-retire-scanner-listener
2026-08-08 01:02:41 -05:00
J. Nick Koston
b092f64744
Remove redundant access specifier
2026-08-08 01:02:39 -05:00
J. Nick Koston
6b2938c1f7
Retire the scanner-state listener interface
2026-08-08 00:56:59 -05:00
J. Nick Koston
0e5d902c95
Monotonic parse flag, client-scoped opt-out, drop dead include
2026-08-08 00:53:31 -05:00
J. Nick Koston
11fc8e4c07
Merge branch 'esp32-proxy-hub-scanner-state' into esp32-tracker-parser-cleanup
2026-08-08 00:52:35 -05:00
J. Nick Koston
d9f0f40373
Simplify scanner state: aliased enum, define-gated slot, one guarded sender
2026-08-08 00:52:12 -05:00
J. Nick Koston
e671a602e9
Merge branch 'esp32-proxy-hub-scanner-state' into esp32-tracker-parser-cleanup
2026-08-08 00:41:34 -05:00
J. Nick Koston
7f44b9b826
Merge branch 'esp32-proxy-hub-advertisements' into esp32-proxy-hub-scanner-state
...
# Conflicts:
# esphome/components/bluetooth_proxy/bluetooth_proxy.cpp
2026-08-08 00:41:33 -05:00
J. Nick Koston
47804f8d08
Address review: one tracker pointer, portable format, doc fixes
2026-08-08 00:40:43 -05:00
J. Nick Koston
67cc43c8ef
Retire the raw listener path and parser-type enum from the tracker
2026-08-08 00:36:22 -05:00
J. Nick Koston
3e9808162b
Deliver scanner state through a hub push callback
2026-08-08 00:31:18 -05:00
J. Nick Koston
a6f81f3185
Carry the address as uint64 in RawAdvertisement and unify the proxy setup
2026-08-08 00:12:50 -05:00
J. Nick Koston
5296539849
Pin the removed listener slot
2026-08-08 00:01:43 -05:00
J. Nick Koston
de9074fb5e
Move the esp32 proxy advertisement path to the hub raw callback
2026-08-08 00:00:57 -05:00