Przywrócenie kopii Conbee II z AIS

Ogólnie słyszałem wcześniej, że urządzenia Conbee przechowują swoją konfigurację lokalnie, więc nie spodziewałem się problemów po podłączeniu do czystego HAOS.

Niestety przy próbie uruchomienia go po raz pierwszy niby wczytał obecne ustawiania, ale jak się okazało to zaledwie 4 urządzenia, bez zdefiniowanych przeze mnie nazw… Mam jego pełny backup, od AIS w archiwum ZIP, ale składa on się z kilku plików:

configuration.example.yaml
configuration.yaml
configuration.yaml.bak
coordinator_backup.json
database.db
<DIR> log
state.json

Czy jest szansa, aby go wczytać?

Szansa to jest.

Gwarancji nie ma, bo być może Zigbee2MQTT musi być w dostatecznie starej wersji (od lat mówiłem żeby nie czekać z migracją…)

Te 3 pliki

configuration.yaml
coordinator_backup.json
database.db

wrzucasz do katalogu konfiguracyjnego Z2M gdy jest zatrzymany.

ALE najpierw sprawdź i porównaj ich strukturę z tym co masz obecnie, mogą wymagać drobnych edycji (czyli obecne wygenerowane wrzuć w jakieś bezpieczne miejsce zamiast je nadpisywać) - de facto takiej edycji będzie wymagał tylko configuration.yaml

homeassistant: true
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: #tuprzyświeżejinstalacjimaszwygenerowanewłaściwehaslowiecskopiujsobie
  keepalive: 60
  reject_unauthorized: true
  version: 5
[…]
# reszta raczej z pliku, który miałeś w backupie
# ale np. ścieżka do dongla musi być aktualna (sugeruję jak zawsze by-id)

Jeśli wrzucisz zawartość obu plików to spróbuję połączyć to w jedną całość

hmm założyłem, że masz oczywiście Mosquitto w postaci Dodatku

po zatrzymaniu Z2M pewnie trzeba też z brokera wywalić te nowe encje (usuwając je w Integracji MQTT lub z innego klienta MQTT)

Jutro koło południa postaram się podesłać. Jak rozumiem w formie kodu, zgadza się? Z góry bardzo dziękuję. :blush:

Niestety nie, zapomniałem o tym elemencie. :grin: Zainstalowałem natomiast na próbę dodatek deCONZ i szczerze mówiąc nie wiem do czego on jest potrzebny. :stuck_out_tongue_winking_eye:

Tak, to zwykły YAML

bez brokera Z2M nie powinien działać, więc nie wiem jakim cudem cokolwiek działało, no chyba że nie piszesz wszystkiego co ważne.

To w AIS miałeś deConz czy Z2M?

Albo Z2M, albo deConz, albo ZHA, ale nigdy nie odpalaj z jednym koordynatorem naraz więcej niż jeden serwer bramki.
(zresztą nie naraz też nie odpalaj, bo w serwerze Y można namieszać w koordynatorze tak, że nie wstanie z serwerem X)

to te encje maiłeś w deConz? (to nie wiem jak usunąć je bez szkody)

Nie wiem jakim cudem, gdyż nie posiadam aż takiej wiedzy w tym zakresie. Natomiast jak pisałem w opisie wątku, wczytało mi 4 urządzenia bez nazw encji i jak spróbowałem włączyć 1 z nich (bez własnych nazw encji nie wiedziałem co włączę) to zaświeciło się światło w łazience. Także uwierz, że zadziałało.

W AI-Speaker to w ogóle było inaczej zbudowane, bowiem Zigbee2MQTT wbudowali w ustawienia bramki i właśnie stamtąd wszystko się konfigurowało.

Natomiast w integracjach wszystkie urządzenia Zigbee widniały jako MQTT, choć tam nawet nie zaglądałem.

Nie korzystałem z tego w AIS.

configuration.yaml

homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost
serial:
  port: /dev/ttyACM0
  adapter: deconz
frontend:
  port: 8099
advanced:
  log_level: info
  log_output:
    - console
  channel: 11
