Zigbee2mqtt v1 в Bullseye

Добрый день!

Провел 48ч в лабиринте по форуму, документации и интернету и так и не понял, какие есть варианты ВОЗВРАЩЕНИЯ работоспособности системы (а именно модуля ZIGBEE2MQTT v.1) после обновления до wb-2304 + Bullseye. Факт того, что он НЕСОВМЕСТИМ с моим оборудованием вычитал на форуме(!) через сутки только после потери работоспособности, это никуда не годится!

Варианты с покупкой ненужного мне “нового” модуля, который делает то же самое, только будет еще 2 недели идти и стоить каких-то денег не подходит. Вариант с заказом кабеля с Али за 2 месяца + сутки разобраться с прошивкой устройства тоже так себе вариант.

Получается (1й вопрос): остается только откатиться на старую версию wb-2207 (и жить на ней вечно), я правильно понял?

И 2й вопрос (если ответ на 1й да и никаких других вариантов, кроме как заморозить обновления ВСЕЙ системы из-за одного модуля нет, что мягко говоря странно) - как это сделать? Есть внятная инструкция по откату с 2304 на 2207? Оно включает откат операционки или как?

П.С. Жестоко боролся с нехваткой места при обновлении системы, на форуме об этом много упоминаний, но нормального решения так и нет, все это не добавляет энтузиазма, конечно.

Добрый день.

Вот тут: Подключение устройств Zigbee к контроллеру Wiren Board — Wiren Board

И это никак не отменяет Docker

Пакет для прошивки ставится в одну команду. Еще одна - собственно прошивка.
Ну и можно модуль отправит к нам в офис - перепрошьем, стоимость 300 рублей за операцию+доставка.

Это один из вариантов. Например: Zigbee не работает после апдейта на bullseye - #13 от пользователя BrainRoot
Если не поддерживается из коробки - то можно собрать и самостоятельно…

Сбросом. Только factory reset. И обновление ПО - совсем не обязательная процедура.

Решений - масса. Например установка в тот же Docker. Установка в симлинки.1
Для WB7 - есть и расширенный вдвое корневой раздел, как раз с 2304.

Вот тут

Да, только у меня уже все было установлено и я проходил через процедуру обновления. Вы же не ожидаете, что при каждом обновлении необходимо заново прочитать все инструкции по установке на предмет выявления ЛОМАЮЩИХ текущую систему изменений. Данную проверку логично было бы делать перед обновлением в автоматическом режиме, или хотя бы где-то иметь release notes, где описано все, что ломает очередной релиз со ссылкой на него и предупреждением. В моем случае были и другие вещи, как то: ВСЕ выключатели (на MR6C) перестали работать, т.к. логика выключателей по умолчанию поменялась на переключатель с фиксацией, полностью сломались все скрипты (правила) для WB-MRGBW-D, потому что там вообще все регистры поменялись (но там хотя бы было уведомление о несовместимых изменениях, хоть и никак не было описано, что именно там несовместимого во время обновления). Но это хотя бы все решаемо, в отличие от ZIGBEE модуля.

И это никак не отменяет Docker

А можно расшифровать (что это означает в плане установки на WB)? В списке “вариантов” здесь, например, такого не было.

Пакет для прошивки ставится в одну команду. Еще одна - собственно прошивка.
Ну и можно модуль отправит к нам в офис - перепрошьем, стоимость 300 рублей за операцию+доставка.

Если делал это 100 раз , то да, а если 0 раз (даже, если делал другое подобное), то всплывет еще 10 разных проблем по ходу (в т.ч. и по несвязанным с задачей причинам) и времени на это уйдет уйма, вам, как инженеру со стажем, думаю, это хорошо известно. Начиная с отключения и разборки контроллера “вживленного” в битком набитый щит. Но если больше вариантов не будет, воспользуюсь этой опцией , спасибо.

Это один из вариантов

Очень плохой это вариант, давайте считать это за не вариант - не обновляться больше никогда.

