С тех пор как вышел координатор Zigbee и Thread Home Assistant Connect ZBT-2, люди постоянно спрашивают, что на самом деле нужно для миграции с одного адаптера на другой. Что требуется, какие риски существуют и можно ли это сделать без повторного сопряжения устройств. Ведь кому захочется ходить по всему дому и сбрасывать сотню Zigbee-устройств, чтобы добавить их на новый координатор? Никому.
В этой статье рассматриваются вопросы, которые могут возникнуть при переносе существующей сети Zigbee на новый координатор. Здесь четко изложены риски, требования, которые необходимо соблюсти, и пошаговое руководство по всему процессу.
Зачем нужна миграция и для кого эта статья?
Миграция Zigbee-сети может показаться пугающей, особенно если от нее зависят свет, датчики, выключатели и автоматизации во всем доме. Хорошая новость в том, что переход на новый координатор не обязательно означает начало с нуля. Но зачем вообще мигрировать?
- Вы хотите обновиться со старого Zigbee-координатора на более новую и мощную модель
- Вам нужна лучшая дальность связи, стабильность или больший лимит подключаемых устройств
- У вашего текущего адаптера есть аппаратные проблемы, помехи или древняя прошивка
- Вы переходите с ZHA на Zigbee2MQTT или наоборот
- Вы пересобираете свою установку Home Assistant и хотите сохранить все сопряженные Zigbee-устройства
- Вы хотите избежать повторного сопряжения десятков или даже сотен устройств по всему дому
Это руководство фокусируется исключительно на миграции на новый координатор без повторного сопряжения устройств. Если требуется повторное сопряжение, процесс прост и почти не требует объяснений: обновите путь к координатору в конфигурации и начните добавлять устройства по одному.
Поддерживаемые координаторы и Zigbee-чипы
Если и ваш старый, и новый координаторы используют чип, поддерживающий функции резервного копирования и восстановления в Zigbee2MQTT, миграция проходит довольно гладко. На данный момент полное резервное копирование и восстановление официально поддерживается только для координаторов на базе zstack (Texas Instruments) и ember (Silicon Labs). Это включает переход между разными моделями внутри одного семейства, например, с EFR32MG21 на EFR32MG24 или с CC2538 на CC2652P.
При миграции между разными семействами чипов, такими как zstack на ember или ember на zstack, процесс официально не поддерживается, но вы все равно можете (и, скорее всего, сможете) добиться успеха. В большинстве случаев устройства повторно подключаются к новой сети без повторного сопряжения и работают без проблем. Даже если некоторые устройства придется переподключить вручную, большинство мигрирует успешно.
Миграция через бэкап и восстановление не поддерживается для других типов адаптеров в Zigbee2MQTT, включая conbee, ezsp, zboss и zigate. Эти адаптеры не могут импортировать или восстанавливать файлы бэкапа координатора, поэтому Zigbee2MQTT не может выполнить полноценную миграцию с ними. Вы все еще можете попробовать использовать этот метод, но гарантий нет.
Таким образом, данное руководство для Zigbee2MQTT ориентировано только на миграцию поддерживаемых адаптеров, включая ember > ember, ember > zstack, zstack > zstack и zstack > ember. ZHA поддерживает миграцию между всеми официально поддерживаемыми типами радиомодулей, позволяя переносить существующую сеть с одного адаптера на другой, если оба адаптера совместимы с ZHA.
Для полной ясности приведена таблица популярных Zigbee-координаторов и используемых в них чипов:
Примечание: ezsp — это устаревший драйвер для адаптеров Silicon Labs. Если вы сейчас используете ezsp, в идеале вам следует сначала перевести конфигурацию на новый драйвер ember, чтобы рассматривать миграцию как Ember-to-Ember, что работает вопреки официальному статусу «не поддерживается».
Миграция Zigbee2MQTT на новый координатор
При переходе на новый координатор с поддержкой функции бэкапа, Zigbee2MQTT может восстановить сеть целиком без повторного сопряжения. Некоторые устройства ищут координатор по его IEEE-адресу, и этот процесс дает сбой при смене адреса координатора. Поэтому ваш существующий IEEE-адрес необходимо скопировать на новый координатор. Адаптеры zstack и ember поддерживают полное резервное копирование и восстановление, что позволяет перенести IEEE-адрес, сетевой ключ и таблицу маршрутизации напрямую на новое оборудование.
Следуйте этой процедуре для миграции Zigbee2MQTT на новый координатор:
- Обновите Zigbee2MQTT до последней версии
Для миграции требуется актуальная версия Z2M, чтобы обеспечить полную совместимость бэкапа. - Создайте полную резервную копию Zigbee2MQTT на всякий случай
Сохраните следующие файлы из директории данных Zigbee2MQTT:
coordinator_backup.json, database.db, configuration.yaml - Полностью остановите Zigbee2MQTT
Это предотвратит запись данных во время экспорта бэкапа или копирования IEEE-адреса. - Скопируйте IEEE-адрес со старого адаптера на новый (ЧИТАЙТЕ НИЖЕ)
НЕ ПРОПУСКАЙТЕ ЭТОТ ШАГ: Это гарантирует, что ваша сеть идентифицирует новое оборудование как тот же самый координатор. - Подключите новый координатор к вашему серверу
Если это USB-координатор, подсоедините его к серверу. Если это сетевой координатор, убедитесь, что он запущен со статическим IP-адресом. Если вы используете Home Assistant или Zigbee2MQTT в виртуальной машине (Proxmox, ESXi) или Docker, обновите настройки проброса USB или маппинг томов. - Обновите конфигурацию Zigbee2MQTT
Убедитесь, что pan_id и ext_pan_id в вашем конфигурационном файле в точности совпадают с прежними значениями. Если вы копируете данные в чистую установку, эти значения иногда сбрасываются до дефолтных, что помешает устройствам подключиться. Наконец, обновите секцию serial в соответствии с вашим новым координатором:
serial:
port: /dev/ttyUSB_NEW_COORDINATOR #Скорректируйте путь и установите тип адаптера
- Запустите Zigbee2MQTT
- Готово!
Когда новый адрес совпадет со старым, ваша Zigbee-сеть загрузится с использованием нового координатора. Потребуется время для стабилизации, и данные LQI поначалу могут быть неточными. Будьте терпеливы, дайте сети 24 часа на перестроение маршрутов. Чтобы ускорить процесс, пройдитесь по дому и вручную разбудите спящие устройства на батарейках (нажмите физическую кнопку на датчике один раз). Это заставит их немедленно отправить запрос данных (Data Request), помогая им осознать смену сетевого пути, не дожидаясь планового выхода на связь.
Копирование IEEE-адреса на новый координатор
Откройте Zigbee2MQTT, перейдите в Settings > About, найдите раздел Coordinator и сохраните значение, например 0xf074bffffe091703. Кроме того, можно зайти в папку zigbee2mqtt и открыть файл database.db. Адрес координатора находится в первой строке сразу после "ieeeAddr". Вот скриншот из нового интерфейса Windfront для Zigbee2MQTT:
Сейчас большинство сетевых координаторов позволяют изменить IEEE-адрес напрямую через веб-панель. Например, у PoE-координаторов SMLight есть настройка в меню Z2M and ZHA, в разделе Advanced: Adapter IEEE Change Setting. Вы просто вставляете новый адрес и нажимаете Write IEEE Address. Убедитесь, что координатор не используется в этот момент, а Zigbee2MQTT/ZHA полностью выключены.
Если у вас только USB-координатор, вам понадобится инструмент для прошивки. В зависимости от производителя чипа (Texas Instruments или Silicon Labs) у вас есть несколько инструментов для смены IEEE-адреса. Для чипов Silicon Labs мне нравится использовать Universal Silicon Labs Flasher. Для чипов Texas Instruments я рекомендую ZigStar Multi Tool. Вот как сменить IEEE в каждом из них:
Universal Silicon Labs Flasher
- Установите инструмент Universal Silicon Labs Flasher
Установите через терминал или PowerShell:
$ pip install universal-silabs-flasher
- Подключите новый адаптер к ПК
Найдите правильный серийный порт, например:Linux: /dev/ttyACM0, /dev/ttyUSB0 и т.д.
macOS: /dev/tty.usbmodemXXXX или /dev/tty.usbserialXXXX
Windows: COM3, COM4 и т.д. - Запустите следующую команду, заменив IEEE и порт:Замените /dev/ttyACM0 на путь к вашему новому координатору
Замените f074bffffe091703 на IEEE-адрес вашего старого координатора.
ВАЖНО: Удалите префикс (0x) и двоеточия (:) из вашего IEEE.
universal-silabs-flasher --device /dev/ttyACM0 write-ieee --ieee f074bffffe091703
Если процесс не удался, попробуйте добавить --force в конце команды. Следите за логами для подтверждения успеха. Если текущий IEEE-адрес устройства уже совпадает с новым, команда не будет перезаписывать его без необходимости. Готово!
Zigstar Multitool
- Скачайте и запустите ZigStar Multitool
Установите приложение для вашей ОС и откройте его. - Подключите адаптер и войдите в режим загрузчика (BSL)
Обратитесь к руководству вашего адаптера, так как метод зависит от модели. - Нажмите иконку обновления и выберите ваш адаптер
Инструмент должен обнаружить серийное устройство, как только оно перейдет в режим BSL. - Введите IEEE-адрес старого координатора
Заполните поле «IEEE» адресом вашего старого координатора. Префикс 0x необязателен, двоеточия использовать не нужно. - Включите «Write IEEE» и запишите адрес
Отметьте чекбокс «Write IEEE» и нажмите Write IEEE для прошивки адреса. - После этого перепрошейте прошивку
Этот шаг обязателен. Координатор не будет использовать новый IEEE-адрес, пока в него не будет повторно записана корректная прошивка. Используйте тот же инструмент или фирменный прошивальщик производителя, например Sonoff.
Если ZigStar Multitool не обнаруживает адаптер, дважды проверьте, что он находится в режиме BSL и никакое другое ПО (например, Zigbee2MQTT или Home Assistant) не использует этот порт. Попробуйте переподключить адаптер и снова нажать кнопку обновления.
Миграция ZHA на новый координатор
В ZHA встроен мастер миграции, который делает перенос сети на новый координатор очень простым. Мастер автоматически создает резервную копию данных сети, переносит сетевой ключ, сохраняет привязки устройств и, при необходимости, записывает IEEE-адрес старого координатора в новый адаптер.
В процессе он также восстанавливает важные метаданные сети, чтобы устройства могли вернуться в сеть без повторного сопряжения. В ZHA этот процесс работает как для миграции между одинаковыми чипами, так и, в большинстве случаев, между разными производителями чипов, если новый адаптер полностью поддерживается ZHA. Имейте в виду, что при миграции ZHA между разными чипами абсолютных гарантий нет, и некоторые устройства может потребоваться переподключить.
Следуйте этой процедуре для миграции ZHA на новый координатор:
- Проверьте предварительные условия и сделайте бэкап
Создайте полную резервную копию Home Assistant перед миграцией. Убедитесь, что старый адаптер используется только в ZHA. - Подключите новый координатор к серверу HA
Подключите новый адаптер через USB-удлинитель для уменьшения помех. Если используете сетевой координатор, установите ему статический IP в роутере. - Перейдите в Настройки > Устройства и службы, откройте ZHA и нажмите «Настроить» (шестеренка)
- В разделе Настройки сети выберите Миграция адаптера.
ZHA автоматически создаст резервную копию вашей Zigbee-сети. - Выберите Мигрировать на новый адаптер
- Выберите новый Zigbee-адаптер из списка портов.
Для сетевых адаптеров выберите Ввести вручную и укажите TCP-адрес и порт. - Выберите Мигрировать автоматически для восстановления бэкапа.
ZHA восстановит бэкап и запишет старый IEEE-адрес в новый адаптер (если это поддерживается).
В редких случаях, когда новый координатор требует подтверждения перезаписи адреса, вы увидите запрос Overwrite Radio IEEE Address. Введите новый IEEE, отметьте Permanently replace the radio IEEE address и нажмите Submit. - Дождитесь возвращения устройств
Устройства автоматически вернутся в сеть со временем (это может занять до часа). - Извлеките старый координатор
- Готово.
После того как сеть снова заработает, дайте ей время на загрузку и стабилизацию. Устройства подключатся сами. Вы можете ускорить процесс, перезагрузив питание ваших Zigbee-роутеров, питающихся от сети.
Заключение
Миграция Zigbee-сети может показаться сложной задачей, но при правильной подготовке и понимании возможностей вашего чипа процесс проходит гораздо легче, чем многие ожидают. Независимо от того, используете ли вы Zigbee2MQTT или ZHA, обе платформы предоставляют надежные механизмы для переноса сети без необходимости бегать по дому и заново подключать каждое устройство.
Для Zigbee2MQTT успех миграции полностью зависит от использования адаптеров на базе поддерживаемых семейств, таких как Texas Instruments zstack или Silicon Labs ember. При соблюдении этих условий копирования IEEE-адреса и восстановления бэкапа достаточно для бесшовной работы той же Zigbee-сети на новом "железе". ZHA предлагает еще больше гибкости, предоставляя встроенный мастер миграции, который делает всё автоматически, даже при смене производителя чипа.
Тем не менее, ни один метод миграции не гарантирует идеального результата на 100%. Zigbee-сети сильно различаются по размеру, типам устройств и качеству прошивок. Даже при правильном выполнении всех шагов вам может понадобиться вручную переподключить несколько устройств, особенно датчики на батарейках, старые девайсы или те, что работали нестабильно еще до миграции. Также возможно, что некоторые устройства временно пропадут или потребуют сброса настроек.