devices:
  '0xcc86ecfffed39980':
    friendly_name: Balcony
    invert_cover: false
  '0x5c0272fffecaea6b':
    friendly_name: Overtone
  '0xa4c138b983b53ae5':
    friendly_name: Splash
  '0xa4c13894a0c7f711':
    friendly_name: Sweet Lights
  '0xa4c1380ede0edd79':
    friendly_name: Gargle
  '0xa4c1383f466e4f5c':
    friendly_name: Aura Display
  '0x187a3efffefa701d':
    friendly_name: '0x187a3efffefa701d'
  '0xa4c138fe4faf5576':
    friendly_name: Rapid Display
  '0xa4c138ef04f1abfc':
    friendly_name: '0xa4c138ef04f1abfc'
  '0xcc86ecfffebd2b2d':
    friendly_name: Window

coordinator_backup.json

{
  "metadata": {
    "format": "zigpy/open-coordinator-backup",
    "version": 1,
    "source": "zigbee-herdsman@0.13.138",
    "internal": {
      "date": "2021-09-29T16:15:47.996Z",
      "znpVersion": 0
    }
  },
  "stack_specific": {
    "zstack": {}
  },
  "coordinator_ieee": "HIDE",
  "pan_id": "1a62",
  "extended_pan_id": "dddddddddddddddd",
  "nwk_update_id": 0,
  "security_level": 5,
  "channel": 11,
  "channel_mask": [
    11
  ],
  "network_key": {
    "key": "HIDE",
    "sequence_number": 0,
    "frame_counter": 0
  },
  "devices": [
    {
      "nwk_address": "bece",
      "ieee_address": "00158d00019fbf40"
    },
    {
      "nwk_address": "7db7",
      "ieee_address": "14b457fffe48238c"
    }
  ]
}

Z2M nie działa bez brokera o ile mi wiadomo (addon nie powinien w ogóle wystartować), ale tak sączysz informacje, że trudno załąpać o co chodzi.

gdzie wczytało?
w deConz czy w Z2M

odnośnie plików które masz pokazać to potrzebuję widzieć ten automatycznie wygenerowany teraz gdy zainstalowałeś Z2M i go uruchomiłeś

oraz ten stary z backupu


jeśli chodzi o coordinator_backup.json to nie widzę żadnego sensu walki z backupem jeśli to jest to co posiadasz z backupu… tam są tylko 2 urządzenia

odnośnie AIS dzięki za przypomnienie - tam z racji instalacji typu “core” rozwiązanie musiało być inne, ale zarówno broker jak i Z2M były zainstalowane przez twórców softu AIS, to ten sam broker co masz tu w postaci DOdatku i ten sam Z2M tylko instalacjaq w inny sposób więc i konfiguracja musi być nieco inna - dlatego potrzebuję oba pliki stary i nowy

Nie w dodatku tylko w integracji.

W poniższej integracji:
01

Te 2 przesłane pliki były właśnie z backupu.

No właśnie było więcej tylko ten backup AIS jest jakiś niedokładny. Masz przecież w pliku configuration.yaml encje większej ilości urządzeń.

W takim razie dodam go raz jeszcze i doinstaluję Mosquitto i ewentualnie wtedy wrzucę pliki jeżeli samemu nie uda mi się tego ogarnąć. Na chwilę obecną odnoszę wrażenie, że ta próba przywrócenia kopii to skórka za wyprawkę.

Na bramkach AIS broker MQTT jest uruchomiony jako serwis działający w tle, równolegle z innymi usługami, które są podobne w działaniu jak dodatki w HA. Dodatki w HA to usługi/serwisy działające w formie kontenerów Docker. Nie należy tych usług (serwerów) mylić z integracjami w HA, które służą jak nazwa wskazuje, do integrowania, komunikowania HA z daną usługą/serwisem lub sprzętem. W Ha za zarządzanie dodatkowymi usługami serwerowymi w postaci kontenerów odpowiada Supervisor a AIS jest to menadżer procesów PM2 czyli linuksowa aplikacja. Ten program odpowiada na bramce AIS za działanie tak jakby “dodatków”. Poniżej zrzut obrazujący co tam sobie działa w tle oprócz HA Core pod nazwą ais. Jedną z tych usług jest broker MQTT, na bramce to oprogramowanie Mosquitto działające jako pikiet linuxa w postaci emulacji Termux na Androidzie. Jest też Z2M pod nazwą zigbee. Zawiłe to wszystko…, dlatego pewnie nie udało się utrzymać tego projektu w tej postaci.

