mirror of
https://github.com/esphome/esphome.git
synced 2026-10-06 10:56:43 +00:00
[esp32_ble] Reference count BLE advertising
Advertising was started when the BLE server came up and never stopped, so a device that auto-loads esp32_ble_server for esp32_improv advertised over BLE forever - even with WiFi connected and Improv never started. Components now request advertising with advertising_start() and release it with advertising_stop(); the radio only advertises while at least one request is held. The BLE server only requests it when the configuration defines services or manufacturer data of its own, Improv holds a request for as long as provisioning is possible, and a beacon holds one permanently. Fixes https://github.com/esphome/esphome/issues/18938
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
esphome:
|
||||
name: test
|
||||
|
||||
esp32:
|
||||
variant: esp32
|
||||
|
||||
wifi:
|
||||
ssid: MySSID
|
||||
password: password1
|
||||
|
||||
# esp32_ble_server is only auto-loaded here, so it has no services of its own.
|
||||
esp32_improv:
|
||||
authorizer: none
|
||||
@@ -0,0 +1,9 @@
|
||||
esphome:
|
||||
name: test
|
||||
|
||||
esp32:
|
||||
variant: esp32
|
||||
|
||||
esp32_ble_server:
|
||||
id: ble_server
|
||||
manufacturer_data: [0x72, 0x04, 0x00, 0x23]
|
||||
@@ -0,0 +1,14 @@
|
||||
esphome:
|
||||
name: test
|
||||
|
||||
esp32:
|
||||
variant: esp32
|
||||
|
||||
esp32_ble_server:
|
||||
id: ble_server
|
||||
services:
|
||||
- uuid: 2a24b789-7aab-4535-af3e-ee76a35cc12d
|
||||
characteristics:
|
||||
- uuid: cad48e28-7fbe-41cf-bae9-d77a6c233423
|
||||
read: true
|
||||
value: [1, 2, 3, 4]
|
||||
Reference in New Issue
Block a user