Najlepszy serwer proxy Bluetooth - Bramka Blutooth LE GL.iNet GL-S10

Możesz zainstalować, ten fragment zaimportuje YAMLa z właściwego repo (podkreślę chodzi o sytuację na dziś, nie wiem co się będzie działo z projektem w przyszłości, póki co moje issue pozostaje bez odpowiedzi w głównej gałęzi, a co zrobi Blakadder to jego sprawa)

packages:
  esphome.bluetooth-proxy: github://blakadder/bluetooth-proxies/gl-s10.yaml@main

Czyli YAML do kompilacji zostanie zaciągnięty z brancha “main” z tego forka:
https://github.com/blakadder/bluetooth-proxies/blob/main/gl-s10.yaml
(zawsze można zajrzeć tam przed update i sprawdzić)

Jak widać kompilowałeś to na developerskiej wersji ESPHome (po co? lepiej by było na stabilnej, a może po prostu z brancha “dev”?) 4 listopada wieczorem (czyli nie jakoś szczególnie dawno), ale…

@blakadder poprawił YAMLa na swoim repo prawdopodobnie tuż po tym jak sobie uwaliłeś sprzęt (17 dni temu), w tej chwili kod stamtąd jest bezpieczny dla HW 1.x i “zabójczy” dla HW 2.x (czyli odwrotnie niż w głównej gałęzi projektu), wystarczy go przeczytać i zweryfikować czy jest platforma LAN8720 która jest stosowana w HW 1.x czy jakaś inna…

Możesz też sobie zrobić forka z forka i używać własnego zdalnego kodu, to zagwarantuje, że sam będziesz panował nad konfiguracją (i żadne cudze zmiany Cię nie zaskoczą) - zobacz jak można to zrobić (zedytowałem YAMLa tylko na tyle by wskazywał na moje repo):
https://github.com/nepozs/bluetooth-proxies/blob/main/gl-s10.yaml
(nie polecam podmieniać linka na tego mojego forka, bo nie wiem czy nie będę w nim kiedyś grzebał pod siebie? póki co po prostu mam własnego lokalnego YAMLa w tej instalacji gdzie sprzęt pracuje - tak jest najwygodniej).


Przy okazji - fragment, który jest ok dla HW 2.x ale UWAGA - rozwala urządzenia na HW 1.x wygląda tak:

packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/gl-s10.yaml@main

PS Podkreślę jeszcze, że ten fragment w czerwonej ramce nie ma nic wspólnego z wersją sprzętu, więc na tej podstawie nie sposób się zorientować jaką mamy wersję HW (bez otwierania obudowy)
false HW 2022-11-21_23-35

Bo za to odpowiada kawałek version: "1.0"
w tym bloczku YAMLa

esphome:
  name: ${name}
  name_add_mac_suffix: true
  project:
    name: esphome.bluetooth-proxy
    version: "1.0"
1 polubienie

Zainstalowałem i obecnie mam taką wersję:
Wersja

Tak jak poprzednio bramka wykrywa urządzenia na testowym HA na wirtualizatorze. Po usunięciu jej z tego środowiska i jego wyłączeniu a następnie dodaniu integracji do DEV3 (jest automatycznie wykrywana) nie wykrywa żadnych urządzeń i tak jak poprzednio pojawiają się błędy w logach (poniżej). Może ktoś kto ma DEV3 będzie w stanie pomóc ?

Logger: aioesphomeapi.reconnect_logic
Source: components/bluetooth/__init__.py:95
First occurred: 09:52:59 (1 occurrences)
Last logged: 09:52:59

Caught exception while reconnecting to gl-s10-bt-proxy-c2344c @ 192.168.0.40
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/aioesphomeapi/reconnect_logic.py", line 171, in _reconnect_loop
    await self._reconnect_once()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/aioesphomeapi/reconnect_logic.py", line 166, in _reconnect_once
    await self._try_connect()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/aioesphomeapi/reconnect_logic.py", line 151, in _try_connect
    await self._on_connect_cb()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/esphome/__init__.py", line 241, in on_connect
    await async_connect_scanner(hass, entry, cli, entry_data)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/esphome/bluetooth/__init__.py", line 55, in async_connect_scanner
    new_info_callback = async_get_advertisement_callback(hass)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/bluetooth/__init__.py", line 234, in async_get_advertisement_callback
    return _get_manager(hass).scanner_adv_received
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/bluetooth/__init__.py", line 95, in _get_manager
    return cast(BluetoothManager, hass.data[DATA_MANAGER])
KeyError: 'bluetooth_manager'
1 polubienie

witam jak wpisze bluetooth: w config: to nie ma błednych zapisów a jezeli wpisze z esp32 są.
Jaka może być przyczyna

Integration error: esp32_ble_tracker - Integration 'esp32_ble_tracker' not found.
Integration error: bluetooth_proxy - Integration 'bluetooth_proxy' not found.

