Pasywny monitor BLE przestał czytać dane z czujników

Nie chce mi się szukać po historii wydań, ale sierpniowy HA core już ma nową Integrację Bluetooth (z obsługą 1 dongla), autorzy PBM zdecydowali, że priorytetowe jest wprowadzenie wbudowanej w HA obsługi Bluetooth (wraz z równoczesnym uznaniem PBM za przestarzałe rozwiązanie), bo stara wbudowana w HA integracja Bluetooth przestała działać z powodu zależności od przestarzałego oprogramowania.
Nowa integracja Bluetooth nie może działać równocześnie z PBM z użyciem tego samego dongla, więc jeśli chcesz używać równolegle obu integracji to musisz używać 2 dongle.

W dodatku to jest normalna kolej rzeczy - decydując się na jakiekolwiek Komponenty Niestandardowe (jak np. PBM) bierzesz na siebie ryzyko, że taki komponent może przestać działać, (w tym wypadku wystarczy wyłączyć systemową Integrację Bluetooth, aby PBM mógł działać po staremu, ale nie wiem jak długo jeszcze).

NIC NIE ZASTĄPI CZYTANIA notek do wydań przez zastosowaniem jakiejkolwiek aktualizacji, wiedziałbyś co robić.

W wersji wrześniowej będziesz mógł odwrotnie przypisać dongle do integracji (teraz systemowy Bluetooth wykrywa tylko jednego z tych 2, więc PBM musisz skonfigurować do pracy z tym drugim, wkrótce będziesz miał elastyczny wybór, ale wciąż dongle przypisany do integracji systemowej nie może być uruchomiony w PBM, tylko we wrześniu będziesz miał już wybór).

Na obrazkach wersja wrześniowa i konfiguracja obu integracji w taki sposób, aby sobie nawzajem nie przeszkadzały (oczywiście na bazie 2 dongli można skonfigurować to dokładnie odwrotnie)


Hmm to nie ma nic wspólnego z powyższym tematem (nie jest to BLE więc nie zintegruję się w PBM ani nowej integracji BT/BLE), ale oczywiście - masz ochotę to potestuj, w ramach OFF TOPICu - ja się dorobiłem czujnika CO2 (ale nie planuję integracji w najbliższym czasie, bo akurat ten model wymaga dość hardkorowej przeróbki DIY, a już sporo innych rzeczy czeka na swoją kolej).

OK, reasumując, mam kartę w integracjach a na niej to co poniżej:
image
Są to dwa urządzenia Bluetooth jeden od Raspberry, drugi chińczyk dołożony przeze mnie. Co to zmienia nie rozumiem, nie ma pod nim urządzeń (np. termometry itp.)
Urządzenia dotąd działające na “chińczyku” bezawaryjnie odmówiły raportowania, ale od pewnego czasu (jakiś tydzień) podjęły komunikację oprócz jednego.
image
Jest to:
image
Steruje a a zasadzie to sterował wentylatorem wyciągowym (teraz wentylator pracuje non stop).
Nic nie mogę z tym zrobić, zmiana lokalizacji termometru, wyjmowanie baterii, nic nie dają. Nie da się go usunąć z listy urządzeń, sam też nie chce zniknąć. WTF???

Te wartości są niezmienne:
image
Nie ważne co bym robił.

Przeczytaj to co napisałem wcześniej, ale wczuj się w temat.
Wyłącz Integrację Bluetooth z “chińczykiem” (poznasz go po MACu tym który masz wybrany w PBM), jeśli nadal chcesz używać PBM.


Dongile na czerwono pracuje w PBM
na niebiesko w systemowej Integracji Bluetooth

I nie będzie, bo ta Integracja tak nie działa - ona ma “poditegracje” dedykowane poszczególnym producentom urządzeń BLE.

ALE póki masz konflikty między integracją systemową i PBM to nie zadziała.

Czyli:
Adaptery Bluetooth
“Chińczyk” włączony" w starym BLE tu widnieje tu jako “wyłączony”?
Jeżeli tak to ile potrwa aktualizacja? Dobę?

Taki mały wtręt, popełniłem błąd, mianowicie
wykorzystując tą opcję
image
wyłączyłem kilka takich kwiatków
image
Jak to włączyć :sweat_smile:

PS
Restart nic w kwestii termometru w łazience nie zmienił nadal pomiary zamrożone :thinking: może poczekajmy?