Co do tego co zadziało się automagicznie na Twojej nowej instancji to pewnie @szopen za chwilę wyjaśni, bo wbudowana w HA integracja Zigbee Home Automation (ZHA) przejęła twój koordynator w postaci ConBee II i utworzyła te encje. Więc zanim zaczniesz teraz próby z Z2M to przeczytaj to:

1 polubienie

Potrzebuję 2 pliki configuration.yaml

Jeden z backupu AIS

A drugi automatycznie wygenerowany po instalacji brokera i Z2M w HA w twojej nowej instalacji HA@HAOS (nie ważne, że nie działa, ważne, że zawiera dane uwierzytelniające dla Dodatku na twojej instalacji - tą magię, która pozwala zwykle działać bez konfigurowania dodatkowych użytkowników).


Druga kwestia jest taka, że backup NVRAM dongla ( coordinator_backup.json) jest uszkodzony (albo nie wkleiłeś całego pliku albo jest on przestarzały tzn. powstał dużo wcześniej niż zbudowałeś całą sieć, więc jak naruszysz NVRAM to będziesz musiał wszystko parować od nowa).

A co do ZHA to @angler już uświadomił Ci, że nie tędy droga… i musisz się pozbyć ZHA zanim narobisz sobie szkód.

No właśnie dzięki wpisowi @angler zrozumiałem w czym leży mój zasadniczy błąd. Mianowicie myślałem, iż odpowiednikiem Zigbee2MQTT z AIS jest Zigbee Home Automation w HAOS i stąd te wszystkie problemy.

Jak ogarnę instalację Zigbee2MQTT na HAOS to wrzucę nowy plik.

No jak pisałem wyżej coś jest nie tak z zawartością pliku coordinator_backup.json, ponieważ za mało tych urządzeń tam jest. Elementy AIS ogólnie nie należą do najświeższych, ale raczej nie są marginalnie stare

Jak wykluczyć uszkodzenie dongla?

Uszkodzenia dongla nie da się wykluczyć - gdy padnie ze starości to będziesz musiał kupić nowy.

Problem z tym plikiem nie wynika z uszkodzenia dongla tylko z tego, że prawdopodobnie nigdy jawnie nie wywoływałeś funkcji backupu w Z2M, a automatycznie jest tworzony chyba tylko przy zamykaniu Z2M (i to w sumie nie wiem od kiedy jest ta funkcjonalność, bo chyba nie “od zawsze”) a kto zamyka Z2M bez uzasadnionego powodu? (no powody to od czasu do czasu są np. update firmware w donglu).

Oczywiście NIE kopiuj tego pliku do nowej instalacji!

A tak myślałem dlatego, że zarówno w dodatkach jak i integracjach nie wyszukiwało mi Zigbee2MQTT. Jak się okazało, aby ujrzeć Z2M w Home Assistant należy w add-ons dodać ręcznie repozytorium:

https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

Ufff, tak to początkowo zrozumiałem.

Czysty configuration.yaml:

homeassistant: true
advanced:
  network_key:
    - 86
    - 199
    - 38
    - 11
    - 32
    - 6
    - 193
    - 206
    - 243
    - 199
    - 181
    - 197
    - 29
    - 182
    - 3
    - 240
  pan_id: 29048
  ext_pan_id:
    - 50
    - 149
    - 67
    - 128
    - 116
    - 66
    - 51
    - 209
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: Seoo0yib8haineaiN7ahgothesohe0aloo4Jzegj7ye0w9ieDoh3zi9uxaphee3X
frontend:
  port: 8099

Tylko póki co nie startuje w ogóle Zigbee2MQTT. Czy login i hasło w Z2M mam skopiować z Mosquitto Broker, aby były takie same?