Если не поддерживается из коробки - то можно собрать и самостоятельно…

Да, вроде и так тут сделай сам такой хардкорный. Есть инструкция по следующему уровню хардкора, т.е. по "собрать самостоятельно? Нашел такую - но тут не расшифровано, что значит “альтернативный”, в каких случаях он нужен, а также какую конкретно мне конкретно по моим парметрам брать: контроллер WB6.7.2E 457, релиз wb-2304, ядро 5.10.35-wb133+wb101, модуль WBE2R-R-ZIGBEE v.1

Сбросом. Только factory reset. И обновление ПО - совсем не обязательная процедура.

Factory reset - это который через USB только делается? И потом надо восстанавливать все свои конфиги… (
Обновление ПО необязательная - лучше и не скажешь. Но только если в ПО нет багов, если у вас нет, то больше и желать нечего, это лучше, чем у всех остальных, которые постоянно что-то исправляют и обновляют.

Решений - масса
А можно ссылок на массу проработанных решений? Я видел только финт с выносом модулей npm и замену на симлинки. У меня WB6.7, если что. Надеюсь, его жизненный цикл не 2-3 года. То что исправили в WB7 молодцы, это был явный косяк спеки WB6, только я ж не буду из-за этого контроллер менять.

Итого:

  1. Вопросы выше
  2. Чтобы не разбирать контроллер и не перепрошивать модуль и не застревать на старой версии - какой на ваш вкус самый надежный и простой способ? Докер? Сборка с исходников? Есть инструкции на обе эти темы применимо к моей конфигурации? Т.е. каким там версии чего брать и в какой последовательности что ставить? Чтоб не разбираться потом с еще более экзотическими проблемами кривой установки.

Перед обновлением producton сервера, например - я не только читаю про все обновления, планируемые к установке но и прикидываю действия на случай “все пойдет не так”. Бэкап всего, план отката, время простоя на случай необходимости отката…

Вот прямо в release notes 2304: WB-2304 — Wiren Board
И даже скриншот:


Перед обновлением все ж неплохо пробежать по значимому, объем статьи невелик.

Если параллельно с обновлением ПО делать обновление прошивок, при этом bootloader старый без сохранения - да, но настройки в модули реле (не диммера, так как тот по сути новое устройство с новым шаблоном) загрузятся из setup секции wb-mqtt-serial.conf.

Docker позволяет хоть несколько версий параллельно иметь. Естественно для монопольного доступа к аппаратным ресурсам запускать поочередно.
А можно и параллельно, если, в случае zigbee2mqtt два модeля или один из них сетевой.
Как плюс - крайне удобная оркестрация.

Лучше на сайте разработчика описано:

Ну и естественно, нужно хотя бы поверхностное понимание всех технологий. “Инструкция” - не просто набор волшебных команд, которые сработают всегда одинаково (вот за это и не люблю nodejs).

Предпочитаю докер. Он отлично документирован, удобен.
Ну и позволяет работатьс целыми комплексами приложений так же как с файлами, не сложнее.
для сборки из исходников - советую собирать на компьютере, так быстрее.

Итак…

  1. Установил Docker по статье - Установка Docker на контроллер Wiren Board — Wiren Board
  2. Кончилось к чертям ВСЕ место в /
  3. Сделал FACTORYRESET на 2304
    <Тут было еще несколько попыток перекинуть разное на /mnt/data и пара Factory Reset-ов, как следствие, где плохо определялись флешки, как тут уже случалось у людей на форуме, в итоге методом перебора флешек таки удалось восстановиться, как следствие - было потрачено около 12ч времени, чтобы вернуться в точку 0>

Итого, я остановился на чистой установке 2304, настроил все, что работало раньше (кроме Zigbee) и теперь мне осталось восстановить только его.

Вопросы:

  1. Сейчас по месту такая картина. Установка Докера съест свободные 300+Мб полностью, куда и что мне растащить, чтобы этого не произошло?
    image

image

  1. Я правильно понимаю, что в Докер мне нужно ставить версию zigbee2mqtt 1.18.0 в точности?

  2. Я могу взять готовый образ 1.18 здесь и скачать его так: docker pull koenkk/zigbee2mqtt:1.18.0?

  3. Команда запуска контейнера (из доков) требует какого-то устройства в параметре device, что мне там нужно указать, если модуль Zigbee у меня висит на /dev/ttyMOD1 ?

docker run
–name zigbee2mqtt
–restart=unless-stopped
–device=/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00:/dev/ttyMOD1
-p 8080:8080
-v $(pwd)/data:/app/data
-v /run/udev:/run/udev:ro
-e TZ=Europe/Moscow
koenkk/zigbee2mqtt:1.18.0

  1. Немного наперед - а как Докер узнает, куда я сложил конфиг для Z2M?

Вообще, если у вас есть референс скрипт на скачивание и запуск образа, было бы очень кстати, спасибо.

Если контроллер WB7 - я бы перешел на testing и увеличил просто количество места в корне.

Собственно это как раз преимушество - можно иметь и запускать и несколько версий, естественно по очереди. Но - да.

Да, именно порт.


Но можете указать и статичную, конечно.

Если контроллер WB7 - я бы перешел на testing

Ох, я же писал, что контроллер 6.7 выше несколько раз. В общем, не вариант.

Да, именно порт.

Не понял, параметр выглядит так:
–device=/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00:/dev/ttyMOD1

Что это за часть слева от двоеточия? Ее так и оставлять?

И вы не ответили на 1й вопрос выше относительно того, как мне поставить Докер, который на фабричной прошивке 2304 съедает место до 0. Есть список того, что можно безболезненно перенести, чтоб освободить те же 300Мб или около того перед установкой Докер?

Здравствуйте!

Тут такое дело… Оказывается, что мы добавили в wb-2304 zigbee2mqtt-1.18.1, которая работает с первой версией модуля со старой прошивкой, поставить его можно командой:

apt install zigbee2mqtt-1.18.1

Про это забыли добавить в документацию, а также оповестить техподдержку — это наша большая оплошность и мы её сейчас исправим.

Но вместе с тем, у вас не должно было возникнуть проблем с обновлением на wb-2304, так как zigbee2mqtt-1.18.1 специально собран отдельным пакетом, чтобы при обновлении ничего не ломалось.

Поэтому прошу вас вспомнить, как оно у вас сломалось и с какого релиза вы обновлялись?

1 лайк

Добрый день!

Уже трудно сказать, с какого релиза, то ли с 2207, то ли с 2204.
Симптомы были - отрубился Zigbee UI, пытался следовать инструкциям , при попытке запуска (npm start) получал ошибку :
(/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/src/utils/waitress.ts:64:35)

Сейчас сделал:
apt install zigbee2mqtt-1.18.1

вернул свой configuration.yaml:

homeassistant: false
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://localhost'
serial:
  port: /dev/ttyMOD1
advanced:
  rtscts: false
  last_seen: epoch
devices:
  '0x00158d0006f8fc71':
    friendly_name: Leak Sensor 2
  '0x00158d0006e9f3a5':
    friendly_name: Leak Sensor 1
  '0x54ef4410004c6ace':
    friendly_name: Plug1
    retain: true
  '0x54ef44100046acd0':
    friendly_name: Plug2
  '0xa4c1384dffbe969a':
    friendly_name: Temperature 1
  '0xa4c13849e4088079':
    friendly_name: Temperature 2
frontend:
  port: 8081
  host: 0.0.0.0

systemctl restart zigbee2mqtt

UI не заработал. Пошел запустить вручную опять:

Сделал npm ci:

Сделал еще разnpm ci:
результат тот же

1 лайк

Спасибо, попробую воспроизвести.

Здравствуйте, воспроизвелось. Оформил багрепорт, оповестил разработчиков ПО для контроллера.

Здравствуйте, есть ли новости по проблеме?

Здравствуйте, разработчики взяли в работу, о результате сообщу.

Здравствуйте! Исправили в zigbee2mqtt 1.18.1-wb101, пока доступно в тестинг, в ближайшие день-два исправление заедет в wb-2304 — я напишу.

Ставить так:

  1. Обновить список пакетов
apt update 
  1. Установить пакет:
 apt install zigbee2mqtt-1.18.1
Мой лог установки на текущем testing
root@wirenboard-A25NDEMJ:~# apt install zigbee2mqtt-1.18.1
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Будут установлены следующие дополнительные пакеты:
  libatomic1 nodejs wb-zigbee2mqtt
Следующие НОВЫЕ пакеты будут установлены:
  libatomic1 nodejs wb-zigbee2mqtt zigbee2mqtt-1.18.1
Обновлено 0 пакетов, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 44,2 MB/44,2 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 202 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://deb.debian.org/debian bullseye/main armhf libatomic1 armhf 10.2.1-6 [6 924 B]
Пол:2 http://deb.wirenboard.com/wb7/bullseye testing/main armhf nodejs armhf 16.18.1-deb-1nodesource1 [24,2 MB]
Пол:3 http://deb.wirenboard.com/wb7/bullseye testing/main armhf zigbee2mqtt-1.18.1 armhf 1.18.1-wb101 [20,0 MB]                      
Получено 44,2 MB за 22с (2 039 kB/s)                                                                                                 
Выбор ранее не выбранного пакета libatomic1:armhf.
(Чтение базы данных … на данный момент установлено 30490 файлов и каталогов.)
Подготовка к распаковке …/libatomic1_10.2.1-6_armhf.deb …
Распаковывается libatomic1:armhf (10.2.1-6) …
Выбор ранее не выбранного пакета nodejs.
Подготовка к распаковке …/nodejs_16.18.1-deb-1nodesource1_armhf.deb …
Распаковывается nodejs (16.18.1-deb-1nodesource1) …
Выбор ранее не выбранного пакета wb-zigbee2mqtt.
Подготовка к распаковке …/wb-zigbee2mqtt_1.3.1_all.deb …
Распаковывается wb-zigbee2mqtt (1.3.1) …
Выбор ранее не выбранного пакета zigbee2mqtt-1.18.1.
Подготовка к распаковке …/zigbee2mqtt-1.18.1_1.18.1-wb101_armhf.deb …
Распаковывается zigbee2mqtt-1.18.1 (1.18.1-wb101) …
Настраивается пакет wb-zigbee2mqtt (1.3.1) …
Настраивается пакет libatomic1:armhf (10.2.1-6) …
Настраивается пакет nodejs (16.18.1-deb-1nodesource1) …
Настраивается пакет zigbee2mqtt-1.18.1 (1.18.1-wb101) …
Обрабатываются триггеры для libc-bin (2.31-13+deb11u6) …

root@wirenboard-A25NDEMJ:~# apt policy zigbee2mqtt-1.18.1
zigbee2mqtt-1.18.1:
  Установлен: 1.18.1-wb101
  Кандидат:   1.18.1-wb101
  Таблица версий:
 *** 1.18.1-wb101 990
        990 http://deb.wirenboard.com/wb7/bullseye testing/main armhf Packages
        100 /var/lib/dpkg/status

Заехало в стабильный wb-2304, можно поставить по инструкции из сообщения выше Zigbee2mqtt v1 в Bullseye - #16 от пользователя AlexandrD.

Отлично, спасибо! Попробую и отпишусь.

1 лайк

Сделал:

apt purge nodejs
apt update
apt upgrade
apt install zigbee2mqtt-1.18.1

отредактировал configuration.yaml:

homeassistant: false
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://localhost'
serial:
  port: /dev/ttyMOD1
advanced:
  rtscts: false
  last_seen: epoch
  pan_id: 45910
  network_key:
    - 174
    - 60
    - 249
    - 199
    - 112
    - 160
    - 73
    - 152
    - 6
    - 176
    - 118
    - 108
    - 50
    - 238
    - 2
    - 67
devices:
  '0x00158d0006f8fc71':
    friendly_name: Leak Sensor 2
  '0x00158d0006e9f3a5':
    friendly_name: Leak Sensor 1
  '0x54ef4410004c6ace':
    friendly_name: Plug1
    retain: true
  '0x54ef44100046acd0':
    friendly_name: Plug2
  '0xa4c1384dffbe969a':
    friendly_name: Temperature 1
  '0xa4c13849e4088079':
    friendly_name: Temperature 2
frontend:
  port: 8081
  host: 0.0.0.0

Выдало ошибку подключения к MQTT (что уже прогресс, но все ж проблема не решена до конца):

Может, это связано со включенной авторизацией на MQTT у меня? Через WEB UI все работает, каналы MQTT читаются.

Конфигурация MQTT следующая:

/mnt/data/etc/mosquitto/acl/default.conf

user zebra
topic readwrite #
topic readwrite $SYS/#

/etc/mosquitto/mosquitto.conf

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /run/mosquitto/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

/etc/mosquitto/passwd/default.conf
zebra:$7$101XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==

/etc/mosquitto/auth.conf

acl_file /etc/mosquitto/acl.conf
password_file /etc/mosquitto/passwd.conf

allow_anonymous true
# allow_anonymous_localhost is deprecated, use per listener settings from mosquitto 2.0
#allow_anonymous_localhost true

/etc/mosquitto/conf.d/10listeners.conf

# This file should be used to define external mosquitto listeners
# (which are not used by internal services).


# Default MQTT port listener.
#
# It allows anonymous listeners by default to be compatible with
# old Wiren Board mosquitto configuration.
#
# It is recommended to add password authentication and TLS for security.
listener 1883
allow_anonymous false
acl_file /etc/mosquitto/acl/default.conf
password_file /etc/mosquitto/passwd/default.conf

# Default Websockets listener.
#
# It is used by Wiren Board Web interface.
#
# It allows anonymous listeners by default to be compatible with
# old Wiren Board mosquitto configuration.
#
# It is recommended to add password authentication for security.
listener 18883
protocol websockets
allow_anonymous false
acl_file /etc/mosquitto/acl/default.conf
password_file /etc/mosquitto/passwd/default.conf

/etc/mosquitto/conf.d/20bridges.conf

# This file should be used to define Mosquitto bridges.
# See 21bridge.conf.example file for an example of how to do it.

Вероятно, попробуйте добавить в конфиг логин и пароль для связи с MQTT:

mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://localhost'
  user: my_user
  password: my_password

Подробнее о настройках тут: MQTT | Zigbee2MQTT

Ещё один момент — в wb-2304 новая версия брокера и там могут быть чуть другие настройки конфига, чем в wb-2207, например, у нас в новой инструкции файл /etc/mosquitto/conf.d/10listeners.conf выглядит так:

# This file should be used to define external mosquitto listeners
# (which are not used by internal services).


# Default MQTT port listener.
#
# It allows anonymous listeners by default to be compatible with
# old Wiren Board mosquitto configuration.
#
# It is recommended to add password authentication and TLS for security.
listener 1883 127.0.0.1
allow_anonymous true
acl_file /etc/mosquitto/acl/default.conf
password_file /etc/mosquitto/passwd/default.conf


# Default Websockets listener.
#
# It is used by Wiren Board Web interface.
#
# It allows anonymous listeners by default to be compatible with
# old Wiren Board mosquitto configuration.
#
# It is recommended to add password authentication for security.
listener 18883 127.0.0.1
protocol websockets
allow_anonymous true
acl_file /etc/mosquitto/acl/default.conf
password_file /etc/mosquitto/passwd/default.conf
1 лайк

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.