Restart HA powinien wystarczyć.

wylaczone_ignorowane_2022-09-11_15-58

Niestety, “czary” z adapterami nic nie wniosły. Nadal jeden z LYWSD03MMC (termometr/higrometr) i HHCCJCY01 (czujnik roślin) nie działają. Tzn. są widoczne w Home Assistant, pokazują dane, czyli jakby działy. Niestety odczyty te nie pokrywają się z podanymi w aplikacji telefonu i w przypadku termometru na wyświetlaczu. Wygląda to tak jakby HA widział urządzenia (są encje itp.) ale ignorował nowe dane. Pozostałe termometry działają.
Dziwaczna sytuacja i wskazuje raczej na błąd HA. Może, zaznaczam może, pomogło by usunięcie urządzeń i ponowne ich wykrycie, tylko za groma nie mogę znaleźć takiej opcji. Jednego co się doszukałem to wyłączenie.
Ktoś spotkał się z takim problemem i ma może doświadczenie i chęć pomocy? Może jakieś sugestie?

Niestety nie wiem co to znaczy

Zazwyczaj brak wskazań wynika z braku zasięgu/zakłóceń zewnętrznych uniemożliwiających komunikację/nasłuch czujników przez używanego dongla BT…

przykładowe wykresy ostatniej doby (z podstawowych Informacji o danej Encji)

zasięg OK

a tak wyglądają przy braku zasięgu (przykładowo, to różne encje, mając instalacje testowe mogę sobie pozwolić na nieudane eksperymenty)

zauważ to jest ten sam czujnik, który w mojej produkcyjnej instalacji ma zasięg i działa OK (a tu mam syfiasty dongiel i dodatkowo RPi, które jest wręcz generatorem zakłóceń RF)


Jeśli chodzi o “czary” związane z usuwaniem urządzeń w PBM to wyglądają one tak:
(w przykładzie usunąłem beacon apple, który identyfikowany jest po długaśnym UUID, zwykłe czujniki identyfikują się po sporo krótszym MAC-adresie BT)


A jeśli chcesz usuwać urządzenia w systemowej integracji Bluetooth to znajdujesz właściwą “Pod-integrację” - tu przykłady dla

Xiaomi BLE

Xiaomi_BLE_usuwanie_01_2022-09-25_19-42

BTHome

BTHome_usuwanie_01_2022-09-25_19-42

W każdej innej podintegracji zależnej od systemowej integracji Bluetooth jest podobnie.


PS nie sądzę, że usunięcie urządzeń pomoże, raczej trzeba pomyśleć o zapewnieniu zasięgu (może bramka BLE na bazie ESP32 by pomogła? wtedy oczywiście skorzystasz z integracji systemowej)

PPS Jeśli sam nie chcesz zrozumieć jak to wszystko działa, to my tego łopatami Ci nie włożymy do głowy, nie da się traktować HA (czy urządzeń BLE) jako czarnej skrzynki w której “niech się dzieje co chce”…
Niestety bez zrozumienia podstaw trudno zrozumieć czemu coś nie działa lub są jakiekolwiek problemy…

3 polubienia

To nie tak że nie rozumiem, nie rozumiem dlaczego nagle po aktualizacji coś co działało wcześniej świetnie nagle przestaje. Fizyczne umiejscowienie urządzeń nie uległo zmianie. Termometr jest odczytywany ze smartfona z dużo większej odległości niż lokalizacja Raspberry. Ponadto Bluetooth “pokładowy” mam wyłączony. Do komunikacji używam 76.88zł |100m daleki zasięg Bluetooth USB Dongle bezprzewodowy Bluetooth 4.0 CSR Adapter dla Windows 10, 8, 7 XP vista Home Asystent|Bezprzewodowe adaptery| - AliExpress na przedłużaczu.
Było OK, teraz nie, więc próbuję ustalić dlaczego i jak to zmienić.

Dziwne, u mnie działa - po prostu po aktualizacji natychmiast zignorowałem nową systemową integrację Bluetooth (i ostrzegałem o tym innych swego czasu, bo po to właśnie mam testowe instalacje na wersjach beta, by móc wprowadzać w instalacjach produkcyjnych poważne zmiany bez ryzyka uwalenia konfiguracji).

