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

Bramka Blutooth LE GL.iNet to wszystko, czego potrzebujesz do niezawodnego proxy Bluetooth w Home Assistant.

Home Assistant wprowadził nową funkcję w 2022.9 - proxy Bluetooth. Dzięki temu możemy zamienić dowolne urządzenie ESP32 w zdalny odbiornik Bluetooth i zintegrować z Home Assistant. Chociaż każda płytka rozwojowa ESP32 jest w stanie wykonać tą pracę, zaleca się użycie płyty z Ethernetem, aby bezprzewodowe radio ESP32 było przeznaczone tylko do odbioru BLE.

Firma GL-iNet, powszechnie znana jako producent routerów, wyprodukowała również, urządzenie GL-S10 które jest gotową „bramką Bluetooth IoT”.

GL-S10 to idealne małe urządzenie w obudowie 57x57x25mm (nie licząc anteny). Działa na ESP32 z 4 MB flash i 8 MB PSRAM oraz posiada Ethernet z PoE i zewnętrzną antenę dla lepszego zasięgu BLE.

Urządzenie kosztuje tylko 30 USD (z przesyłką i VATem wychodzi ponad 200 zł) i jest dostępne w sklepie producenta:

Programowanie

Nie ma śrub ani kleju uniemożliwiających otwarcie obudowy. Małe wycięcie na tylnej płycie, pozwala w łatwy sposób dostać się do wnętrza urządzenia:

piny TX, RX i GND wymagane do flashowania są zaznaczone na rysunku poniżej:

podłączamy przewody tak jak zostało to pokazane na rysunku

Przytrzymaj przycisk obok portu USB podczas podłączania zasilania, aby przełączyć urządzenie w tryb flash.

Zainstaluj oprogramowanie za pomocą oficjalnego instalatora internetowego.

Wybierz GL-S10 i kliknij „CONNECT”:

wybierz port do którego podłączony jest USB serial adapter

Gdy instalator połączy się z GL-S10, kliknij „INSTALL GL.INET GL-S10” i potwierdź instalację:

image

image

Poczekaj, aż urządzenie zostanie wykasowane, a następnie zostanie zainstalowany proxy Bluetooth, a na końcu zostanie wyświetlony komunikat o zakończeniu instalacji.

image

image

image

Kliknięcie „NEXT” powoduje powrót do początkowego okna dialogowego. Teraz nadszedł czas, aby podłączyć kabel Ethernet.

:warning: Jeśli korzystasz z PoE Ethernet, NIE podłączaj jednocześnie USB i Ethernet bo uszkodzisz urządzenie. Jeśli nie korzystasz z PoE, odłącz kabel zasilający USB i podłącz go ponownie.

Bramka GL-S10 uruchomi się teraz w trybie pracy (a nie programowania jak poprzednio).

image

Kliknij „LOGS & CONSOLE”, aby sprawdzić, czy proxy Bluetooth uruchamia się prawidłowo. Powinno to wyglądać mniej więcej tak:

Integracja z AIS/Home Assistant

W tym czasie Twój Home Assistant wykryje nowe urządzenie i wszystko, co musisz zrobić, to potwierdzić konfigurację i (opcjonalnie) przypisać ją do obszaru:

Urządzenie GL-S10 będzie miało tylko czujnik przycisku używany do przycisku na obudowie oznaczonego „Reset”.

Obsługiwane urządzenia BLE powinny powoli zostawać wykryte, a Home Assistant powiadomi Cię o nich. Skonfigurujesz te urządzenia za pomocą ich własnych integracji.

Kup GL-S10 Teraz! :slight_smile:

Wprowadzamy do sprzedaży bramkę Blutooth LE GL-S10 już zaprogramowaną i gotową do dołączenia do AIS/Home Assistant. Dla tych co nie chcą się bawić w import i programowanie a chcą obsługiwać urządzenia Bluetooth LE

stock_image

@Celina wystaw tą bramkę na Allegro, cena 199 zł

PS
Wpis powstał na podstawie tego opisu:

3 polubienia

Gdzie można u was kupić tę bramkę

Dzisiaj do wieczora aukcja na Allegro będzie już aktywna, dam znać i zostawię tu link :slight_smile:

