[Модуль] zigbee2mqtt (zigbee2mqtt)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

directman66
Сообщения: 2125
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 306 раз
Поблагодарили: 412 раз
Контактная информация:

[Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение directman66 » Ср янв 09, 2019 7:02 am

Давно известно, что с zigbee устройствами можно работать не только через шлюз MiHome. Имеется множество других решений, через которые можно получать данные и управлять устройствами (deconz, athom hommey, samsung smartthings, philips hue, Smart home Hommyn Zigbee Хаб (HU-20-Z) etc). По моему мнению, самым интересным и бюджетным вариантом является проект zigbee2mqtt https://github.com/Koenkk/zigbee2mqtt.
Для работы c проектом нужен прошитый стик и компьютер на линукс (подойдет любой одноплатник типа малины)
СпойлерПоказать
стик https://ru.aliexpress.com/store/product ... 26435.html
дебаггер https://ru.aliexpress.com/store/product ... 22195.html
шнурок https://ru.aliexpress.com/store/product ... 31081.html


Желательно все заказывать у одного продавца, тогда будет один трек на все товары. Я имел неосторожность заказать у разных продавцов, в итоге шнурок ждал около 3 месяцев без пробивания трека.
Прошитый стик можно заказать у спрута https://sprut.ai/client/projects/105 (нажать кнопку помочь проекту, выбрать прошитый стик и указать цену 1000 руб.)

Есть возможность прошить стик через ардуино https://github.com/kirovilya/ioBroker.z ... B7-Arduino, но это очень геморный процесс и занимает около 5 часов. К тому-же очень сложно прошивать, не имея кабель-шнурок. От этого варианта прошивания я отказался.

Также стик можно прошить у коллег в вашем городе, например в Екате я могу прошить стик за символическую плату в размере 500 руб )

В модуле mqtt от @SergeJey доступно только чтение параметров, поэтому для управления устройствами начал писать новый модуль zigbee2mqtt

Инструкция по перепрошивке стика:
Мне понадобился драйвер для дебагера https://github.com/kirovilya/files/blob ... rc212a.zip
Прошивал по этой инструкции: https://www.zigbee2mqtt.io/getting_star ... c2531.html
Еще инструкция https://github.com/kirovilya/ioBroker.z ... 0%BA%D0%B0
Прошивальщик https://yadi.sk/d/RxIVtu3YTCBDyw
Последние версии прошивок можно взять тут https://github.com/Koenkk/Z-Stack-firmw ... CC2531/bin


Инструкция по установке zigbee2mqtt для linux:
https://www.zigbee2mqtt.io/getting_star ... 2mqtt.html

Если вам нужна поддержка разрабатываемого в данный момент железа, можно установить девелоперскую ветку. Тогда вместо

Код: Выделить всё

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt 
sudo chown -R pi:pi /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm install
нужно выполнить

Код: Выделить всё

sudo git clone --single-branch --branch dev  https://github.com/Koenkk/zigbee2mqtt/   /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm install
Установка zigbee2mqtt для windows
1) Устанавливаем брокер mqtt, если у вас его еще нет по инструкции http://www.steves-internet-guide.com/in ... to-broker/

Кому лениво устанавливать или держать у себя брокер, а также пользователям windows, у которых нет брокера, при наличии платной подписки на connect (200р.), вы можете использовать адрес http://connect.smartliving.ru в качестве брокера mqtt.

2) Качаем и устанавливаем git
https://git-scm.com/download/win
3) Качаем и устанавливаем node.js для windows
https://nodejs.org/en/download/


Далее процесс идентичен установке под linux https://www.zigbee2mqtt.io/getting_star ... 2mqtt.html

Пока только не понятно, как управлять и перезагружать сервис под виндой.

Настраиваем конфигурационный файл /opt/zigbee2mqtt/data/configuration.yaml
пример вариантов настроек конфигурационного файла https://www.zigbee2mqtt.io/configuratio ... ation.html
СпойлерПоказать

Код: Выделить всё

homeassistant: false
permit_join: true
advanced:
  channel: 26
  log_level: debug
mqtt:
  base_topic: zigbee2mqtt
   #   server: 'mqtt://192.168.178.32:1900'
   server: 'mqtt://192.168.1.39'
  
serial:
  port: /dev/ttyACM1
26 канал выбран для livolo выключателя (работают только на 26 канале https://github.com/Koenkk/zigbee2mqtt/issues/592). При отсутствии ливоло выключателей, можно удалить эту строку.

Если вы настраиваете систему под windows, порт необходимо указать в следующем формате:
СпойлерПоказать

Код: Выделить всё

serial:
  port: COM4
Запускаем командой sudo systemctl start zigbee2mqtt

Обновление локального zigbee2mqtt до актуальной версии:

Код: Выделить всё


# Stop zigbee2mqtt and go to directory
sudo systemctl stop zigbee2mqtt
cd /opt/zigbee2mqtt

# Backup configuration
cp -R data data-backup

# Update
git checkout HEAD -- npm-shrinkwrap.json
git pull
rm -rf node_modules
npm install

# Restore configuration
cp -R data-backup/* data
rm -rf data-backup

# Start zigbee2mqtt
sudo systemctl start zigbee2mqtt



Чтобы сервис стартовал автоматически, не забудьте после п. 5 (Optional) Running as a daemon with systemctl выполнить

Код: Выделить всё

sudo systemctl enable zigbee2mqtt
(сервис будет запускаться автоматически при старте системы)

Список поддерживаемого оборудования:
https://www.zigbee2mqtt.io/information/ ... vices.html

Текущий статус модуля: бетта
Реализовано:
1) подписка на канал zigbee2mqtt/#
2) автоматическое создание устройств;
3) автоматическое заполнение метрик устройств;
4) привязка метрик к объектам.
5) просмотр логов zigbee2mqtt;
6) конвертирование привязанных переменных в стандартный для мажордомо формат (вместо 1/0 в zigbee2mqtt используется ON/OFF);
7) управление устройствами;
8) создание карты устройств.
9) Добавлено управление и просмотр режимами сопряжения.
10) Добавлено управление (ON OFF) устройствами с главного окна модуля.
11)Подсвечиваются серым потерянные устройства.




Что планируется:

1) Работа с группами https://www.zigbee2mqtt.io/information/groups.html
2) Заведение отсутствующих метрик, чтобы можно было привязать не описанные события)
3) Отладить работу. Поступают противоречивые данные, у кого-то не отображаются выпадающие списки с картинками и тд.
4) Отладить работу, когда мажордомо и zigbee2mqtt находятся на разных устройствах. Запросил информацию для отвязки от конфигов https://github.com/Koenkk/zigbee2mqtt/issues/1236
5) Настройка прямого управления устройствами
СпойлерПоказать
Xiaomi Aqara wired wall switch (QBKG03LM and QBKG04LM)
Decoupled mode allows to turn wired switch into wireless button with separately controlled relay. This might be useful to assign some custom actions to buttons and control relay remotely. This command also allows to redefine which button controls which relay for double switch.

Special topics should be used:

zigbee2mqtt/[DEVICE_ID]/system/set to modify operation mode.

Payload:

{
"operation_mode": {
"button": "single"|"left"|"right",
"state": "VALUE"
}
}
Values Description
control_relay Button directly controls relay (for single switch)
control_left_relay Button directly controls left relay (for double switch)
control_right_relay Button directly controls right relay (for double switch)
decoupled Button doesn’t control any relay
zigbee2mqtt/[DEVICE_ID]/system/get to read current mode.

Payload:

{
"operation_mode": {
"button": "single"|"left"|"right"
}
}

Ссылка на интересный тематический канал в телеграм: https://t.me/zigbeer
Ссылка на репозиторий модуля zigbee2mqtt: http://github.com/directman66/majordomo-zigbee2mqtt/
Топики для управления устройствами через mqtt https://www.zigbee2mqtt.io/integration/ ... stant.html
Топики для управления шлюзом через mqtt https://www.zigbee2mqtt.io/information/ ... tbridgelog


Драйвера для smartRF04EB начинаются на swrc* есть в репозитории Кирова Ильи https://github.com/kirovilya/files
Огромная благодарность Илье @goofyk за помощь в освоении материала )

Последние версии прошивок можно взять тут https://github.com/Koenkk/Z-Stack-firmw ... CC2531/bin

Обсуждение умных ламп http://majordomo.smartliving.ru/forum/v ... 733#p95733
Последний раз редактировалось directman66 Чт мар 14, 2019 2:36 pm, всего редактировалось 54 раза.
За это сообщение автора directman66 поблагодарили (всего 11):
Denis_k (Ср янв 09, 2019 7:37 am) • VooDooN (Ср янв 09, 2019 8:34 am) • skysilver (Ср янв 09, 2019 9:53 am) • woow (Ср янв 09, 2019 11:15 am) • chimik (Ср янв 09, 2019 11:22 am) • ZhenyaRUS39 (Чт янв 10, 2019 9:30 pm) • newz20 (Пт янв 11, 2019 3:08 pm) • ypiter2006 (Сб янв 12, 2019 11:23 pm) • SrFatCat (Ср янв 16, 2019 2:37 pm) • nicusor (Чт мар 14, 2019 2:01 am) и ещё один
Рейтинг: 15.07%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
directman66
Сообщения: 2125
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 306 раз
Поблагодарили: 412 раз
Контактная информация:

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение directman66 » Ср янв 09, 2019 7:06 am

Привязка устройств https://koenkk.github.io/zigbee2mqtt/ge ... vices.html

Xiaomi
Разные устройства требуют разных методов сопряжения.

Большинство устройств MiJia: нажмите и удерживайте кнопку сброса на устройстве в течение + - 5 секунд (пока синий индикатор не начнет мигать). ВАЖНО : Отпустите и начните нажимать кнопку сброса каждую секунду. Это сохраняет устройство активным, иначе сопряжение не удастся!

Большинство устройств Aqara: нажмите и удерживайте кнопку сброса на устройстве в течение + - 5 секунд, пока синий индикатор не мигнет три раза, отпустите кнопку сброса (синий индикатор будет мигать еще раз) и подождите.

Большинство настенных выключателей Aqara: нажмите и удерживайте кнопку на устройстве в течение + - 10 секунд (пока синий индикатор не начнет мигать и не перестанет мигать), отпустите и подождите.


Кубик: https://www.youtube.com/watch?v=uhMrcIA ... e=youtu.be
1. набраться терпения :)
2. снимаю крышку, вынимаю батарейку минуты на 2 -3, чтобы все кондеры разрядились и тд - может и не надо;
3. Жму кнопку - пока три раза не моргнет
4. каждую секунду жму кнопку чтобы поддерживалось соединение и так примерно минут 5!!!
Там видимо чем больше переменных передается, приходится дольше ждать
то есть он реально ОЧЕНЬ медленно сопрягается
потом примерно минут через 5 начинаю кубик трясти и как правило появляется - Shake
ну и дальше он постепенно подтягивает все параметры типа переворота с ребра на ребро и так далее
но реально долго...

Настенный пульт WXKG02LM https://www.youtube.com/watch?v=4iOKtfG ... e=youtu.be

Ну, как сказал @Koenkk , это может быть немного сложно, и я только что закончил спаривать всю свою прошлую ночь. Лучший способ, который я понял, - это выполнить следующие шаги:

Убедитесь, что переключатель находится рядом с ним. Я уже установил мой, поэтому должен был удалить их все и поместить их в пределах 50-100 см от анализатора (ну, может быть, у меня был мой где-то в углу).
Нажмите левую и удерживайте ее
Подождите, пока оба индикатора не начнут мигать
Продолжайте удерживать его и не отпускайте, пока оба индикатора не перестанут мигать, а левый светодиод не мигнет один раз.
Подожди и расслабься, и пусть все сделает свое волшебство
Был соблазн продолжать нажимать кнопку, чтобы «поддерживать ее работу», особенно после кошмара соединения моих датчиков Mija, которые требовали этого. но не делай этого, потому что я думаю, что это еще хуже. Просто оставьте его, как только увидите всплывающее сообщение ..._lock[](извините, не помню точно, что оно говорит)
Последний раз редактировалось directman66 Сб фев 02, 2019 5:10 pm, всего редактировалось 3 раза.
За это сообщение автора directman66 поблагодарил:
nicusor (Чт мар 14, 2019 2:01 am)
Рейтинг: 1.37%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
directman66
Сообщения: 2125
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 306 раз
Поблагодарили: 412 раз
Контактная информация:

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение directman66 » Вс янв 13, 2019 3:12 pm

1) Добавлен просмотр логов
2) Привязка метрик устройств
3) Конвертирование метрик ON/OFF -> 1/0
4) Отправка команд.

Модуль пока тестирую, поэтому не публикую. Кто сильно заинтересован, можете установить вручную.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
Aven
Сообщения: 350
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 0
Поблагодарили: 74 раза

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение Aven » Вс янв 13, 2019 10:44 pm

давай скриншоты )))
directman66
Сообщения: 2125
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 306 раз
Поблагодарили: 412 раз
Контактная информация:

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение directman66 » Пн янв 14, 2019 6:44 am

Пока особо нечего показывать
Вложения
z1.png
z1.png (16.41 КБ) 1569 просмотров
z2.png
z2.png (24.25 КБ) 1569 просмотров
z3.png
z3.png (75.38 КБ) 1569 просмотров
z4.png
z4.png (75.94 КБ) 1569 просмотров
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
directman66
Сообщения: 2125
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 306 раз
Поблагодарили: 412 раз
Контактная информация:

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение directman66 » Пн янв 14, 2019 3:01 pm

1) Добавлено определение типа устройства. Вывод фотографии.
zz1.png
zz1.png (25.37 КБ) 1530 просмотров
2) Проверка статуса сервиса zigbee2mqtt. Управление сервисом (start, stop, restart). Работает при наличии прав sudo
zz2.png
zz2.png (57.98 КБ) 1530 просмотров
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
SrFatCat
Сообщения: 64
Зарегистрирован: Пн янв 07, 2019 6:55 pm
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение SrFatCat » Ср янв 16, 2019 2:45 pm

Очень своевременное и нужное дополнение! Огромное спасибо. К сожалению, пока только в теории изучаю, свисток еще не пришел.
Два вопроса.
- можно у брокера указать порт или бридж работает только по стандартному 1883?
- какое отношение выключатели Livolo имеют к теме? Разве они не по RF433? Или я отстал от жизни и есть Livolo zigbee (не нашел в поддерживаемых устройствах никакого упоминания Livolo)
Denis_k
Сообщения: 445
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 222 раза
Поблагодарили: 20 раз

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение Denis_k » Ср янв 16, 2019 6:20 pm

тоже с интересом смотрю за темой, до сяоми так и не дойду ввиду нежелания лишних устройств, но вопрос у меня несколько иной:
этот модуль подразумевает наличие где то в системе брокера mqtt (например попытка установить сервер blynk на тот же raspberry у меня не удалась (точнее сервер работал, но не долго и с танцами) и пришлось отказываться от модуля blynk), т.е. иными словами позволит ли установка этого модуля и прошитого "свистка" управлять перечисленными устройствами?
MD на raspberry pi2
directman66
Сообщения: 2125
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 306 раз
Поблагодарили: 412 раз
Контактная информация:

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение directman66 » Ср янв 16, 2019 9:45 pm

1) Для работы модуля необходим mqtt брокер
2) Брокер может работать на любом порту
3) Есть livolo zigbee выключатель https://ru.aliexpress.com/item/Livolo-E ... 33edDDAEYN, но реверс протокола пока не привел к нужному результату, но попытки не прекращаются https://github.com/Koenkk/zigbee2mqtt/issues/592
За это сообщение автора directman66 поблагодарили (всего 2):
Denis_k (Ср янв 16, 2019 9:53 pm) • andrey040670 (Вт янв 22, 2019 12:32 am)
Рейтинг: 2.74%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
SrFatCat
Сообщения: 64
Зарегистрирован: Пн янв 07, 2019 6:55 pm
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: [Модуль] zigbee2mqtt (zigbee2mqtt)

Сообщение SrFatCat » Чт янв 17, 2019 12:10 am

directman66 писал(а):
Ср янв 16, 2019 9:45 pm
1) Для работы модуля необходим mqtt брокер
2) Брокер может работать на любом порту
Не очень понятно. Вот у меня брокер поднят локально, работает на несдантартном порту, как клиент бриджа zigbee2mqtt (а я правильно понимаю, что бридж выступает mqtt клиентом?) узнает этот порт, если в настройках задается только домен, имя клиента и пользователь/пароль?
directman66 писал(а):
Ср янв 16, 2019 9:45 pm
3) Есть livolo zigbee выключатель https://ru.aliexpress.com/item/Livolo-E ... 33edDDAEYN, но реверс протокола пока не привел к нужному результату, но попытки не прекращаются https://github.com/Koenkk/zigbee2mqtt/issues/592
Спасибо! Очень интересно
Ответить