@Medykkforek
Musisz pisać jaśniej, tj. wywalać “kawę na ławę” z opisem co konkretnie zrobiłeś, na technicznym forum nie ma miejsca na domysły.

W każdym razie w komunikacie błędu masz jasny przekaz: “nie ma takiej Integracji”.

Mam wrażenie, że mylisz YAMLa dla ESPHome z YAMLem w configuration.yaml w HA.

Zrobiłem tym sposobem ESPHome Bluetooth Proxies dodało mi to esphome do AIS czy coś jeszcze muszę zrobić?

Jeśli AIS ma współczesną obsługę Bluetooth (czyli masz AIS bazujące na HA>=2022.9.0), to nie musisz robić nic więcej (poza umieszczeniem zbudowanego proxy BLE w pobliżu urządzeń BLE).

Jeśli robiłeś swoje urządzenie EBP (ESPHome Bluetooth Proxies) przez wgranie prekompilowanego wsadu daaaaaawno, a nie masz IDE ESPHome, aby wykonać jego aktualizację, to możesz zrobić to ponownie (nie posiadając środowiska ESPHome nie ma innej drogi aktualizacji urządzeń). UWAGA - w przypadku AIS aktualizacja EBP może być niewłaściwą drogą, bo AIS ma nieco spóźnione wydania względem HA.

Może dodam taki ISTOTNE uzupełnienie - bramki proxy EBP jak sama nazwa wskazuje nie obrabiają w ogóle komunikacji BLE, tylko pakują dane RAW w pakiety i przesyłają je do obróbki przez integrację Bluetooth w HA.
EBP po zintegrowaniu jest urządzeniem bez encji (o ile sobie nie przygotujemy własnego kodu), ale tak ma być, bo nowa integracja Bluetooth w HA tak włąśnie działa - encje po zdekodowaniu pakietów BLE są tworzone w “podintegracjach” Bluetooth (np. BTHome czy czy Xiaomi BLE, oraz innych - “przyswajanie” integracji z projektu PBM - Passive Blueetooth Monitor które obsługiwane są w nim dzisiaj zakończy się prawdopodobnie koło marca/kwietnia 2023)

PS Jeśli Twój AIS bazuje na jakiejś starej wersji HA (<2022.8.0) to urządzenie nie będzie działać z braku obsługi (w tak starych HA core) zdalnych interfejsów Bluetooth (choć oczywiście się zintegruje jako urządzenie ESPHome).

PPS Jeśli wgrywałeś prekompilowany soft “dosłownie przed chwilą”, to być może powinieneś poczekać aż AIS będzie oparte na HA >=2022.12.0 (cierpliwość popłaca :stuck_out_tongue: ) ponieważ zmiany w ESPHome są dostosowywane do zmian w bieżących wydaniach HA i wzajemnie.

Najlepiej gdyby odpowiedział jakiś użytkownik AIS (bo ja używam tylko i wyłącznie “natywnych” HA).

1 polubienie

tak soft exp proxy wgrywałem przed chwilą.
czyli wpis Bluetooth: nie musze dodwac do configuration.yaml


