Czy jest coś niezrozumiałego wyżej? MAM EBP
Podejrzewałem, że też masz
bo właśnie za pomocą EBP mam w HA zintegrowane też Xiaomi BLE
i BTHome
nie ma potrzeby korzystania z integracji na poziomie ESPHome
więc to
też nie jest już konieczne, zamiast tego w EBP wysyła się surowe telegramy BLE hurtem do HA w celu ich dekodowania w HA (EBP to znacznie bardziej efektywne rozwiązanie jeśli nie budujesz sobie lokalnych wyświetlaczy na bazie ESPHome, bo tylko wtedy ma sens lokalne przetwarzanie telegramów w ESP, no nie tylko, ale potencjalne scenariusze gdzie to jest koniecznością są wybitnie niestandardowe).
Wręcz można pozostawić powyższą integrację w ESPHome i dokompilować sobie tylko obsługę EBP (chociaż nie wiem jak będzie z wydajnością, ale z tego się nie strzela - nawet jeśli stracisz część telegramów to przy tak częstym raportowaniu jakie jest w BLE krzywda pomiarom się raczej nie stanie)
Przykładowy YAML dla typowej zwykłej płytki ESP32 bez kablowego Ethernetu (zwykłej = bez żadnych przyrostków w nazwie, czyli NIE S3, NIE C3, NIE C6)
substitutions:
name: esp32-bluetooth-proxy
friendly_name: Bluetooth Proxy
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
# linijka poniżej dla kompilacji na kiepskim sprzęcie z 2 GB RAM
# jeśli macie cokolwiek lepszego można wywalić
compile_process_limit: 2
esp32:
board: esp32dev
framework:
type: esp-idf
# uwaga jeśli wcześniej był na tej samej płytce framework arduino
# to KONIECZNIE trzeba wgrać to firmware po kabelku, a nie przez OTA!
api:
encryption:
key: YZ09JZ4tKTsU3XYCFIcZnS1zpWn3D6swV2+KWcu/ART=
# powyższy klucz jest tylko przykładowy, użyj własny, można i bez klucza
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "${name}-AP"
password: "12345678"
logger:
ota:
platform: esphome
improv_serial:
esp32_ble_tracker:
scan_parameters:
# We currently use the defaults to ensure Bluetooth
# can co-exist with WiFi In the future we may be able to
# enable the built-in coexistence logic in ESP-IDF
# active: true
active: false
# moje słowo komentarza
# dla większości zastosowań wystarcza tryb pasywny. czyli active: false
# dotyczy to zarówno proxy niżej jak i trackera wyżej
# ale są zastosowania gdy konieczny jest tryb aktywny
bluetooth_proxy:
# active: true
active: false
button:
- platform: safe_mode
name: Safe Mode Boot
entity_category: diagnostic
# ten przycisk się przydaje w wypadku problemów z OTA jeśli jest za duży ruch BLE
# problem wyżej chyba już dawno naprawiono, ale i tak warto mieć tryb awaryjny
sensor:
- platform: internal_temperature
name: "${friendly_name} Internal Temperature"
accuracy_decimals: 1
entity_category: diagnostic
- platform: uptime
name: "${friendly_name} Uptime"
entity_category: diagnostic
filters:
- lambda: return x / 3600;
unit_of_measurement: "h"
- platform: wifi_signal
name: "${friendly_name} sygnał WiFi"
update_interval: 60s
entity_category: diagnostic
text_sensor:
- platform: wifi_info
ip_address:
name: "${friendly_name} Adres IP"
dns_address:
name: "${friendly_name} Adres DNS"
ssid:
name: "${friendly_name} SSID"
bssid:
name: "${friendly_name} BSSID"
mac_address:
name: "${friendly_name} WiFi MAC-adres"
scan_results:
name: "${friendly_name} ostatni skan"
Wsparcie dla BLE w HA jest obecnie (i to od dość dawna) na wystarczającym poziomie, by wykorzystywać je z lokalnym donglem USB BT/BLE i/lub z EBP, oraz nie ma potrzeby używania starych rozwiązań (które kiedyś były koniecznością, a dziś są niemal fanaberią hardkorów ;D ) takich jak PBM, czy integracje wbudowane w ESPHome…
(O PBM sam kiedyś naskrobałem jakiś minitutorialik, co gorsza nie potrafię go dziś znaleźć, ale to było w 2019 albo 2020 roku, no i wtedy w HA nie było w ogóle natywnej obsługi BLE.)
fragment dokumentacji PBM, pogrubienie moje, bo wyraźnie wskazuje by używać oficjalnej integracji, a nie PBM
The following integrations are available as official Home Assistant integration.
BlueMaestro
b-parasite (will be using BTHome with new firmware)
BTHome
Govee
HHCC
iBeacon
Inkbird
Kegtron
Moat
Oral-B
Qingping
RuuviTag
SensorPush
Sensirion (MyCO2 gadget)
Thermobeacon
Thermopro / Sensorpro
Thermobeacon (Thermoplus, Brifit, Oria)
Tilt
Xiaomi (part 1 and 2)
Device tracking based on MAC address (Bluetooth LE tracker integration)