@szopen Podejrzewam, że nie wiedziałeś o tym skoro nie prosiłeś o jego zawartość, ale w dokumentacji Zigbee2MQTT wyczytałem:

The add-on will create a backup of your configuration.yml within your data path: $DATA_PATH/configuration.yaml.bk. When upgrading, you should use this to fill in the relevant values into your new config, particularly the network key, to avoid breaking your network and having to repair all of your devices. The backup of your configuration is created on add-on startup if no previous backup was found.

W opisie wątku wspomniałem, iż plik configuration.yaml.bak jest zawarty w kopii Zigbee od AIS. Później sprawdzę, czy faktycznie wszystko tam jest. :wink:

Fajnie, że czytasz dokumentację

No pewnie, że nie wiedziałem, że można go prosto użyć - przy migracji nigdy nie używałem tego pliku, bo go w żadnej mojej instalacji nie ma i nie było…
Porównaj sobie zawartość swojego starego configuration.yaml i configuration.yaml.bk pochodzących z AIS (albo wklej do wątku, bo nigdy nie widziałem zawartości pliku .bk), wtedy będziemy wiedzieć czy się różnią istotnie budową…

Klucze muszą być zgodne dlatego sugerowałem skopiowanie łącząc w sprytny sposób zawartości wygenerowanej z zawartością ze starej instalacji. (bo jak zgaduję plik konfiguracyjny z AIS będzie pasował do instalacji Z2M w postaci Dodatku jak pięść do nosa).

Niestety faktycznie ostatnio sposoby konfiguracji Z2M się tak drastycznie zmieniły, że raczej musisz użyć liku .bk zgodnie z dokumentacją…

Nie, nie musisz kopiować go z integracji… (wręcz używanie zastrzeżonego użytkownika homeassistant jest niewłaściwym posunięciem).
Jeśli Mosquitto to Dodatek, to Supervisor sam zarządza poświadczeniami (więc ta sekcja konfiguracji Dodatku pozostaje pusta).

tak naprawdę z nowego pliku była mi potrzebna ta informacja

homeassistant: true
[…]
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: Seoo0yib8haineaiN7ahgothesohe0aloo4Jzegj7ye0w9ieDoh3zi9uxaphee3X
frontend:
  port: 8099

którą trzeba wpasować do starego pliku konfiguracyjnego
(to są poświadczenia wygenerowane przez Supervisora i specyficzne fragmenty konfiguracji charakterystyczne dla HAOS)

ale wydaje się, że będziesz musiał jednak lecieć zgodnie z aktualną dokumentacją, bo struktura plików konfiguracyjnych jest totalnie zmieniana względem tego jak robiłem ostatnio tego rodzaju migrację (z rok czy 2 lata temu…), bo teraz klucze sieci nie są nigdzie dostępne w normalnych plikach konfiguracyjnych…
A Dodatku Z2M nie cofniesz do dostatecznie starej wersji (bo Dodatki nie mają opcji downgrade).

Są identyczne.

Spróbowałem to połączyć w miarę logicznie tzn. stary configuration.yaml do czystego, nowo wygenerowanego. Pamiętając przy tym, aby wartości network_key, pan_id i ext_pan_id skopiować ze starego.

Uzyskany kod:

homeassistant: true
permit_join: false
advanced:
  network_key: 0305000d0f00ad06040600c17090b080
  pan_id: 571a
  ext_pan_id: dddddddddddddddd
  log_level: info
  log_output:
    - console
  channel: 11
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: Seoo0yib8haineaiN7ahgothesohe0aloo4Jzegj7ye0w9ieDoh3zi9uxaphee3X
frontend:
  port: 8099
serial:
  port: /dev/ttyACM0
  adapter: deconz
