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
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
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
Jesse Hills
e192ec8fee
Merge branch 'beta' into dev
2026-08-13 00:29:08 +12:00
Jesse Hills
ec6b4263a2
Merge pull request #18314 from esphome/bump-2026.8.0b1
...
2026.8.0b1
2026.8.0b1
2026-08-13 00:28:40 +12:00
Jesse Hills
8a1aa5753d
Bump version to 2026.9.0-dev
2026-08-12 22:53:42 +12:00
Jesse Hills
3e4661fe1e
Bump version to 2026.8.0b1
2026-08-12 22:53:42 +12:00
J. Nick Koston
22153be4cd
[core] Add esphome logs over web_server HTTP SSE ( #17110 )
2026-08-12 22:00:07 +12:00
3f490fe1ed
[internal_temperature] Read the RP2 on-die sensor directly instead of via the Arduino API ( #18262 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-08-12 21:42:05 +12:00
J. Nick Koston
58a42fe5c2
[core] Batch remote file downloads during config validation ( #18069 )
2026-08-12 18:44:35 +12:00
25c0c2c97b
[hoermann_hcp] Add garage light control ( #18190 )
...
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>
2026-08-12 06:10:23 +00:00
J. Nick Koston
622942482c
[rp2] Size the lwIP segment pool and heap for concurrent senders ( #18257 )
2026-08-12 17:30:17 +12:00
Keith Burzinski
cffd775450
[ethernet][network][wifi] Arbitrate the default route from the network priority list ( #17797 )
2026-08-12 16:21:37 +12:00
J. Nick Koston
8d87ba34d9
[api] Move the generic buffer-full log to very verbose ( #18300 )
2026-08-12 04:04:07 +00:00
J. Nick Koston
08c6585915
[esp32_ble_tracker] Don't log an error when a scan stop is already in flight ( #18306 )
2026-08-12 16:03:28 +12:00
J. Nick Koston
3ef74d17af
[bluetooth_proxy] Give partial advertisement batches 200ms to fill on Wi-Fi ( #18303 )
2026-08-12 16:02:51 +12:00
J. Nick Koston
5d04c1dc18
[esp32_ble_tracker] Demote scan-state echoes to verbose ( #18302 )
2026-08-12 16:01:45 +12:00
J. Nick Koston
a3d599ac69
[bluetooth_connection] Demote rp2 backend connection logs to verbose ( #18301 )
2026-08-12 16:00:37 +12:00
J. Nick Koston
a4e05cd1c8
[bluetooth_proxy] Move per-advertisement logging to very verbose ( #18299 )
2026-08-12 15:59:41 +12:00
J. Nick Koston
1758653330
[voice_assistant] Do not consume the audio chunk when the send is refused ( #18295 )
2026-08-12 15:59:26 +12:00
J. Nick Koston
a2feff8f68
[api] Mark send_message nodiscard so refused frames are never silent ( #18293 )
2026-08-11 22:23:08 -05:00
J. Nick Koston
37eae9b466
[api] Gate the bluetooth connection messages on their own define ( #18281 )
2026-08-11 21:31:13 -05:00
Jesse Hills
9605b34c69
[adc] Deprecate pin: TEMPERATURE in favour of internal_temperature ( #18304 )
2026-08-12 14:20:41 +12:00
Jesse Hills
bab62b345b
[adc] Fix internal temperature channel on RP2350A under arduino-pico ( #18307 )
2026-08-12 14:19:59 +12:00
Jesse Hills
3349046c5d
[rp2] Record the RP2350 die on generated board entries ( #18305 )
2026-08-12 01:56:05 +00:00
J. Nick Koston
3f5b8139f3
[bluetooth_proxy] Latch the connection replies and tighten the send paths ( #18278 )
2026-08-12 13:52:25 +12:00
Jonathan Swoboda and J. Nick Koston
be5e28ea9e
[core] Warn when running a different source tree than the one you are in ( #18288 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-08-11 21:06:57 -04:00
J. Nick Koston
9f28638ee7
[bluetooth_proxy] Reset every owed reply in one place ( #18276 )
2026-08-11 19:15:21 -05:00
J. Nick Koston
201f843e95
[bluetooth_proxy] Latch the unpair reply ( #18274 )
2026-08-11 18:57:51 -05:00
J. Nick Koston
37a59a07bc
[bluetooth_proxy] Retry dropped GATT acks and stop the retry log spam ( #18259 )
2026-08-11 18:40:47 -05:00
Boris Krivonog and J. Nick Koston
9556c2bc4c
[mitsubishi_cn105] Add vertical vane control action ( #16737 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-08-11 18:39:05 -05:00
Bonne Eggleston and Jonathan Swoboda
3540012529
[tests] Build tests from the tree they run in, not the venv's editable install ( #18248 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-08-11 19:09:51 -04:00
Kevin Ahrendt and J. Nick Koston
e0b112c584
[sendspin] Clear metadata and controller state on disconnect ( #18289 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-08-11 21:03:27 +00:00
Kevin Ahrendt
7f0d6a8696
[sendspin] Add image platform for artwork ( #17937 )
2026-08-11 15:49:08 -05:00
Kevin Ahrendt
4a7de87bff
[audio] Bump microDecoder to v0.4.0 ( #18291 )
2026-08-11 15:33:37 -05:00
esphome[bot]
b9d1d2f06b
Bump aioesphomeapi from 45.9.0 to 45.10.0 ( #18294 )
2026-08-11 20:02:53 +00:00
dependabot[bot]
74c30c62ef
Bump setuptools from 83.0.0 to 84.0.0 ( #18290 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-11 14:36:59 -05:00
J. Nick Koston
94fbfa05de
[core] Show the out-of-flash tip instead of crashing the build ( #18280 )
2026-08-11 14:35:06 -05:00
Boris Krivonog and J. Nick Koston
55bd63732d
[mitsubishi_cn105] Add vertical vane state trigger ( #16727 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-08-11 13:56:12 -05:00
J. Nick Koston
3ae651af7b
[core] Stop dropping complete lines behind an unfinished one ( #18279 )
2026-08-11 12:38:55 -05:00
esphome[bot]
55e8bc3b14
Bump aioesphomeapi from 45.8.0 to 45.9.0 ( #18283 )
2026-08-11 17:23:36 +00:00
J. Nick Koston
9938a2487d
[core] Show the last line when output stops without a newline ( #18265 )
2026-08-11 10:55:42 -05:00
J. Nick Koston
aee41d64c2
[rp2040_ble][bluetooth_connection] 3 connection slots on rp2 with esp32 parity ( #18247 )
2026-08-11 08:43:08 -05:00