Tak się składa, że nie tylko systemowa integracja Bluetooth została mocno przebudowana, ale również samo systemowe wsparcie dla dongli Bluetooth też jest zupełnie inne (ci którzy nie używali PBM mieli chyba 2 czy 3 miesiące wakacji od sprzętu bluetooth, bo systemowe wsparcie się posypało ze względu na niedziałające zależności od archaicznego softu jeszcze przed wakacjami - ostatnia działająca wersja HAOS ze starym wsparciem dongli to 7.6).

Przypuszczalnie zasięg spadł, bo prawdopodobnie teraz używasz dongla onboard (jeśli ten drugi przestał działać lub działa wadliwie).

Niestety jeśli coś opisujesz jako “czary” zamiast podać konkretne informacje z logów umożliwiające jakiekolwiek próby debugowania, to nie ma o czym mówić.

Jak się okazuje w nowej wersji obsługi systemowej stosu Bluetooth nie ma wsparcia dla podróbek CSR (już ktoś inny o tym pisał i na podstawie zamieszczonych logów wiem o braku patcha wciąż nawet w obecnej wersji HAOS 9.0 - tymczasowo możesz spróbować zrobić tak jak on, czyli downgrade systemu do 7.6 ale jak długo podziała takie sztukowanie - nie wiem).

Prawidłowym posunięciem byłoby znalezienie problemu (i jego rozwiązania choćby przez downgrade OSa) oraz założenie issue lub dopisanie się do istniejącego (we właściwym miejscu - ja podejrzewam brak w systemie działających sterowników, a właściwie patcha dla podróbek CSR) podając tam możliwie największą ilość informacji, które mogłyby pomóc twórcom softu.

Tam masz wątek z podobnymi problemami, tylko @fnxfnx nie miał 2 dongli jak masz Ty


Swoją drogą by wykluczyć wpływ dongla onboard powinieneś go wyłączyć w config.txt na partycji boot
a konkretniej mam na myśli dopisanie mniej więcej tyle w ostatnich linijkach pliku (celowo dodałem pustą linię na końcu)

# Disable Bluetooth
dtoverlay=disable-bt

a czemu w ostatnich linijkach? bo ten plik jest (a w każdym razie był, bo nie jestem do końca na bieżąco) edytowany maszynowo przez system, więc nie można mieszać w części nie przeznaczonej do edycji przez użytkownika.

Chyba kiedyś już sugerowałem takie wyłączenie, nie wiem czy skorzystałeś (kiedykolwiek, bo informacje wyżej mówią jasno, że masz odpalony BT onboard).

Ten plik można edytować również po ładnym zamknięciu systemu i podłączeniu nośnika systemowego (obojętnie czy to hdd/ssd w kieszeni USB, czy karta TF/SD) choćby do komputera z Windowsem (wtedy to jedyna widoczna partycja w przypadku typowej konfiguracji Windy), UWAGA nalezy używać edytora zgodnego z linuxowymi plikami tekstowymi np. Downloads | Notepad++

PS Jeśli nie używasz w RPi WiFi to sugeruję jeszcze to:

# Disable WiFi
dtoverlay=disable-wifi

PPS Tak sobie radośnie założyłem, że masz instalację na bazie HAOS dla RPi, ale w sumie nie wiem jaką masz instalację…

Założenie słuszne, mam RPi i sewgo czasu wyłączałem BT w sposób zalecany przez Ciebie. Późniejszej historii nie pamiętam ale odtwarzałem z backupu cały system i prawdopodobnie (a wszystko wskazuje że na pewno) cofnąłem się za daleko. Zapomniałem o tym obowiązku ponieważ działało wszystko. Dopiero tym wpisem zwróciłeś moją uwagę na ten babol który zrobiłem i teraz jestem dopiero skonsternowany tym że do momentu kiedy zaczęli mieszać z BT w systemie ten jeden, dosłownie jeden termometr się posypał.
Już z czystej ciekawości usunąłem go z urządzeń i fizycznie przeniosłem na jakieś 2 metry od dongla BT i zobaczę czy to faktycznie zasięg.
PS
Tak chodzi mi po głowie czy może gdzieś w systemie (nie mam pojęcia gdzie szukać) jest zafiksowane że tego konkretnego nie pytać? Inne termometry (3 szt.) działają bez problemu, a są dwukrotnie dalej, a nawet więcej, za ścianami itp. Dziwne to jakieś. Nasuwa mi się taki wniosek, że chyba BT trzeba pożegnać, ale najpierw z ciekawości poobserwuję czy coś się zmieni.