Czy mógłby ktoś opisać przykłady praktycznego wykorzystania możliwości tej bramki w kontekście użytkownika AIS Dev3?

Jeśli masz urządzenie Blutooth, które można zintegrować z asystentem domowym, to taka bramka temu służy. Ja mam np czujnik MiFlora, popularne są termometry, higrometry, TAGi itp itd.

Rozwiązanie jest o tyle fajne, że tworzy w HA encje samo poprzez auto discovery.

obraz

Dopytam więc, czyli jak mam kilka ESP32 z oprogramowaniem Tasmota, z podpiętymi czujnikami temperatury np. DS18B20 to dzięki wspomnianej bramce powstaną w HA automatycznie encje z odczytami wartości tych i innych podłączonych czujników?

Nie, bramka komunikuje się z urządzeniami po Bluetooth, nie komunikuje się z ESP32 po Bluetooth.

Hej! :slight_smile:
Dla zainteresowanych podaję link do aukcji

https://allegro.pl/oferta/bramka-iot-ble-proxy-bluetooth-w-home-assistant-12793548746

Hej, jest gdzieś baza urządzeń które już działają natywnie, lub bedą za jakiś czas? Mam trochę szpeju od Plejd na BT :slight_smile:

1 polubienie

Co do bazy obecnie obsługiwanych to musisz pokopać w tej

a tam m.in.

więc przypuszczalnie sobie nie poużywasz (no chyba, że ten Plejd, to rebrand tu wspomnianej chińszczyzny)


“beta-wersją” tego co się pojawia w HA natywnie jest taka integracja dostępna w HACS (ale ona skupia się na pasywnym nasłuchu, więc w zasadzie tylko sensory, a nie urządzenia wykonawcze)

2 polubienia

Fajnie by było zamieścić w opisie oferty jaki tam jest zamontowany chip Ethernet - IP101 czy LAN8720, bo dla LAN8720 aktualizacja OTA “załatwi” bramkę.

Obecnie publikowany kod jest dedykowany dla IP101

O ile sam nie jestem bezradny w takich sytuacjach, to sprzęt może trafić w ręce kogoś kto nie da rady - kliknie UPDATE po najbliższej aktualizacji ESPHome i pozmiatane (sprawdziłem z ciekawości, więc to “z życia wzięte” dostarczony sprzęt miał starszą wersję fw niż aktualne ESPHome).

Teraz etap rozbiórki (ale po zachowaniu - czyli tym, że to już “trup”, wiem że mój egzemplarz zawiera LAN8720)


A na urządzeniu (jakaś nalepka) nie ma informacji jaki to hardware revision bramki?

Hehe no nie ma żadnego sensownego opisu, może bym rozpoznał gdybym miał też nową wersję, bo może się czymś różnią?
Ale przeciętny klient nie kupuje wszystkich wersji świata by je porównywać, więc jakieś minimum konkretów powinno być dostarczane na etapie sprzedaży.

Fotka dekielka (po usunięciu części MAC-adressu i seriala, oraz QR gdzie oba są zakodowane)

edit: Po sprawdzeniu, że działa świetnie z zasilaniem PoE (oczywiście po zmianie konfigu dla LAN8720 i ustawieniu tak, by nie korzystać już ze zdalnego repo, no i rekompilacji firmware) zmieniłem soft na taki z obsługą… WiFi bo miejsce gdzie chciałbym wykorzystać ten sprzęt nie ma podciągniętej skrętki :stuck_out_tongue: (jakkolwiek trochę szkoda, że nie będę miał okazji sprawdzić czy wyłączenie WiFi poprawia osiągi BT).

Miło, że były już wlutowane goldpiny UARTu (widoczne na zdjęciu w poprzednim poście), więc nie musiałem kombinować z podpinaniem do flashowania (choć partyzanckimi metodami zdarzało mi się działać w podobnych okolicznościach) informacja o nich (lub ich braku) również może być interesująca dla potencjalnego nabywcy.

1 polubienie

Na płytce drukowanej jest numer wersji (1.x lub wyższa).
Na stronie The Best Home Assistant Bluetooth Proxy: GL.iNet GL-S10 | Blakadder's Smarthome Shenanigans jest taka informacja:
" Install using the official web installer. Select the GL-S10 and click “CONNECT” . If you have the v1.x hardware revision use the forked installer instead."
U mnie zanim ta bramka wykryła automatycznie urządzenia bluetooth musiałem je na najpierw usunąć z obecnych integracji.

1 polubienie

Na PCB jest wersja, swoją drogą ją doskonale widać na zdjęciu które zrobiłem po rozebraniu sprzętu, by go przeflaszować po uwaleniu aktualizacją.

Ale nie tu jest problem, problemem jest brak istotnych informacji w opisie oferty, do której linkuje @Celina.

Zdecydowałem się kupić tutaj, bo jestem leniem, właśnie by nie grzebać w środku, (ale nie mam 2 lewych rąk i sobie ogarnąłem temat), natomiast typowym targetem dla preflashowanego sprzętu jest klient, który nie ma możliwości technicznych ogarnięcia tego tematu, albo po prostu umiejętności?

Mimo, że osobiście jestem jednym z fanów rozwiązań oferowanych przez ESPHome to nie wiedziałem, że obecnie kwestia akurat tego sprzętu wygląda jak wygląda (ba nawet nie miałem świadomości istnienia innych wersji niż 1.0 - na repo zaglądałem ostatnio raczej przed zmianami pod obecną wersję HW, bo byłem dość wcześnie zajarany tym projektem, ale właśnie “cycki mi opadły”).

Swoją drogą zgłosiłem issue, bo rozwiązanie w takiej postaci stało się sprzeczne z ideą prekompilowanego ESPHome i projektów które używają tego rozwiązania.

Ale właśnie uświadomiłeś mi, że

  1. @ballob leje na użytkowników… (co za zakichane podejście - kupujesz sprzęt 1.0 = jesteś wykluczony z grona normalnych użytkowników ESPHome Bluetooth Proxies, może ta bramka jest po prostu beta-wersją i jako taka nie powinna być sprzedawana wcale?)
  2. Natomiast sprzęt nie powinien być sprzedawany z tym firmware w takiej postaci… (skoro uwala go aktualizacja z GUI po adopcji do dashboardu, może przypomnę, że nie jest importowany kompletny YAML, tylko kawałek nagłówka, więc nie można sobie bez głębszego śledztwa po prostu podejrzeć co mamy w kodzie).

Może to jest świetna informacja dla AIS, że wystarczy użyć firmware z forka

by aktualizacja w ESPHome nie rozwalała sprzętu, bo z tego co widzę ta wersja nie powinna uceglać bramki aktualizacją (mi się to już nie przyda, ale prawdopodobnie preflashowanie tą wersją ma większy sens niż oficjalnym wydaniem, w sprawnych bramkach można przecież podmienić firmware przez OTA bez kolejnej rozbiórki).


Kroki potrzebne do zreplikowania problemu tj. softowego uwalenia bramki, co uzyskałem dosłownie w minutę po wyjęciu z pudełka (widziałem, że @Celina zaczyna odpowiadać, ale nie widzę posta).

  1. Wyjęcie z pudełka, podłączenie zasilania w dowolny sposób, Adopcja bramki do HA w standardowy sposób.
  2. Update firmware z dashboardu ESPHome

Dodatkowe zależności - aktualny produkcyjny ESPHome albo dowolny w wersji nowszej niż został użyty podczas flashowania w AIS.

1 polubienie

Hej!
Widzę, że miałeś intensywny weekend :wink:

Jeśli chodzi o to

to pierwszy wpis w tym wątku ma link do strony producenta i tam można znaleźć całą dokumentację łącznie ze zdjęciem płyty

https://docs.gl-inet.com/en/3/specification/gl-s10/

która niestety nie daje nam tu żadnego wyboru jeśli chodzi o podzespoły… Sprowadziliśmy sprzęt bezpośrednio od producenta, na podstawie katalogu produktów dostępnych na jego stronie i sprzedajemy dokładnie to, co tam pokazuje…

Ale chyba dla Was żadnym problemem nie jest

  1. Rozszerzenie opisu technicznego o informacje które znacie, bo jak rozumiem oglądacie wnętrze bramek , gdyż zmiana firmware z fabrycznego na bazujące na projekcie ESPHome Bluetooth Proxies następuje w firmie Sviete/AIS, a nie w GL.iNet (więc przynajmniej Wasz dział techniczny wie co ma w rękach)
  2. Użycie firmware w takiej wersji by jego aktualizacja nie uceglała sprzętu.

