Migracja z ZHA do Z2M bez ponownego parowania - Poradnik

Hej,

Potrzebowałem dla siebie i postanowiłem się podzielić, informacja jak zmigrować ZHA do Z2M bez potrzeby parowania na nowo wszystkich urządzeń.

Co potrzebujemy:

  1. Backup HA - będziemy potrzebować kilka plików z niego

Kroki:

  1. Instalujemy addon Zigbee2Mqtt ( GitHub - zigbee2mqtt/hassio-zigbee2mqtt: Official Zigbee2MQTT Home Assistant add-on )
    2. Nie uruchamiamy go jeszcze !
  2. Wyłączamy ZHA ( wystarczy disable ) musimy zwolnic socket koordynatora
  3. Wchodzimy na przygotowaną przeze mnie prostą stronę w celu wygenerowania konfiguracji dla Z2M: Generator konfiguracji Z2M
  4. Podajemy zigbee.db ( backup.zip → homeassistant → data → zigbee.db )
  5. Podajemy plik z naszymi urządzeniami core.device_registry ( backup.zip → homeassistant → data → .storage )
  6. Dostajemy wsad do pliku configuration.yaml który musimy stworzyć w katalogu, w którym mamy zigbee2mqtt ( u mnie: /config/zigbee2mqtt-2 )

    Do pliku od razu można dodać:
version: 4
homeassistant:
  enabled: true
mqtt:
  server: mqtt://core-mosquitto:1883
  user:
  password:
  base_topic: zigbee2mqtt
serial:
  port: /dev/ttyUSB0
  baudrate: 115200
  adapter: ember

  1. Uruchamiamy addona Zigbee2MQTT, patrzymy w logach czy wszystko wystartowało
  2. Wyłączamy addona Zigbee2MQTT
  3. Dzięki tej operacji Z2M stworzyło już niezbędne pliki, mianowicie plik bazy danych w katalogu: /config/zigbee2mqtt-2 mamy plik database.db - ściągamy go
  4. Na stronie: Generator konfiguracji Z2M w kolejnym kroku podaje plik bazy danych.
  5. Otrzymany na wyjściu plik wgrywamy do katalogu /config/zigbee2mqtt-2 zastępując nim oryginalny
  6. Odpalamy Zigbee2MQTT
  7. Jak wszystko mamy odpalone powinniśmy mieć listę swoich wszystkich urządzeń (na razie są nierozpoznane )
  8. Po kolei zaczynając od routerów klikamy interview.

Ciszymy się migracją z ZHA do Z2M bez konieczności parowania urządzeń na nowo :slight_smile:

U mnie wszystko przebiegło sprawnie i każde urządzenie mam rozpoznane i działa poprawnie:

W razie pytań i wątpliwości w miarę swojej wiedzy mogę pomóc, stronę i skrypt w miarę czasu pewnie jakoś zupgraduję :wink:

13 polubień

Niestety przy próbie wygenerowania YAML wyskakuje błąd
“Wystąpił błąd: TypeError: can’t access property “forEach”, registryData.data.devices is undefined”

Mój błąd, zły plik wgrałem :slight_smile:

nie mogę znaleźć pliku core.device_registry - wchodzę w file editor > klikam w ikonę Browse Filesystem przewijam w dół i mam plik zigbee.db natomiast nie mam katalogu .storage ani pliku core.device_registry.
W nowym HA jest opcja migracji ZHA i można utworzyć kopię zapasową z rozszerzeniem json ale ten plik wrzucony w miejsce “Wybierz plik core.device_registry (JSON):” wywala błąd więc pewnie jest to zły plik.

Home Assistant OS

  • Core2026.1.2
  • Supervisor2026.01.1
  • Operating System16.3
  • Interfejs użytkownika 20260107.2

Wynika to z ograniczenia AddOn, którego używasz do przeglądania katalogów (BTW teraz to jest Apss/aplikacja).

Nie na darmo domyślny File editor ma takie ograniczenia. Chodzi o to aby utrudnić psucie systemu. Na przykład ukryte katalogi pozostają ukryte (w systemach Unixowych to te z kropeczką na początku nazwy)

Jeśli chcesz dostać się do katalogów ukrytych i głębiej, to musisz użyć innego narzędzia. Ja preferuję Filebrowser:

1 polubienie

Nie musi, można File editor skonfigurować tak, by można było wyjść poza /config (czy tam /homeassistant) oraz zobaczyć coś ukrytego.


Jakkolwiek

  1. w zupełności się zgadzam - są do tego lepsze narzędzia
  2. instrukcja się chyba w ogóle nie odwołuje do plików, które HA ma pootwierane, tylko operujemy na ich kopii wygrzebanej z backupu (nie ryzykując uszkodzeniem instalacji HA)

Super - dzięki za podpowiedź. Faktycznie znacznie czytelniejszy jest ten filebrowser.
U mnie po wielkich trudach w końcu udało się przenieść urządzenia - wprawdzie termometry musiałem parować na nowo ale powiedzmy, że to raptem dwa urządzenia więc ok. Co do poradnika to w moim przypadku kilka zmian/problemów - być może dla kogoś kto mocno siedzi w temacie linxu/HA to są oczywiste rzeczy ale dla mnie nie były więc się podzielę dla potomnych.

Po zainstalowaniu Z2M (nie uruchamianiu) - brak katalogu zigbee2mqtt - ścieżka config/zigbee2mqtt taka jak na załączonym obrazku nie istnieje do momentu odpalenia dodatku Z2M (nie wiem dla czego). Z pozycji konfiguracji dodatku Z2M przechodząc w tryb edycji YAML nie możemy dołożyć wpisu advanced bo po zapisaniu i tak znika cały wpis. Zatem moim zdaniem trzeba po zainstalowaniu Z2M odpalić go na chwilę aby faktycznie utworzył się katalog i będzie on dostępny w (Domek) > homeassistant > zigbee2mqtt - tu będzie utworzony plik configuration.yaml - ten plik da się edytować i można do niego dokleić wygenerowany wpis z powyższego poradnika.

Po uruchomienu dodatku Z2M musimy przejść do jego “interfejsu użytkownika” aby zatwierdzić poprawność danch i dopiero dodatek się uruchamia i tworzy odpowiednie wpisy. Kliknięcie Uruchom z pozycji “dodatki lub w nowej wersji apps” nie powoduje pełnego uruchmienia Z2M i tym samym nie generuje pliku bazy danych.

Po przerzuceniu wszystkich urządzeń z ZHA na Z2M (przynajmniej u mnie) urządzenia działają poprawnie ale wszystkie automatyzacje związane z urządzeniami na ZHA przestały działać :frowning: HA nadal widzi wpis związany z ZHA mimo iż “nazwy” przeszły poprawnie.
Szkoda - bo po paru godzinach walki z przeniesieniem urządzeń opadły mi ręce jak zobaczyłem że żadna automatyzacja nie działa - wniosek jest taki że należy przywrócić backup z działającym ZHA i zapomnieć o przesiadce na Z2M jeśli mamy zrobione automatyzacje.

Bo jest tworzona dynamicznie po uruchomieniu Z2M.

Takie same encje jeżeli już istnieją nie zostaną nadpisane mogą zostać dodane nowe z taką samą nazwą ale z końcówką coś_tam_2 . Aby to zadziałało nazwy urządzeń w config…yaml Z2M

devices:
  '0x847127fffe179ca1':
    friendly_name: pokoj_z_tw
  '0x54ef441000033db8':
    friendly_name: czujnik_z_swiatla_salon

Muszą mieć takie same nazwy jak te które wykorzystujesz w Automatyzacjach. Nie wiem czy Adres IEEE po przeniesieniu z ZHA jest taki sam jak w Z2M.

Adres IEEE jest “przyspawany” do sprzętu, więc musi być taki sam.
Automatyzacje w których wykorzystano urządzenia zamiast encji najprawdopodobniej nie będą działać, bo identyfikator urządzenia będzie inny.
(Ostrzeżenia, aby nie używać urządzeń tylko konkretnych encji, są na forach zbyt mało eksponowane, mało kto o tym wspomina… a w edytorze GUI każdy początkujący na to nie zwraca uwagi, bo użycie urządzenia jest jakby bardziej oczywiste, a potem bagno, bo i kod nieczytelny i problem przy wymianie urządzeń na inne.)