PS2
Jeżeli dobrze rozumiem, takie wyłączenie BT w ustawieniach BLE nie jest równoznaczne z jego fizycznym wyłączeniem WiFi ( w ustawieniach sieci) też?

image

Na routerze nie wyszukuje WiFi z RPi.

Jak pisałem nie jestem na bieżąco z HAOS w wersji na RPi, zawsze wpis w config.txt wyłączał kartę onboard na tyle, że nie było jej nawet widać w systemie, widocznie zmiany w aktualnym systemie są na tyle duże, że ignoruje on te wpisy.

W sumie można by to zgłosić jako issue (bo wpisy w config.txt zastępują fizyczne zdemontowanie sprzętu, którego przecież nie da się wyjąć…) więc jeśli ktoś się decyduje na taki krok to chyba nie po to by system ignorował te ustawienia (w pececie wystarczy wyłączyć sprzęt z poziomu BIOSa by go “nie było”).


A tak z innej beczki - próbowałeś

  1. tego usuwania (skoro i tak nie masz prawidłowych odczytów, to można spróbować)
  2. wymiany ogniwa zasilającego?
  1. tak próbowałem i to wielokrotnie, jest ponownie wykrywany pod nazwą “A4C138F51D29” czyli mac adresem, pokazuje wartości nieznane, kiedy w konfiguracji podam BLE KEY i uruchomię ponownie HA to pokazuje ostatnie błędne wartości i to się nie zmienia w czasie.
  2. baterię wymieniłem na nową więc jej wskazania 100% mogą mieć sens. Ale temperatura i wilgotność na wyświetlaczu i w komórce są inne niż HA Np. temp 25,7 st. w HA to bzdura.

PS
Sytuacja wygląda tak:

  1. usuwam urządzenie BLE, liczba urządzeń zmniejsza się o 1,
  2. wybieram opcję czytaj ponownie w integracji BLE i ilość urządzeń zwiększa się o 1,
  3. wartości widnieją jako nieznane oprócz “ble rssi A4C138F51D29” która wynosi "
    -50 dBm"
  4. wprowadzam do konfiguracji BLE KEY:
  5. wybieram opcję czytaj ponownie w integracji BLE, wartości nadal widnieją jako nieznane oprócz tej podanej powyżej
  6. Jeżeli tylko zmienię nazwę bez zatwierdzania zmiany identyfikatora encji to wartości nadal są nieznane, jeżeli jednak zatwierdzę tą zmianę na obowiązującą wcześniej i dodam obszar, wczytuje wartości stare, błędne.

PS
Skąd się to bierze i jak przerwać to błędne koło? Taka zagadka :grin:

Wyłącz autowykrywanie nowych urządzeń
1.

następnie usuń urządzenie
zrestaruj HA
i ewentualnie w narzędziach deweloperskich usuń pozostałości po usuniętej encji (długoterminowe statystyki)
zrestaruj HA
i dopiero teraz wyszukaj “nowe” urządzenia

To zabrzmi niesamowicie. Przeprocesowałem procedurę którą zaleciłeś, wszystko zadziałało. Termometr/higrometr został ponownie wykryty, wartości brak. Dopisałem token, nadal zero wartości. Zmieniłem nazwę na używaną poprzednio i … mam stare błędne wartości. :flushed:
Zrobię to jeszcze raz i nazwę inaczej, ciekawe co będzie.

PS Dodałem ponownie i zostawiłem z nazwą w postaci maca, czyli taką jak został automatycznie wykryty. Na razie brak danych, klucz szyfrowania poprawny.

Możliwe, że to skutki uboczne działających równolegle 2 różnych integracji Bluetooth - oficjalnej oraz PBM - zwróć uwagę, że MAC-adresy tych urządzeń są niezmienne i stanowią ich unikalny identyfikator dla HA.

Metod na obejście problemu może być wiele, przede wszystkim wyłączenie retencji danych przed usuwaniem (jak dla mnie to raczej oczywiste)


Wyłączenie czujników przez wyjęcie baterii.

Wywalenie tych czujników z integracji oficjalnej oraz ich usunięcie z PBM dopiero wtedy, gdy HA zaproponuje takie wyjście (“encja nie jest już dostarczana przez integrację”).

