J. Nick Koston and GitHub
671b6216a7
Merge branch 'dev' into neutral-ble-client
2026-08-10 14:30:42 -05:00
J. Nick Koston and GitHub
4cf7ad9c63
[ble_device_base] Treat a partially bound merger as unbound ( #18235 )
2026-08-10 13:02:27 -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 and GitHub
f3d1fc0d64
[bluetooth_proxy] Migrate esp32 onto the neutral GATT backend ( #18198 )
2026-08-10 10:47:56 -05:00
J. Nick Koston and GitHub
c8c929d487
[ble_device_base] Merge adv and scan response before delivery on rp2 ( #18217 )
2026-08-10 10:06:06 -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
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
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 and GitHub
e9f428983e
[ble_device_base] Bind BLEHub to the build's tracker at compile time ( #18181 )
2026-08-09 08:57:31 -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
d224a82e38
Fold the tracker shim into the backend and pass the MTU through
2026-08-09 02:16:14 -05:00
J. Nick Koston
7af211ab54
Deliver completions through a GattClientListener interface
2026-08-09 00:44:35 -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
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
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 and GitHub
8c74e3d5ef
[bluetooth_proxy] Deliver scanner state through the hub callback ( #18175 )
2026-08-08 15:59:49 -05:00
J. Nick Koston and GitHub
04384e0f5b
[ble_device_base] Bind the GATT backend at compile time ( #18185 )
2026-08-08 15:59:32 -05:00
J. Nick Koston and GitHub
7218aa4803
[bluetooth_connection] Explicit pairing for rp2 ( #18166 )
2026-08-08 09:51:12 -05:00
J. Nick Koston and GitHub
9cb46aa584
[bluetooth_proxy] Deliver esp32 advertisements through the hub callback ( #18173 )
2026-08-08 09:50:32 -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
65db614f22
Pin the scanner-state callback slot semantics
2026-08-08 02:43:09 -05:00
J. Nick Koston
7fe447a4a2
Enforce the hub surface with a concept
2026-08-08 02:00:17 -05:00
J. Nick Koston
ffe55f7691
Trim the new comments to repo style
2026-08-08 01:52:40 -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
47804f8d08
Address review: one tracker pointer, portable format, doc fixes
2026-08-08 00:40:43 -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
Edvard Filistovič and GitHub
1d184b43eb
[ble_device_base] Migrate BLE sensor platforms to the neutral layer (batch 6: thermopro_ble, exposure_notifications, xiaomi_ble) ( #18168 )
2026-08-07 20:47:52 -05:00
J. Nick Koston and GitHub
634515ecc5
[ble_device_base] Add platform-neutral GATT client contract ( #18128 )
2026-08-06 21:45:57 -05:00
3221ed2bad
[ble_device_base] Hub provider registry and shared consumer helpers ( #18081 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-08-06 12:13:30 -05:00
J. Nick Koston and GitHub
26256d3d2e
[ble_device_base] [ble_client] Restore unset UUID state so notify sensors set up again ( #18098 )
2026-08-05 22:21:24 +00:00
J. Nick Koston and GitHub
202b31f711
[ble_device_base] Deprecate address_str in favor of address_str_to ( #18092 )
2026-08-05 18:33:32 +00:00
Edvard Filistovič and GitHub
0a99b007a9
[ble_device_base] Advertise runtime scan-mode switching in HubCapabilities ( #18079 )
2026-08-05 01:56:32 +00:00
Edvard Filistovič and GitHub
914cab301f
[rp2_ble_tracker] Extract stamp-and-start helper; pin capability/switch independence ( #18072 )
2026-08-04 18:20:57 +00:00
Edvard Filistovič and GitHub
c6a37847e6
[ble_device_base] Scan-mode request contract on BLEHub ( #18061 )
2026-08-04 15:18:31 +00:00
Edvard Filistovič and GitHub
95786459c1
[ble_device_base] Replace raw-advertisement std::function with a lightweight callback slot ( #17902 )
2026-07-28 09:54:58 +00:00
Edvard Filistovič and GitHub
10303b3fa7
[ble_device_base] Add mac_lsb_first_to_uint64 address-packing helper ( #17901 )
2026-07-27 21:17:40 -10:00
Edvard Filistovič and GitHub
4d3b4659d7
[ble_device_base] Platform-neutral BLE layer; esp32_ble_tracker implements BLEHub ( #17150 )
2026-07-21 12:32:14 -10:00