Tak to prawda - encje dla początkujących to czarna magia - pamiętam jak sam nie mogłem tego pojąć co to są te encje i dla czego nikt tego nie wyjaśnia w prosty sposób. HA w starszy wersjach wręcz (takie miałem wrażenie) ukrywa encje przy automatyzacji i zachęca do wykorzystywania urządzeń - myślę że problemem jest nazewnictwo które dla osób początkujących i nie obytych z HA i środowiskiem Linuxa jest niezrozumiałe - podobnie jak Dodatki czy HACS - teraz ktoś poszedł po rozum do głowy o zaczyna dbać o to by HA było bardziej przyjazne dla użytkownika.

OFF_TOPIC

Tak była dyskusja od dawna o tym czy zostawić nazwę Dodatki (add-ons) - taka nazwa na coś podobnego funkcjonalnie istnieje tylko w jednym systemie ID starszym od HA (i wydaje mi się, że to zapożyczenie właśnie z niego), po czym Frenck dość autorytarnie podjął decyzję, żeby to zmienić na Aplikacje (Apps), niech i tak będzie, szkoda, że dopiero po tylu latach (ale nie sądzę, że to jakoś bardzo pomoże, bo nowi użytkownicy nie wgłębiają się jak to wszystko działa, a jest to w sumie też niełatwe do wytłumaczenia, w każdym razie nie w jednym zdaniu…).

Nazwa Aplikacje/Apps jest zrozumiała chyba bardziej (a w każdym razie liczę, że nie będzie już tak mylona z komponentami niestandardowymi - to swoją drogą też niezbyt udane nazewnictwo, ale skoro składnikiem HA są komonenty standardowe…).

Tylko tych zmian nazewnictwa było ostatnimi miesiącami za dużo - ktoś mnie niedawno pytał gdzie jest menu Naprawy, a ono się teraz nazywa Problemy, kontener/Dodatek/Aplikacja ESPHome też zaliczyła kilka zmian nazwy…
Główne menu niemal co miesiąc wygląda inaczej (nie twierdzę, że zmiany idą w złym kierunku, ale istotnie jeśli ktoś się chce oprzeć na jakimkolwiek nawet niezbyt starym tutorialu, to zazwyczaj choć jeden element jest inny.

Nikt nie będzie teraz zmieniał treści na forach by odzwierciedlały pozmieniane nazwy.


A wracając do tematu - dopasowałeś sobie nazwy encji na pasujące do automatyzacji?

Nie - odpuściłem - wróciłem na ZHA, które działa, jest proste i czytelne a Ja jestem zwolennikiem prostoty. Zmiana na Z2A była tylko w celu zaadoptowania nowych łączników światła które przyjechały z Ali i były rozpoznawane przez ZHA ale nie było encji - niestety w Z2M też nie widać encji więc cały zabieg okazał się straszną stratą czasu. Switche z Ali mają teraz moduł Zigbee Tuya TS0726 i póki co nie ma do niego quirk - ani na ZHA ani na Z2M i trzeba rzeźbić samemu.

1 polubienie

Przed zakupem warto przeczytać listę (jeżeli to Z2M) obsługiwanych urządzeń https://www.zigbee2mqtt.io/supported-devices/ jeżeli to mało popularny produkt to aktualizacji sterownika można się doczekać jak już będzie można robić kilka rzeczy na raz za jednym kichnięciem.

owszem można - na alli… opis był Tuya Zigbee uznałem, że działa jeśli mam SLZB-06M bo do tej pory wszystkie urządzenia działały - na ali… nie podają jaki moduł ktoś zastosował wewnątrz przełączników i człowiek dowiaduje się o tym dopiero w momencie identyfikacji urządzenia. Oczywiście można napisać do sprzedawcy, przeprowadzić wywiad, przeczytać opinie, przeszukać fora i darknet - ale to tylko 60 zł. Człowiek uczy się całe życie (jak A.D.) - migracja ZHA do Z2M też mnie czegoś nauczyła.

Niestety do tej firmy i ich Brandów (Tuya) trzeba mieć ograniczone zaufanie, na pudełkach jeden i ten sam produkt a w środku ograniczone wersje firmware.

1 polubienie