Nie wiem co bym zrobił w takim wypadku jak twój (bo to co opisujesz świadczy o jednym - nie usunąłeś pozostałości po nieistniejących urządzeniach) - można edytować pliki, których nie powinieneś ruszać, można nawet skasować cała bazę danych, u siebie na instalacjach produkcyjnych nadal używam PBM z wyłączoną integracją systemową - nie mam czasu na przygotowanie planu migracji (generalnie mi zależy na zachowaniu danych historycznych, a nie ich usuwaniu, pomysł mam, ale nie wiem czy wypali, jakkolwiek jeśli w "normalny " sposób się nie uda, to zamierzam grzebać bezpośrednio w bazie urządzeń, więc nawet nie wiem czy będę w stanie to opisać w zrozumiały sposób), jakkolwiek w najbliższych miesiącach nie zapowiada się, że będę miał na to czas.
Niestety mam za dużo urządzeń w instalacjach produkcyjnych, więc jeśli nie będę miał czasu na walkę to po prostu zmigruję na nową integrację systemową bez zachowywania danych historycznych.

Decydując się na jakiekolwiek komponenty niestandardowe musisz sobie umieć radzić sam - zostałeś o tym ostrzeżony podczas instalacji HACS - jest to wręcz jeden z elementów “licencji na używanie HACS”, część autorów komponentów niestandardowych dodatkowo ostrzega we własnych repozytoriach.

A spytam tylko o jedno - zrobiłeś downgrade HAOS do wersji, w której wszystko działało poprawnie (HAOS 7.6 w którym jeśli dobrze pamiętam poprawnie działa config.txt)

Hmm, pousuwałem wszystko co znalazłem, wygląda to tak,

A jednak bezpośrednio po dodaniu przyjmuje on jakieś wartości, które są zapisane … gdzieś?

image

Wygląda to tak, za każdym razem.

PS
Ok, kolejna runda.

Wyjmij te baterie, wyłącz retencję i doprowadź cierpliwie do stanu “braku stanu” (to wymaga przynajmniej dnia odczekania, bo to co pokazałeś powyżej, to nie wartości bieżącego stanu encji, tylko jej długoterminowe statystyki) edit: jednak jestem w błędzie


Dopiero wtedy pojawi się przycisk Napraw, który umożliwi wywalenie z bazy danych resztek (jak rozumiem nigdy tego nie zrobiłeś).

Tylko właściwie nie wiem jaki masz cel, bo na początku ustaliliśmy, że nie masz bieżących odczytów z urządzenia, więc nie wiem czy w ogóle spróbowałeś postawić czujnik w zasięgu dongla BT.

Jeśli czujniki są na fabrycznym sofcie (Flower Care raczej z pewnością jest skoro używasz do niego aplikacji, a nie znam alternatywnego FW), to sprawdź tokeny w chmurze

bo teraz tak skojarzyłem, że one się przecież zmieniają po wymianie baterii.

(tak zupełnie z innej beczki - mam wrażenie, że Flower Care w stanie nieskonfigurowanym pracują dłużej, ale głowy sobie za to nie dam uciąć, jakkolwiek nie jest możliwe skorzystanie z fabrycznej aplikacji w takim stanie)

Tak, zmieniłem lokalizację czujnika/termometru na jakieś 1,5 m od dongla BT.

Tokeny sprawdzone, są aktualne.

Dodałem go ponownie i efekt jest taki, oczywiście po restarcie i odczekaniu około 1h.

Wyjąłem baterię i zobaczymy. Chociaż opcji “napraw” już używałem, ale za każdym razem po dodaniu i zmianie nazwy na “pierwotną”, kiedy zaczytywał historyczne dane.

To znaczy, że encja o tej samej nazwie/id wciąż się znajduje w bazie danych.

Niestety eksperyment to potwierdzający jest dość ryzykowny (więc oczywiście wcześniej warto mieć zrobiony świeży backup) - należałoby skopiować bazę danych pod inną nazwę (np. home-assistant_v2.db.bak) i skasować oryginał.

Przeprowadziłem procedurę dodawania i usuwania czujnika kilkukrotnie z dużymi odstępami czasu i po przywróceniu oryginalnej nazwy,

jest lepiej. Ponadto dodałem tracker więc HA “wie” że czujnik jest, tylko nic z niego nie pokazuje, co w sumie by się zgadzało. Jakiś postęp jest, choć nadal nie wiem i nie rozumiem jak to działa w HA co z tego wynika, jak temu zaradzić.