Nam użytkownikom Waszych wypustów nie potrzeba waszego dobrego PR, tylko bramek BLE, których nie będzie psuła aktualizacja natychmiast po uruchomieniu.

Wam może ten dobry PR jest potrzebny, ale z pewnością nie uzyskacie go lejąc wodę o tym co Wam wcisnął producent sprzętu, wystarczy przeczytać posta na którego poświęciłem sporo czasu i dostosować produkt do obecnych realiów (mam nadzieję, że nie macie jakiejś “kosy” z autorami softu, bo ja naprawdę poczułem się jak użytkownik 2 kategorii po publikacji issue w ESPHome Bluetooth Proxies).

PS Moim zdaniem zmiana softu (w całej partii) na taki obecnie nie uceglający sprzętu zajmie działowi technicznemu mniej czasu niż przy pierwszym flashowaniu (bo piny są już wlutowane, a przy odrobinie chęci można to zrobić też przez OTA), w ofercie na Allegro jest obecnie 1 sztuka, więc chyba to nie potrwa zbyt długo.
Zmiana opisu oferty dodająca 2 zdania o wlutowanych pinach i użytym w danej partii chipie Ethernet chyba też nie jest wyzwaniem większym niż napisanie posta na forum…

PPS W przesyłce nie znalazłem paragonu fiskalnego… Nie zdecydowałem się na reklamację z tego powodu, nie reklamowałem też uwalonej bramki redukując Wasze koszty. Doceńcie to.

7 polubień

W jaki sposób można sprawdzić czy jest dostępna nowa wersja oprogramowania dla bramki w wersji sprzętowej 1.x i w jaki sposób można ją zaktualizować bez jej fizycznego otwierania (najchętniej z poziomu GUI bramki DEV AI Speaker) ?

Wcześniej pisałem

ale było to na moim środowisku testowym na wirtualce. Natomiast bramka DEV3 (2022.11.2) wykryła urządzenie GL.iNet GL-S10 (wersja sprzętowa 1.3 - oprogramowanie wgrane z TEJ strony) ale po dodaniu jej do integracji nie wykrywa mi żadnych urządzeń bluetooth, które są obecnie dostępne. Te urządzenia były wcześniej w innych moich integracjach ale je usnąłem. W jaki sposób zmusić GL.iNet GL-S10 do wykrycia dostępnych urządzeń bluetooth i jak sprawdzić dlaczego ich nie wykrywa ?

Bramka bluetooth 1

Przed dodaniem bramki do DEV3 usunąłem ją z integracji na testowym HA. Zauważyłem że przy jej dodawaniu do DEV3 pojawia się poniższy błąd w logu po czym bramka pojawia się w integracjach.

Szczegóły loga (BŁĘDY)
Logger: aioesphomeapi.reconnect_logic
Source: components/bluetooth/__init__.py:95
First occurred: 13:46:46 (2 occurrences)
Last logged: 14:03:44

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'

Bramka ESPHome Bluetooth Proxies (w skrócie EBP) niezależnie od sprzętu na jakim jest zainstalowana nie dekoduje, ani nie obrabia w żaden sposób pakietów Bluetooth, ona je po prostu odsyła “jakie są” (czyli jako dane surowe - RAW) do obróbki przez HA, a tym samym z punktu widzenia użytkownika zachowuje się jak zwykły dongle BT (z obsługą BLE), tyle, że podpięty do HA po sieci, a nie po USB.

W dużym uproszczeniu wygląda to tak:

Czujnik BLE ~/~/~(protokół BLE)~/~/~> bramka BLE =+=(dane RAW)=+=> HA (tu następuje “odkopanie” protokołu BLE z danych RAW dekodowanie i dalsza obróbka)

~/~/~ to warstwa transportowa, którą jest eter (połączenie BT BLE “przez powietrze”, aby było ściślej to nie musi być w pełnym sensie aktywne połączenie - może być to przechwycony metodą nasłuchu pakiet rozgłaszany w trybie beaconu, czyli nasłuch pasywny)
=+= to warstwa transportowa Ethernet (obojętnie czy po kabelku czy przez WiFi, oczywiście lepiej gdy się to odbędzie po kabelku)

Więc podsumowując to wszystko - nie da się nic wymusić, bo to HA, a nie EBP obrabia dane.

Więc odpowiedni kod musi się znajdować w samym HA (czyli w sofcie bramki AIS), jak sprawdziłem w HA obsługę EBP wprowadzono w core 2022.9.0 (ale możliwe, że były też jakieś późniejsze zmiany, bo tryb aktywny w EBP jeśli dobrze pamiętam pojawił się z pewnym opóźnieniem względem wrześniowej premiery, jak ktoś ma czas na kopanie w commitach, to w sumie jest wszystko do sprawdzenia, ale na to jestem za leniwy…)


Ze względu na specyfikę komunikacji w EBP bramka BLE może być zintegrowana tylko z jedną instalacją HA.
(jakkolwiek należy przyjąć, że to ograniczenie dotyczy ogólnie każdego urządzenia ESPHome - może być ono podłączone wyłącznie do jednego HA po API albo do jednego brokera MQTT)
Więc jeśli masz ją zintegrowaną w innym HA to musisz ją wywalić z Integracji oraz Ignorować po ewentualnym kolejnym wykryciu (lub wyłączyć Integrację, jakkolwiek u siebie mając więcej niż 1 HA po prostu ignoruję).

Odnośnie współpracy EBP z bramkami AIS to chyba najlepiej by się ktoś z AIS wypowiedział @administratorzy @moderatorzy.


PS Na PW się umawialiśmy, że wrzucisz (odpowiednio sformatowany - przypominam o linijkach z odwrotnymi apostrofami!, edit: widzę po logu, że jesteś jednym z niewielu dbających o formatowanie :+1:) YAML z IDE (dashboardu) ESPHome, który uzyskałeś w momencie Adopcji do dashboardu ESPHome, bo bez jego zawartości trudno dalej ujechać.
My nie mamy w ręce twojego sprzętu, więc jeśli nie dostarczasz danych to ich nie mamy.
Jaki YAML jest TERAZ na repo to wiadomo - wystarczy tam zajrzeć, ale jaki nagłówek masz wkompilowany w obecny firmware na urządzeniu to nikt nie ma pojęcia.
(a od niego zależy czy uwalisz sobie sprzęt aktualizacją, czy nie)


Blakkader w sumie się też nie przyłożył, bo stamtąd
https://blakadder.github.io/bluetooth-proxies/
linkuje do głównej gałęzi projektu EBP na githubie (a tam mamy wersję dla HW 2.x bazującej na IP101) zamiast do swojego forka (gdzie kluczowy YAML dla HW 1.x jest INNY)…
ale na jego repo jest obecnie “jedyny słuszny” dla GL.iNet GL-S10 o wersji HW 1.x (wszystkich na LAN8720):

czyli


PS Obecna wersja softu EBP na konkretnie ten sprzęt ma obsługę odpowiednio oznaczonej kontrolki LED i to jest wskaźnik że coś bramka odbiera (nie mam jednak możliwości zabrania bramki na “bluetoothową pustynię” by zweryfikować, że istotnie ten LED będzie ciemny jak noc przy braku BLE w okolicy).

Nie wiem czy tak było zawsze (a nie mam weny na kopanie po historii commitów), na początku istnienia tego projektu interesowałem się wersją dla “generic ESP32”, bo takie mam w szufladach (i tam EBP “fabrycznie” nie ma wsparcia dla kontrolki LED BT “prosto z pudełka”, bo typowe płytki deweloperskie takich nie posiadają)

2 polubienia

Na DEV3 nie mam bezpośredniej możliwości dodania Add-On do ESPHome w związku z tym YAMLa pobrałem ze swojego środowiska testowego HA na wirtualce. Przy czym podczas adopcji do dashboardu ESPHome w poniższym komunikacie wybrałem “Skip” aby nie została wgrana nowa konfiguracja, która uziemi mi bramkę (przetestowałem to już wcześniej gdzie po wybraniu “Install” bramka już nie wstała i musiałem od nowa wgrywać oprogramowanie).

BPE3

substitutions:
  name: gl-s10-bt-proxy-c2344c
packages:
  esphome.bluetooth-proxy: github://blakadder/bluetooth-proxies/gl-s10.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false

Teraz jest taka wersja:
BPE5

1 polubienie