Dlaczego HA nie uaktualnia encji z zigbee2mqtt?
Czasem uda mi się wyczarować jakąś sekwencję restartów, zmian nazw i jeszcze innych zaklęć i niektóre encje mi wracają a czasem po restarcie AIS po prostu żadna siła nie jest wstanie zmienić stanu encji z nieznany na taki, który krąży po MQTT
Mało tego, na podglądzie stanu urządzenia atrybut ma wartość, ale encja ma wartość nieznany. I konia z rzędem temu kto podpowie ki diabeł tu miesza
Akurat ten czujnik odpowiada za automatyzację oświetlenia nocnego i bez niego wszystko szlag trafia
Że nie wspomnę o czujnikach otwarcia okien i drzwi. W MQTT są prawidłowe stany, w podglądzie atrybutów też, ale encja ma wartość nieznany i co zrobisz jak nic nie zrobisz?
źle tam napisałem, chodzi o baze mqtt żebyś usunął
w zasadzie dobrze wtedy też napisałem,
usuń dwie bazy mqtt i z2m
wszystko co zostaje retain żeby skasowało
Powinny być gdzieś tu: (ja nie mam mqtt i z2m na bramce więc nie widzę)
/data/data/pl.sviete.dom/files/usr/etc/mosquitto/
/data/data/pl.sviete.dom/files/home/zigbee2mqtt
końcówka plików *.DB
Nie usuwaj żadnych plików z konfiguracją (tych gdzie masz urządzenia wypisane)
tylko bazy danych, mozesz je sobie skopiować, w razie czego podmienisz,
po usunięciu i restarcie tworzy się sama nowa baza.
Robiłem tak parę razy jak mieszałem bo były właśnie problemy z błędnymi stanami itp.
Nie pomogło nic Lista urządzeń zrobiła się pusta i nie było żadnego kontaktu w urządzeniami zigbee
Niestety, ogarnęła mnie bezsilność i przeogromna deprecha na myśl o tym, że muszę postawić bramkę od nowa i ustawić od nowa pierdyliard encji, lovelace, automatyzacje i wiele innych rzeczy, nie mając żadnej pewności, że po wszystkim kolejny restart/aktualizacja bramki wywali mi wszystko ponownie w kosmos
Sprawdzałem na jednym kontaktronie. Usunąłem go z zigbee2mqtt. Ładnie się wyczyściły informacje o urządzeniu i encjach z MQTT. W AIS urządzenie zostało. Usunąłem je ręcznie.
Następnie znów dodałem urządzenie w zigbee2mqtt. AIS wypluł w logach:
2|ais | 2022-07-03 12:50:51 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 contact, queuing update
2|ais | 2022-07-03 12:50:52 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 battery_low, queuing update
2|ais | 2022-07-03 12:50:52 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: sensor 0x00124b0022ea2033 battery, queuing update
2|ais | 2022-07-03 12:50:52 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b0022ea2033 voltage
2|ais | 2022-07-03 12:50:52 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b0022ea2033 linkquality
2|ais | 2022-07-03 12:50:52 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.mqtt entity: sensor.0x00124b0022ea2033_voltage
2|ais | 2022-07-03 12:50:52 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.mqtt entity: sensor.0x00124b0022ea2033_linkquality
Encje binary_sensor i sensor się nie zarejestrowały w HA
Następnie w zigbee2mqtt zmieniłem nazwę urządzenia z domyślnego 0x00124b0022ea2033 na ZBK30_0x00124b0022ea2033 włącznie z opcją zmiany nazw encji w HA. Logi wypluły:
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 contact, queuing update
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 battery_low, queuing update
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: sensor 0x00124b0022ea2033 battery, queuing update
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 contact, queuing update
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 battery_low, queuing update
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: sensor 0x00124b0022ea2033 battery, queuing update
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b0022ea2033 voltage
2|ais | 2022-07-03 12:53:14 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b0022ea2033 linkquality
Nazwa się zmieniła, w encjach nic się nie dodało…
Ponownie zmieniłem nazwę urządzenia w zigbee2mqtt na ZBK30 (docelowa) ale bez zmiany nazw encji w HA. Logi wypluły coś takiego:
2|ais | 2022-07-03 12:54:48 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 contact, queuing update
2|ais | 2022-07-03 12:54:48 ERROR (MainThread) [homeassistant.util.logging] Exception in attributes_message_received when handling msg on 'zigbee2mqtt/ZBK30': '{"battery":64.5,"battery_low":false,"contact":false,"linkquality":167,"tamper":false,"voltage":2900}'
2|ais | Traceback (most recent call last):
2|ais | File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/mqtt/debug_info.py", line 46, in wrapper
2|ais | _log_message(msg)
2|ais | File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/mqtt/debug_info.py", line 36, in _log_message
2|ais | messages = debug_info["entities"][entity_id]["subscriptions"][
2|ais | KeyError: 'sensor.zbk30_battery'
2|ais | 2022-07-03 12:54:48 ERROR (MainThread) [homeassistant.util.logging] Exception in attributes_message_received when handling msg on 'zigbee2mqtt/ZBK30': '{"battery":64.5,"battery_low":false,"contact":false,"linkquality":167,"tamper":false,"voltage":2900}'
2|ais | Traceback (most recent call last):
2|ais | File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/mqtt/debug_info.py", line 46, in wrapper
2|ais | _log_message(msg)
2|ais | File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/mqtt/debug_info.py", line 36, in _log_message
2|ais | messages = debug_info["entities"][entity_id]["subscriptions"][
2|ais | KeyError: 'binary_sensor.zbk30_contact'
2|ais | 2022-07-03 12:54:48 ERROR (MainThread) [homeassistant.util.logging] Exception in attributes_message_received when handling msg on 'zigbee2mqtt/ZBK30': '{"battery":64.5,"battery_low":false,"contact":false,"linkquality":167,"tamper":false,"voltage":2900}'
2|ais | Traceback (most recent call last):
2|ais | File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/mqtt/debug_info.py", line 46, in wrapper
2|ais | _log_message(msg)
2|ais | File "/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/components/mqtt/debug_info.py", line 36, in _log_message
2|ais | messages = debug_info["entities"][entity_id]["subscriptions"][
2|ais | KeyError: 'binary_sensor.zbk30_battery_low'
2|ais | 2022-07-03 12:54:48 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b0022ea2033 battery_low, queuing update
2|ais | 2022-07-03 12:54:48 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: sensor 0x00124b0022ea2033 battery, queuing update
2|ais | 2022-07-03 12:54:48 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b0022ea2033 voltage
2|ais | 2022-07-03 12:54:48 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b0022ea2033 linkquality
Tym razem coś dodatkowego się pojawiło. Ale jeśli chodzi o kartę urządzenia w HA żadnej encji dodatkowej nie dodało…
Czy może HA trzyma coś w jakiejś swojej magicznej kolejce, która się gdzieś przypchała i nie aktualizuje tego co dostaje z MQTT?
Na razie z automatyzacją poradziłem sobie dorabiając własną encję sensora bazującą na danych z MQTT czujnika zmierzchu zigbee z zigbee2mqtt, skoro HA uważa, że czujnik jest nieaktywny…
Może z czasem przyjdzie jakaś informacja dlaczego u mnie HA uważa, że wszystkie urządzenia zigbee są nieaktywne na podstawie danych z integracji zigbee2mqtt.
Czy ktoś, ktokolwiek, jest mi w stanie powiedzieć dlaczego do cholery jasnej urządzenia zigbee mają nieznany status!!! Wystarczy zrestartować bramkę i szlag trafia odświeżanie statusów czujników zigbee
Nadchodzi okres grzewczy a ja guzik widzę w AIS. W MQTT wszystko widać i można sterować, w Zigbee2MQTT to samo, ale w lovelace AIS status urządzeń jest nieznany. Integracja zwalona
Postawiłem bramkę od nowa przechodząc na Thermux, wczytałem konfigurację i pojawiły się odczyty czujników i sterowanie, nawet climate, na którym mi najbardziej zależy.
Ale bramka zaczęła mulić. interfejs WWW wczytywał się wieki albo wcale więc zrestartowałem bramkę. Interfejs WWW wczytuje się dalej raz lepiej, raz gorzej, znaczy częściej gorzej, ale współpracę z zigbee szlag trafił
Nie mam już siły do tego badziewia, potrzebuję tego, idzie sezon grzewczy, a ja jestem w czarnej d…
Mimo dobrych chęci nie wiem jak pomóc, bo jeśli objawy powtarzają się na czystej instalacji to oznacza, że winna jest Twoja konfiguracja. Czy wykonałeś zalecenia @bartik22 dotyczące bazy danych? Czy nadal masz integrację z Supla? Dwa brokery MQTT?
Dzięki. U mnie to wszystko działa. Mam to wszystko poustawiane “jak w książkach piszą”
Problemem jest to, że po dodaniu urządzenia jest ono niedostępne i w HA nie widać ich stanów, a przełączniki zamiast mieć przesuwany button, to mają dwie osobne ikonki, włącz i wyłącz. Ale ich naciskanie nie działa i nie widać aktualnego stanu przełącznika.
Tak wyglądają encje gniazdek zigbee
a powinny wyglądać tak
Tak wyglądają czujniki otwarcia drzwi i okien z integracji zigbee
a tak wyglądają encje stworzone prosto z MQTT dla tych samych czujników
Najpierw jednak muszę ogarnąć dlaczego mi tak bramka muli i ciężko dostać się do niej przez apkę/www. Ale muszę znaleźć czas na odfiltrowanie logów, bo MQTT pisze jak szalone…
no dobra, a w momencie zamknięcia, otwarcia stan się zmienia na chwilę?
W logach z2m w momencie zamknięcia widzisz, że dostajesz wiadomość od czujnika?
Tak, widać. Ale w logach ais widać, że stan trafia do jakiejś kolejki (chyba) i w tej kolejce umiera ze starości, a ais sądzi, że urządzenie jest offline, skoro nic mu nie wysyła…
3|ais | 2022-10-19 16:37:29.236 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b002342e1b3 contact, queuing update
3|ais | 2022-10-19 16:37:29.239 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: binary_sensor 0x00124b002342e1b3 battery_low, queuing update
3|ais | 2022-10-19 16:37:29.243 INFO (MainThread) [homeassistant.components.mqtt.discovery] Component has already been discovered: sensor 0x00124b002342e1b3 battery, queuing update
3|ais | 2022-10-19 16:37:29.245 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b002342e1b3 voltage
3|ais | 2022-10-19 16:37:29.245 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: sensor 0x00124b002342e1b3 linkquality
jest queuing update i chyba ta kolejka trzyma update statusów i ich nie puszcza dalej… a urządzenia są niedostępne…
W momencie restartu na lovelace wszystkie sensory otwarcia zmieniają status na niedostępny a po restarcie zmieniają status na nieznany.
Po pierwsze włacz logi z2m
otwieraj okno czy co tam masz i patrz czy wysyła, czy z2m odbiera,
Tak samo otwórz mqtt explorer odnajdź urządzenie i patrz w momencie zmiany stanu czy w mqtt się zmienia, i czy stan zostaje
w z2m koncigu masz urządzenia z dopiskiem retain?
Na końcu odłącz serwer supli z konfiga i zobacz czy reszta działa, potem znowu podłącz
no musisz po kolei eliminować,
najlepszy byłby od nowa konfig całości bo ewidentnie coś tam Ci się namieszało
ale może uda się bez tego
I jeszcze raz wróce do bazy mosquito
gdzies ta baza musi być, usunięcie jej może całkowicie naprawić
jeżeli faktycznie nie można nigdzie jej znaleźć, to może usunąć całe mqtt i zainstalować ponownie,
Zrób kopie zapasową i w razie czego przywrócisz z portalu integratora