udvnl

 
<<< Назад

Zigbee2mqtt, немного о стиках CC2531 и Sonoff USB Zigbee 3.0 Dongle Plus (сравнение, подключение, тестирование).

Не так давно решил обновить свой USB=Zigbee стик CC2531 на более новый Zigbee координатор Sonoff ZBDongle USB Zigbee 3.0 Dongle Plus. Заодно решил сделать небольшое сравнение и в качестве дополнения небольшая инструкция по установке и настройке Zigbee устройств в MajorDoMo с модулем zigbee2mqtt (автор модуля Directman). Инструкция делалась на Raspberry Pi 3B, установлен голый образ 3_44.

Немного о внешнем виде:

Внешний вид USB стиков представлен на фото:

Sonoff стик выглядит солидно и внушительно на мой взгляд несколько великоват. Довольно длиная антенна может вращаться в разные стороны и складываться на 90 градусов. После подключения в USB разъём в большинстве случаев из оставшихся 3-х портов на малинке, можно использовать только один, находящийся по диагонали от занятого (иногда даже это не получается). Если планируется подключать ещё что то, то выход использовать USB удлинитель. Стик CC2531 выглядит несколько миниатюрнее, нет ни внешней антенны ни возможности её подключения, он у меня без корпуса. У CC2531 присутствует индикатор (при работе постоянно постояно горит зелёным). У Sonoff нет видимых индикаторов.

Первый шаг: включение в MajorDomo и ОС Linux (Raspbian):

Устанавливаем дополнение zigbee2mqtt от Directman.
Переходим в раздел Система – Маркет Дополнений панели управления. Открываем раздел Оборудование и ищем модуль zigbee2mqtt (можно на главной странице Маркета воспользоваться поиском).

Устанавливаем дополнение zigbee2mqtt, после установки переходим в меню Панели Управления - Устройства, выбираем раздел zigbee2mqtt.

Zigbee стик пока не определён ни в систему «Умного Дома», ни в операционной системе. В модуле есть очень подробная информация о установке, устройствах и т.д.
Пока в этой части опишу подключение стика CC2531.
Подключаем стик к USB порту. Индикатор стика кратковременно загорается зелёным и гаснет.
Переходим в раздел Информация и что для стика CC2531, что для Sonoff координатора пользуемся инструкцией по установке.
Продублирую её с небольшими примечаниями:

Проверяем на каком порту у нас появился стик:

pi@raspberry:/ $ ls -l /dev/serial/by-id

вывод:
total 0 lrwxrwxrwx. 1 root root 13 Oct 19 19:26 usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00 -> ../../ttyACM0

Убедились, что стик встал на порту /dev/ttyACM0, этот адрес потом понадобится при настройке файла конфигурации configuration.yaml. Для концентратора Sonoff порт несколько отличается: ttyUSB0
Устанавливаем необходимые пакеты:

sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc

Клонируем репозиторий, меняем права на файлы для текущего пользователя, переходим в директорию для установки и устанавливаем::

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm install

по завершении установки мы должны получить на экране что-то подобное:
node-pre-gyp info ok
added 383 packages in 111.613s
Вывод после окончания установки (у меня было несколько предупреждений, но на работу z2m они не сказывались):

Настраиваем файл конфигурации:

nano /opt/zigbee2mqtt/data/configuration.yaml

По умолчанию формируется файл со следующей работоспособной для стика СС3521 конфигурацией. Приведу его:

homeassistant: false
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost
serial:
  port: /dev/ttyACM0
devices:

Запуск zigbee2mqtt как сервис
Создаем файл zigbee2mqtt.service
sudo nano /etc/systemd/system/zigbee2mqtt.service
c содержимым:

[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target

для запуска zigbee2mqtt необходимо выполнить:

sudo systemctl start zigbee2mqtt

Проверка статуса сервиса:

systemctl status zigbee2mqtt.service

автозапуск демона при старте системы:

sudo systemctl enable zigbee2mqtt.service

Можем сразу же прописать в настройках модуля z2m MajorDoMo следующие настройки:

На всякий случай правильно перегружаем малинку (используя скрипт перезагрузки).
После загрузки переходим опять в устройства модуля z2m.
У меня сразу же определились некоторые устройства (скорее всего ранее они были подключены к моему стику, и несмотря на использование свежепереписанного базового образа они определились, хотя и не совсем корректно).

Кстати, обращаем внимание: засветилось зеленым окошечко сопряжение устройств.
Можем зайти во вкладку Сервис посмотреть состояние сервиса системы, непосредственно из MajorDoMo.

Сопряжение устройств, для подключения устройств в свой систему УД, стик должен быть включён на сопряжение (в конфиге параметр permitjoin: true) и включить сопряжение физически непосредственно на устройстве. Легче всего обратиться к документации на устройство или же посмотреть на сайте https://www.zigbee2mqtt.io/ список поддерживаемых устройств и Pairing для конкретного девайса.
После сопряжения (пересопряжения) устройств картинка в Majordomo приблизительно следующая:

Из раздела устройства можем включить/выключить устройства, если они управляются, получить текущее состояние для датчиков и т.д.
Замечу, после привязки устройства в конфигурационном файле в секции devices прописываются дополнительные строки
devices: '0x00158d00069fec28': friendly_name: '0x00158d00069fec28'

Подключение Sonoff ZBDongle USB Zigbee 3.0 Dongle Plus
Подключение координатор Sonoff ZBDongle USB Zigbee 3.0 Dongle Plus происходит аналогично стику СС. За исключением конфигурационного файла.
Пример конфига:

nano /opt/zigbee2mqtt/data/configuration.yaml
homeassistant: false
permit_join: true
frontend:
  port: 8080
  host: 0.0.0.0
#  auth_token: 123456 (поменяйте на свой пароль)
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost
serial:
  port: /dev/ttyUSB0
devices:

В конфиге включён веб-интерфейс координатора (на порту 8080) с шифрованием (работает и без оного).
После изменения файла нужно перезапустить сервис, сделать можно или из вкладки сервис модуля или из командной строки терминала:

Небольшое примечание: с выключенным веб интерфейсом запуск (перезапуск) сервиса происходит у меня довольно быстро. С включенной веб интерфейсом гораздо дольше (доходило до 5 минут)

Небольшое тестирование параметра качества связи (linkquality)

Для построения сети беспроводных устройств УД довольно важен параметр канала связи, в теминологии zigbee linkquality.
Сравним этот показатель у обоих устройств. Малинка расположена на одном и том же месте, сравниваемые устройства так же, никуда не перемещаются.


Первый скрин: CC2531, второй соответственно Sonoff.
В самом модуле majorDoMo у меня этот показатель както не свосем корректно показывает (возможно берёт какие то усредненные значения). Что бы посмотреть более точно, можно открыть лог файл и из него уже смотреть приходящие сообщения. Файл находится:

nano /opt/zigbee2mqtt/data/log/xxxx-xx-xx.xx-xx-xx/log.txt

где наименование папки время создания лога.

Перовое устройство выключатель – расстояние около 6 метров по прямой, однако на пути 3 стенки, также имеется зеркальный шкаф купе.
Используя стик СС2531 качество от 0 до 30 (довольно часто меняется этот показатель), причем при 0 выключатель корректно управляется (всё время, сбоев не обнаружил).
Остальные устройства имеют более-менее стабильные показатели (могут меняться до десятка единиц значений) у Sonoffa гораздо более стабильные показатели:
------------СС2531---------------Sonoff
1) - от 0 до 30---------------- 38 ------------- 7м ------------- 3 стенки +зеркало
2) --------49 -------------------- 65 ------------- 4м ------------- 2 стенки
3) -------- 89 ------------------ 103 -------------1м ------------- 1 стенка
4) ------- 78 ------------------ 170 ------------1м -------- препятствий нет


Пример показаний в веб интерфейсе, на вкладке карта сети, для концентратора sonoff, причем показания соответсвуют значениям попадающим в лог.

Обсуждение (3) (3)

Смотрите так же:
30.05.2022 Вариант установки Majordomo на Windows 10 с использованием пакета XAMPP. Немного о переносе и создании тестовой копии системы с Raspberry PI на Windows
09.03.2022 Небольшие заметки по подключению и использованию сервиса CONNECT
23.09.2021 Второй раз в первый класс. Часть 1: начало работы c базовым образом для RPi.
31.12.2020 Возможность создания канала управления через телефонные сети для системы домашней автоматизации.
06.07.2020 Чтение файлов из образа img Операционной системы. Возможность записи образа на меньшую по размеру SD карту памяти
19.06.2020 Raspberry Pi: немного о резервном копировании и актуальной копии системы
07.05.2020 Установка VoIP сервера FreeSWITCH с частичной интеграцией в систему MajorDoMo
28.04.2020 Установка базового образа MajorDoMo на Raspberry Pi. Начало первые шаги.
07.10.2019 Возможность создания видео звонков у MajorDoMo (RPI +WebCam)
11.09.2019 Создание голосового оповещения MajorDoMo
21.08.2019 Установка USB аудиокарты и настройка звука в Raspberry Pi
04.04.2019 Сертификация в Z-Wave
11.03.2019 RPI Monitor полезное ПО для Raspberry PI и Orange Pi
04.02.2019 Тестирование пропускной способности канала Ethernet (Wi-Fi) с помощью утилиты IPerf
23.12.2018 Пошаговая инструкция с картинками по установки MajorDoMo на Raspberry Pi 3 с помощью скрипта от Immortal
20.10.2018 Установка Freeswitch 1.8.2 на Debian 9 (Raspbian Stretch) на базовый образ системы «Умного дома» MajorDomo
14.08.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение первого устройства Z-Wave и первые шаги по автоматизации
08.07.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение контроллера RaZberry и первые шаги по Z-Wave
29.06.2018 Пошаговая инструкция по установке образа Majordomo на Raspberry Pi
21.06.2018 Удаленное наблюдение за близкими, но к сожалению, больными людьми.

Минск, Беларусь

На форуме: udvnl