devices:
  '0xcc86ecfffed39980':
    friendly_name: Balcony
    invert_cover: false
  '0x5c0272fffecaea6b':
    friendly_name: Overtone
  '0xa4c138b983b53ae5':
    friendly_name: Splash
  '0xa4c13894a0c7f711':
    friendly_name: Sweet Lights
  '0xa4c1380ede0edd79':
    friendly_name: Gargle
  '0xa4c1383f466e4f5c':
    friendly_name: Aura Display
  '0x187a3efffefa701d':
    friendly_name: '0x187a3efffefa701d'
  '0xa4c138fe4faf5576':
    friendly_name: Rapid Display
  '0xa4c138ef04f1abfc':
    friendly_name: '0xa4c138ef04f1abfc'
  '0xcc86ecfffebd2b2d':
    friendly_name: Window

Niestety korzystając zarówno z dziewiczo wygenerowanego kodu jak i powyższego Z2M wywala poniższy błąd podczas próby uruchomienia:
z2m

Według mnie problem leży gdzieś indziej. Jakieś sugestie?

to nie jest błąd tylko informacja, że masz poczekać

zajrzyj w logi dodatku tam się dowiemy co się dzieje

W teorii, bowiem gdy ta informacja zapętla się bez końca to wówczas staje się błędem. :wink: W logach czysto w kwestii Z2M.

Bez loga nie ma o czym mówić. właściwie logi by się przydały z obu Dodatków Z2M i Mosquitto, skoro czysto, to pokaż co tam masz.

Home Assistant Core

2024-09-30 20:12:13.829 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration sonoff which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

2024-09-30 20:12:13.830 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration xiaomi_miot which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

2024-09-30 20:12:13.831 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

2024-09-30 20:12:13.831 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration localtuya which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

ALE to jest log HA a nie żadnego z tych Dodatków…

Ustawienia → Dodatki → kafelek Dodatku → menu Dodatku → zakładka Logi

Można te logi też osiągnąć z głównego browsera logów
Ustawienia → System → Logi → w miejscu gdzie zwykle jest kebab menu jest drop down z listą wszystkich serwerów → wybierasz serwer (zazwyczaj jakiś Dodatek) i masz jego logi

Wybacz! :grin: Nie zauważyłem, że logi są podzielone na sekcje. :stuck_out_tongue_closed_eyes:

Widzę już co stanowi błąd. Spróbuję ogarnąć i dam znać. :slightly_smiling_face:

EDIT: W oparciu o logi przekonwertowałem wartości network_key, pan_id i ext_pan_id na tablice dziesiętne, aby spełniały obecne kryteria dodatku Zigbee2MQT.

Prawidłowa konfiguracja wygląda tak:

homeassistant: true
permit_join: false
advanced:
  network_key:
    - 1
    - 3
    - 5
    - 7
    - 9
    - 11
    - 13
    - 15
    - 0
    - 2
    - 4
    - 6
    - 8
    - 10
    - 12
    - 13
  pan_id: 6654
  ext_pan_id:
    - 0x00
    - 0x01
    - 0x02
    - 0x03
    - 0x04
    - 0x05
    - 0x06
    - 0x07
  log_level: info
  log_output:
    - console
  channel: 11
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: Seoo0yib8haineaiN7ahgothesohe0aloo4Jzegj7ye0w9ieDoh3zi9uxaphee3X
frontend:
  port: 8099
serial:
  port: /dev/ttyACM0
  adapter: deconz
devices:
  '0xcc86ecfffed39980':
    friendly_name: Balcony
    invert_cover: false
  '0x5c0272fffecaea6b':
    friendly_name: Overtone
  '0xa4c138b983b53ae5':
    friendly_name: Splash
  '0xa4c13894a0c7f711':
    friendly_name: Sweet Lights
  '0xa4c1380ede0edd79':
    friendly_name: Gargle
  '0xa4c1383f466e4f5c':
    friendly_name: Aura Display
  '0x187a3efffefa701d':
    friendly_name: '0x187a3efffefa701d'
  '0xa4c138fe4faf5576':
    friendly_name: Rapid Display
  '0xa4c138ef04f1abfc':
    friendly_name: '0xa4c138ef04f1abfc'
  '0xcc86ecfffebd2b2d':
    friendly_name: Window

Obecnie Z2M się uruchamia bez problemu, lecz brak przywróconych urządzeń. :confused: