Home Asisstant a osprzęt Xiaomi

Nie. (chyba, że nie zrozumiałem twoich intencji)

Idea jest taka - chcesz wyłączyć BT (i ewentualnie WiFi? - dobrze by było to zrobić jeśli korzystasz z połączenia kabelkiem Ethernet) w systemie, który używasz na bieżąco (HAOS), a nie w jakimś innym (RPiOS, na innej karcie, który normalnie nie będzie używany), więc wyłączyć musisz w konfiguracji na partycji boot systemu HAOS, a nie jakiegoś innego systemu, którego przecież nie będziesz używać.

Ale byłeś w miarę blisko - metoda z edycją z użyciem terminala jest istotnie dość trudna, ale ma łatwiejszą alternatywę (to pewnie trochę traci walor edukacyjny, ale działa) :stuck_out_tongue_winking_eye: :

  • zamknąć “po bożemu” system HAOS (nie HA, masz zamknąć=wyłączyć hosta, z menu System Supervisora; albo np. z terminala ha host shutdown)
  • wyjąć kartę
  • włożyć do czytnika w dowolnym komputerze - jedyna partycja widzialna spod windows to partycja boot, w przypadku innych systemów z pewnością też odnajdziesz właściwą partycję (fat)
  • zedytować na niej wspomniany plik z użyciem dowolnego komputera (zachowując linux’owe podziały linii - więc jeśli spod Windows to użyj np. notepad++ byle NIE systemowy notepad, ani nic innego co wstawi windowsowe podziały linii), zapisać go, odmontować kartę w bezpieczny sposób, przełożyć do RPi,
  • gotowe - odpalić HAOS

Da się zrobić - to właśnie edycja pliku config.txt (można to zrobić z poziomu systemu hosta, jak sam wspomniałeś używając terminala odpalonego z prawami roota na hoście, w którym odpalasz sobie edytor) w Raspberry config.txt jest takim “mniej więcej” odpowiednikiem windowsowego menadżera urządzeń.
W przypadku edycji bezpośrednio z poziomu HAOS oczywiście trzeba zrebootować maszynę “po bożemu” czyli z menu Supervisora, albo po prostu z terminala po zapisaniu pliku:
ha host reboot
Restart hosta można zrobić też z lokalnej konsoli (klawiatura + monitor), tylko tam jesteś w ha więc komenda rebootująca maszynę to host reboot.

PS Jeśli masz HAOS na dysku twardym/ssd to oczywiście jest mowa o partycji boot na tym dysku (wtedy istotnie - jeśli nie chcesz lub nie masz możliwości wyjąć tego dysku i podpiąć do innego komputera, to oczywiście możesz z karty wystartować jakiegoś innego linuxa, a w nim podmontować sobie partycje HAOS i dokonać zmian we właściwym pliku na właściwej partycji - każdy system dla RPi jest w ten sposób skonstruowany).

PPS W planach rozwoju systemu prawdopodobnie jest wygodna edycja ustawień systemowych “z wewnątrz” HA (tak jak jest już obecnie, a od niedawna, konfigurowany network manager), ale to rozwiązanie jest dość mocno specyficzne dla platformy RPi (no i generalnie tego typu zmiany są specyficzne dla każdej innej platformy, a obsługiwanych jest kilka dośc radykalnie różnych konstrukcyjnie).

O to to to, to rozwiązanie jest dla mnie. Zamknąłem Raspberry w obudowie i odpinanie dysku jest troszkę kłopotliwe, a dostęp do karty zostawiłem sobie tak na zaś.

Tu masz przykład (akurat dotyczy RPi3 ale “sam sos” na RPi4 jest identyczny, uwaga na literówki, bo są)

Dzięki za podrzucony wątek i za ostrzeżenie. A tak z czysto akademickiej ciekawości, co stoi na przeszkodzie żeby mieć 2 Bluetooth’y.
W zasadzie wyłączenie jednego daje “porządek” radiowy i “mniejszą” konsumpcję energii, to chyba tyle?
Integracja Bluetooth Low Energy Monitor Passive BLE monitor, pozwala chyba na wybieranie urządzenia i obsługę więcej niż jednego dongla jednocześnie?

Dokładnie tyle i nic więcej, można mieć więcej niż 1 interfejs BT i w dodatku wykorzystywać wszystkie, jeśli nie wierzysz, że to dobry pomysł by się pozbyć zbędnych, to używaj wszystkie :smiley: (da się).
Edit: ten trzeci zysk i chyba najważniejszy, to uproszczenie konfiguracji i ułatwienie sobie życia w momentach gdy coś idzie źle (upraszcza to debugowanie).
Edit2: OK jest jeszcze 4 korzyść - na 100% nie generują się zbędne wpisy w bazie danych (można je wprawdzie wyłączyć w zamian za dodatkowe skomplikowanie konfiguracji - zdecydowanie łatwiej pozbyć się zbędnego sprzętu).

Oszczędność energii nie jest tu motywacją (chyba większe oszczędności daje odłączenie kabla monitora :stuck_out_tongue: choć w moim wypadku to był przetwornik HDMI → vga i on żarł chyba koło 2W - szczerze nie pamiętam ile, nawet możliwe, że zaledwie 0,5W, ale było to istotnie zauważalne, a po wyłączeniu BT czy WiFi nawet nie zauważyłem różnicy).

Ooo :open_mouth: wietrzę haczyk, jednakowoż oczekując na przedłużacze podpiąłem dongel i czekamy co się stanie :scream:. Faktycznie można zaptaszkować dwa i … jestem ciekaw co to będzie.

Hmmm, nic spektakularnego się nie wydarzyło, Jak działały oba BLE, czyli ten z Raspberry to jakieś dane były, Po jego wyłączeniu urządzenia są na liście ale brak odczytów.

A tak nieco z innej beczki - widzę niezamknięte issue dotyczące platformy RPi3/4:

(akurat jest tam wspomniany inny chipset - konkretniej BT5.0 Realteka, ale problem może dotyczyć też innych dongli, bo wygląda na to, że HAOS został nadmiernie odchudzony przez wywalenie sterowników BT i WiFi innych niż onboard…)

Edit: widzę, że jednak nie z innej beczki (zacząłem pisać, gdy nie było twojej edycji posta), a akurat ten realtek mnie interesował i został dołożony w HAOS6.1 a jak się okazuje nie na każdej platformie sprzętowej (przeglądałem pocztę, bo raportowałem poprawne działanie na amd64 w 6.1 i właśnie dostałem feedback).

A miałem pytać czy działa ten dołożony dongle…
Niestety w kanale beta jeszcze nie widzę poprawionej wersji systemu (w sumie nic dziwnego - issue nadal otwarte).

Dongle ma adres 00:1A:7D:DA:71:13 i póki co nic nie podaje, jak długi jest czas odświeżania, przestawiłem na Active scan.

Odpal sobie testowo HAOS na innej platformie np. amd64 (może być choćby i cienki celeronek byle był x64)
przypuszczam, że obsługa “obcych” interfejsów WiFi/BT wróci na platformę RPi nie wcześniej niż w 6.2.

Nie mam nic takiego małego pod ręką, więc na razie zostaje BLE z bramki i do zabawy to kulawe z Raspberry. No nic poczekamy, jakoś będzie.

Nie z bramki tylko to onboard, o ile dobrze pamiętam - parę postów wyżej (pisałeś o migracji z bramki).
Ciekawe jak się sprawy mają na tinkerboard’ach lub odroid’ach arm (zrobiłbym jakieś testy, ale nie mam aż tyle wolnego czasu, na pecetach x64 w każdym razie działa).

Nie nie, nadal mam podpięta bramkę Xiaomi do HA i póki co urządzenia Bluetooth są odczytywane przez nią.
Ta z raspberry to integracja BLE i tu są częściowe odczyty, na donglu nie było nic, choć był widoczny w systemie (po macku). Wyłączyłem Active scan nie będę męczył bateryjek, za godzinę zobaczymy co i jak.

Tak mniej więcej wygląda log w przypadku BT, który działa (jak widać od czasu do czasu jakieś błędy się pojawiają)

~ $ dmesg | grep "Blue"
[    0.303684] Bluetooth: Core ver 2.22
[    0.303734] Bluetooth: HCI device and connection manager initialized
[    0.303749] Bluetooth: HCI socket layer initialized
[    0.303760] Bluetooth: L2CAP socket layer initialized
[    0.303778] Bluetooth: SCO socket layer initialized
[    2.474910] usb 1-1.4: Product: Bluetooth Radio
[    2.482027] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
[    2.504974] Bluetooth: hci0: RTL: rom_version status=0 version=1
[    2.507999] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761b_fw.bin
[    2.514225] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761b_config.bin
[    2.520658] Bluetooth: hci0: RTL: cfg_sz 25, total sz 21389
[    2.687158] Bluetooth: hci0: RTL: fw version 0x0d99646b
[188292.750589] Bluetooth: hci0: advertising data len corrected 27 -> 26
[533817.126625] Bluetooth: hci0: advertising data len corrected 27 -> 26

albo

~ $ dmesg | grep "Blue"                                                                                                                                   
[    0.196536] Bluetooth: Core ver 2.22                                                                                                                   
[    0.196560] Bluetooth: HCI device and connection manager initialized                                                                                   
[    0.196566] Bluetooth: HCI socket layer initialized                                                                                                    
[    0.196572] Bluetooth: L2CAP socket layer initialized                                                                                                  
[    0.196580] Bluetooth: SCO socket layer initialized                                                                                                    
[    1.750268] Bluetooth: hci1: read Intel version: 370810225019140f00                                                                                    
[    1.751827] Bluetooth: hci1: Intel Bluetooth firmware file: intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq                                                 
[    2.102264] Bluetooth: hci1: Intel BT fw patch 0x42 completed & activated                                                                              
[ 1016.195331] Bluetooth: hci1: advertising data len corrected 30 -> 21                                                                                   
[136582.999298] Bluetooth: hci1: advertising data len corrected 30 -> 21                                                                                  
[136583.020246] Bluetooth: hci1: advertising data len corrected 30 -> 21                                                                                  
[136583.352293] Bluetooth: hci1: advertising data len corrected 30 -> 21     

Nie wiem co masz za czujniki na BLE, ale najtańsze termohigrometry raportują parametry niemal co chwilę (jedynie stan ogniwa zasilającego bywa rzadko nadawany, no ale zależy jaki model i firmware). Jakkolwiek skoro nie ma odczytów przez kilka minut = nie działa póki co (pozostaje poużywać wbudowanego do czasu poprawek systemu).

Możesz też w terminalu wykonać polecenie

dmesg | grep "Blue" 

i zobaczyć jakie daje wyniki (kopiowanie tekstu w terminalu dostępnym w GUI polega na przeciągnięciu myszą mając wciśnięty shift).

Po wpisaniu ww komendy na wbudowanym w raspberry pi Bluetooth otrzymuję takie coś

➜  ~ dmesg | grep "Blue"                                                                                                                                                                                                                 
                                                                                        
[    5.085184] Bluetooth: Core ver 2.22
[    5.085277] Bluetooth: HCI device and connection manager initialized
[    5.085294] Bluetooth: HCI socket layer initialized
[    5.085303] Bluetooth: L2CAP socket layer initialized
[    5.085318] Bluetooth: SCO socket layer initialized
[    5.735636] Bluetooth: HCI UART driver ver 2.3
[    5.735649] Bluetooth: HCI UART protocol H4 registered
[    5.735713] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    5.735852] Bluetooth: HCI UART protocol Broadcom registered
[    5.838267] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    5.838278] Bluetooth: BNEP filters: protocol multicast
[    5.838294] Bluetooth: BNEP socket layer initialized
[   48.642719] Bluetooth: RFCOMM TTY layer initialized
[   48.642744] Bluetooth: RFCOMM socket layer initialized
[   48.642767] Bluetooth: RFCOMM ver 1.11
➜  ~ 

No i powinieneś porównać z tym co masz po wyłączeniu onboard.

Czy naprawdę każdemu oddzielnie trzeba tłumaczyć czemu wstawianie jako-tako sformatowanego tekstu do postów jest 1000x lepsze od wstawiania screenshota (oczywiście pomijam sytuacje, gdy bez grafiki nie da się czegoś przedstawić)

a na “zwykłym terminalu” jest to również łatwe - przykładowo w windowsowym PuTTY wystarczy zaznaczyć myszą cały tekst (nawet bez shifta, choć on nie przeszkadza)

na każdym forum na engine discourse i na githubie wystarczy skopiowany tekst wrzucić między linijki z ```
(a na innych forach chodzi o wklejenie między jakieś inne znaczniki odpowiedniego formatowania) by tekst generowany maszynowo lub kod był czytelny i bez przekłamań.

W większości przypadków skopiowanie tekstu i wklejenie go do posta jest lepsze bo:

  • wyszukiwarki są go w stanie zindeksować w przeciwieństwie do obrazka (tu taki mały wtręt - tam gdzie obrazki są konieczne warto by miały jakąś sensowną nazwę, a nie np. image.png to jest cień szansy, że jakaś zewnętrzna wyszukiwarka grafiki może sensownie to zindeksuje)
  • jeśli coś będzie zindeksowane, to pewnie ktoś, kto natrafi na podobny problem będzie w stanie to znaleźć
  • odpowiadający może wykorzystywać kopiowanie jego fragmentów szukając źródła, którym można się podeprzeć (nie sądzisz chyba, że każdy pisze “z głowy”), czasem przepisywanie tekstu z obrazka jest na tyle żmudne, że wielu odpowiadających rezygnuje z udzielenia pomocy
  • ta sama treść zajmuje na hostingu tysiące razy mniej miejsca (walor ekologiczny i ekonomiczny, w mikroskali niby niezauważalny, ale to działa globalnie) w związku z tym też zasoby potrzebne na przesyłanie są drastycznie różne
  • przygotowanie screenshota i wrzucenie go do posta wymaga zasadniczo tyle samo zaangażowania i roboty co przygotowanie jako-tako sformatowanej wklejki z tekstem (odwrotny apostrof ` jest pod klawiszem tyldy ~ (to ten klawisz nad Tab), trzeba go po prostu trochę ponapierdzielać).

Wracając do tematu - proponuję byś tam zajrzał

wstawił “lajka” i ewentualnie dopisał w przyjaznym tonie, że nie tylko @kamtschatka ma z tym problem (to nieco podniesie rangę tej przypadłości i być może przyczyni się do szybszego usunięcia usterki - na rozwiązanie problemów zgłaszanych przez pojedynczego użytkownika można czekać latami i nie doczekać się nigdy - to akurat nie jest taki przypadek, bo ktoś się tym już zajął, ale fajnie gdy ma świadomość nieco większej powszechności problemu).

Popatrz na to - w tej chwili jest już blisko 70 000 instalacji (i PL jest gdzieś między Rosją, a Kanadą w okolicy 10 miejsca :stuck_out_tongue: pod względem ich liczby), więc pojedynczy przypadek problemu może mieć znikome znaczenie dla developerów

Tak przy okazji - zachęcam każdego do włączenia pełnej analityki (4 ptaszki) w Ustawienia → Ogólne

Poprawki zgodnie z uwagami naniesione, Zgłoszenie dodane, może faktycznie kiedyś ktoś coś z tym zrobi. A tak w ogóle to jest sporo uwag co do łączności w Raspberry Pi, spore grono narzeka na brak możliwości podłączenia wyniesionych antenek. Sam się zastanawiałem nad head’em z modułami WiFi oraz Bluetooth, ale skoro nie można dodawać sterowników to lipton.

1 polubienie

Istnieją inne (wspierane przez developerów HA) w miarę sensowne konstrukcje np. Tinkerboard/Tinkerboard S (te modele miały być konkurencją dla RPi3 i pasują 1:1 do obudowy od RPi3), które mają uFL na płytce i możliwość odpięcia wbudowanej anteny WiFi, a podpięcia zewnętrznej, ale odsetek użytkowników jest niemal zerowy (fakt faktem tam jest zaledwie 32-bitowy procek, ale za to nawet wbudowane audio zjada na śniadanie każdy model Maliny i chyba przez to sprzęt osiągnął chore ceny, a zdaje się że te już stare modele są wycofywane z produkcji, bo ma je zastąpić Tinkerboard2, jak dotąd bez wsparcia w HA), jakkolwiek i tak po prostu i bezwzględnie w przypadku każdej platformy najsensowniejsze połączenie z siecią to nadal klasycznie kablowo po Ethernecie.
Kilka modeli Odroida też jest wspieranych (niestety wiele popularnych też bazuje na zaledwie 32-bitowym procku, choć w tym wypadku 8-rdzeniowym - tym razem ze smartfona SGS5).

To jest idea niezawodnego systemu, tylko nieco autorzy przesadzili z wycięciem w pień sterowników WiFi i BT innych niż wbudowane (przynajmniej na platformie RPi).
Sprawdziłbym Tinkerboarda, ale życie jest za krótkie… (mam go zaledwie od paru dni, a pracuje na nim coś innego - konkretnie Volumio - zainstalowane na eMMC, więc w razie czego można odpalić go z karty TF z jakimś innym systemem, a rzuciłem się na tą konstrukcję jak szczerbaty na suchary, bo znika z rynku, a ciekaw byłem czy faktycznie audio jest do przyjęcia i… jest).

Edit: wygląda na to, że na platformie amd64 ten sterownik też poleciał do kubła, bo dongle na CSR8510 kiedyś działał mi poprawnie, a teraz nie (używam od dawna akurat innego, więc nawet nie wiem od kiedy).