☠ Nie ogarniam tej kuwety - Zigbee i HA w AIS

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 :frowning:
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 :frowning:

Akurat ten czujnik odpowiada za automatyzację oświetlenia nocnego i bez niego wszystko szlag trafia :frowning:
Ż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?

Zna ktoś jakiś sposób aby temu zapobiec albo prosto naprawić, poza reinstalką?

ź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

1 polubienie

Nie wywali mi to dotychczasowych konfiguracji encji w kosmos?

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 mogę namierzyć bazy mosquitto.

przeszukaj cała bramkę, u mnie w dockerze nazywa się: mosquitto.db

/ $ su -c "find . -name mosquitto.db"

brak wyników…

/ $ su -c "find . -name *.db" | grep ".db"
./data/system/watchlist_report.db
./data/system/notification_log.db
./data/system/locksettings.db
./data/data/com.google.android.googlequicksearchbox/app_si/now_content_store/content_store.db
./data/data/com.google.android.googlequicksearchbox/databases/-1_threads.notifications.db
./data/data/com.google.android.googlequicksearchbox/databases/accounts.notifications.db
./data/data/com.google.android.googlequicksearchbox/databases/icing-mdh.db
./data/data/com.android.providers.contacts/databases/profile.db
./data/data/com.android.providers.contacts/databases/contacts2.db
./data/data/com.android.providers.contacts/databases/calllog.db
./data/data/com.spotify.music/databases/event-sender.db
./data/data/com.spotify.music/databases/google_app_measurement.db
./data/data/com.android.chrome/app_chrome/Default/page_load_capping_opt_out.db
./data/data/com.android.chrome/app_chrome/Default/previews_opt_out.db
./data/data/pl.sviete.dom/files/home/zigbee2mqtt/data/database.db
./data/data/com.android.providers.media/databases/internal.db
./data/data/com.android.providers.media/databases/external.db
./data/data/pl.sviete.dom.client/app_webview/databases/Databases.db
./data/data/pl.sviete.dom.client/files/google_app_measurement.db
./data/data/pl.sviete.dom.client/databases/google_app_measurement.db
./data/data/pl.sviete.dom.client/databases/google_app_measurement_local.db
./data/data/com.google.android.gsf/databases/googlesettings.db
./data/data/com.google.android.gsf/databases/gservices.db
./data/data/com.google.android.gsf/databases/subscribedfeeds.db
./data/data/com.android.providers.downloads/databases/downloads.db
./data/data/pl.sviete.dom.anexplorer.pro/databases/internal.db
./data/data/pl.sviete.dom.anexplorer.pro/databases/recents.db
./data/data/com.android.keychain/databases/grants.db
./data/data/com.android.providers.calendar/databases/calendar.db
./data/user_de/0/com.android.providers.contacts/databases/calllog_shadow.db
./data/system_de/0/accounts_de.db
./data/system_ce/0/accounts_ce.db
./mnt/vendor/param/pq/pq.db
./vendor/etc/tvconfig/pq/pq.db

Czyżby nie było w ogóle bazy dla mqtt na AIS? aż nie chce mi się wierzyć.
No nie mam jak sprawdzić, w dockerze normalnie mam baze
To spróbuj samo z2m.

Nie pomogło nic :frowning: Lista urządzeń zrobiła się pusta i nie było żadnego kontaktu w urządzeniami zigbee :frowning:

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 :frowning:

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 :frowning:
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.

1 polubienie