na to wychodzi że wykrywa bez wpisu w configuration.yaml.
Ale mam problem z (https://github.com/custom-components/ble_monitor) ponieważ nie wykrywa mi bluetootha

Natomiast jest jedna istotna kwestia - PBM jest w konflikcie z systemową obsługą Bluetooth (przynajmniej jeśli chodzi o sprzęt “fizyczny” - dla równoległej pracy Integracji Bluetooth i komponentu niestandardowego PBM mam podpięte 2 osobne dongle.

Nie wiem jak system sobie razi z tego typu konflikatami w przypadku użycia proxy.

Generalnie PBM daje się skonfigurować do pracy bez lokalnego dongla (on nawet nie widzi tych udostępnionych jako sprzęt proxy), natomiast nie testowałem takiej konfiguracji (host bez dongli USB, bo na x86-64 czy nawet RPi mam wbudowane BT z obsługą BLE).

to ja tez mam 2 rozne płytki esp i próbowałem nawet odłaczac stara płytke esp32 i podpiac tylko esp32 proxy i bez rezultatu
AIS HA 2022.11.4

No i znowu bez konkretu.
Co to ma do rzeczy , że masz jakąś “starą płytkę ESP32”, gdzie jest konkret, jakie ma firmware, co w nim jest?
ESP32 to tylko “pusty” sprzęt, działające urządzenia z tego tworzy oprogramowanie w postaci jakiegoś firmware.

PBM nie widzi urządzeń proxy jeśli nie masz dongla na USB to możesz spróbować tak.

  1. uruchom PBM w trybie “bez dongla”


    ewentualnie tak (nie wiem jak, bo przecież nie testowałem, a dokumentacja PBM jest i tak chyba mocno przestarzała), skoro nie masz dongla USB, to nie będzie i MAC-adresu

  2. tu chciałem pisać żebyś wyłączył systemową integrację Bluetooth, ale jeśli nie masz dongla to jest niemal awykonalne.
    No w sumie można spróbować wyłączyć default_config i uruchomić wszystkie inne potrzebne systemowe integracje
    Default Config - Home Assistant

Ale ja wogole integracji ble nie mogę zainstalować tutaj jest wątek [Tekst sformatowany](https://github.com/custom-components/ble_monitor/issues/1062#issuecomment-1344332445)

Może zacznij używać normalnego HA, a nie upierać się na AIS.
Za pieniądze które wydałeś na nową bramkę po popsuciu starej miałbyś sprzęt na którym bezproblemowo zadziała niemodyfikowany HA.

Być może (prędzej lub później) w AIS się pojawi taka sama obsługa sprzętu jak w HA, ale weź pod uwagę, że rozwiązanie z Androidem “pod pokładem” jest mocno inne od pierwotnego HA.

1 polubienie

Szopen ale ty ma wpięte bluetooth do HA tak ?

Mam różne konfiguracje, więc sprawdziłem “organoleptycznie” i chyba kluczowa kwestia tutaj to fakt, że PBM nie współpracuje z EBP, więc

  1. używając EBP jesteś skazany na systemową integrację Bluetooth (o ile działa w AIS tak jak w HA).
    lub
  2. jeśli chcesz używać PBM to prawdopodobnie powinieneś przygotować firmware dla ESP32@ESPHome w/g tego projektu
    GitHub - myhomeiot/esphome-components: A collection of my ESPHome components
    a nie po prostu użyć EBP.
  3. Gdyby nie PW to nikt by nie wiedział, że chodzi o iNode.

Tak u mnie wygląda inode po skompilowaniu na esp32 brakuje paru rzeczy najważniejszych hehe

pt., 9 gru 2022, 22:56 użytkownik szopen z AI-Speaker <notifications@ai-speaker.discoursemail.com> napisał:

Chyba prościej będzie kupić bluetooth na USB jakiś

pt., 9 gru 2022, 23:10 użytkownik Michał <oomichalekoo@gmail.com> napisał:

1 polubienie

Po aktualizacji AIS DEV3 do 2022.12.3 mam nadal te same błędy :frowning: .

Logger: aioesphomeapi.reconnect_logic
Source: components/bluetooth/api.py:34
First occurred: 17:58:22 (1 occurrences)
Last logged: 17:58:22

Caught exception while reconnecting to gl-s10-bt-proxy-c2344c @ 192.168.0.40
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/aioesphomeapi/reconnect_logic.py", line 171, in _reconnect_loop
    await self._reconnect_once()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/aioesphomeapi/reconnect_logic.py", line 166, in _reconnect_once
    await self._try_connect()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/aioesphomeapi/reconnect_logic.py", line 151, in _try_connect
    await self._on_connect_cb()
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/esphome/__init__.py", line 275, in on_connect
    await async_connect_scanner(hass, entry, cli, entry_data)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/esphome/bluetooth/__init__.py", line 55, in async_connect_scanner
    new_info_callback = async_get_advertisement_callback(hass)
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/bluetooth/api.py", line 186, in async_get_advertisement_callback
    return _get_manager(hass).scanner_adv_received
  File "/data/data/com.termux/files/usr/lib/python3.10/site-packages/homeassistant/components/bluetooth/api.py", line 34, in _get_manager
    return cast(BluetoothManager, hass.data[DATA_MANAGER])
KeyError: 'bluetooth_manager'

Przetestowałem też na bramce DEV BT. Wykonałem pełny reset aplikacji z aktualizacją do wersji 2022.12.03 (Termux). Dodałem integrację ESPHome i do niej bramkę GL-S10. Niestety bramka tak jak przy DEV3 nie wykrywa żadnych urządzeń bluetooth.

1 polubienie

@CichY
Niezmodyfikowany HA współpracuje z EBP (ESPHome Bluetooth Proxies) mniej więcej od września.
Nie jesteś pierwszym użytkownikime AIS z podobnymi problemami, jakkolwiek istnieje obejście problemu (przynajmniej częściowe) by wykorzystać GL.iNet GL-S10 (i soft na bazie ESPHome, ale inny niż oficjalne proxy EBP, a bazujący na repo myhomeiot) wraz z komponentem niestandardowym Passive Bluetooth Monitor


Tak poza wszystkim - wracam do tematu EBP - i tak nas czeka otwieranie obudowy, bo…

Grudniowa wersja ESPHome (zalecam wersję z poprawkami 2022.12.3) wprowadza pewne optymalizacje w EBP, nowe firmware należy wgrać przez UART (ze względu na zmianę układu partycji, zwykła aktualizacja przez OTA nie wprowadzi tych poprawek!).

1 polubienie

Czy wiesz jak była oznaczona baza danych w HA ? .db czy z tym rozrzeszeniem ?

pon., 19 gru 2022, 18:37 użytkownik szopen z AI-Speaker <notifications@ai-speaker.discoursemail.com> napisał: