Найти тему
Smart home Russia

Добавляем ZigBee координатор в Mikrotik

Тот факт, что в роутер Mikrotik возможно установить ZigBee координатор - стало для меня невероятным открытием. Скажу больше, думаю одним ZigBee тут не обойтись и возможностей гораздо больше, просто я ещё не знаю про это.

Translation to English is here. Также основной канал в telegram.

Ранее я знал о том, что usb порт в роутере существует лишь для того, чтобы установить в него модем и тем самым раздавать интернет. Писал про это в статье:

Затем я пробовал использовать порт для подключения HDD, тоже получилось, но были нюансы, подойдет не каждому.

Как-то раз, сидя в одном из профильных форумов, нашел упоминание, что порт usb в Mikrotik можно прокидывать как удаленный COM порт. Я даже нашел мануал, как прокинуть в ZigBee2MQTT стик на CC2531. Но статья уже довольно старая и многие операции, описанные в той статье - сегодня не нужны. В итоге, повозившись пару вечеров - у меня все получилось, о чем я и писал в своем посте:

Пара недель ушли у меня на различные тесты и вот пришло время описать все действия. Но вначале отвечу на вопрос "Зачем?", который уже мог возникнуть. Если у вас хороший сервер умного дома и несколько объектов или один, но огромной площади, то расширять покрытие при помощи роутеров может быть банально невозможно. Ставить несколько серверов - тоже такая себе идея, как и тянуть интерфейсы от сервера до стиков. Есть ZigBee LAN координаторы, но посмотрите сколько они стоят на барахолке... Более того, не знаю как у Вас, а я разворачиваю в новом месте обязательно Wi-Fi сеть и уже потом по необходимости ZigBee. Т.е. роутер мы будем покупать в любом случае, а почему бы не доплатить пару килорублей и не взять роутер и с 5Ghz и USB портом? В сумме это выгоднее, чем роутер + LAN координатор. Конечно, всегда есть индивидуальные случаи, но это другая история...

Далее немного ссылок:

1. Для того, чтобы прокинуть устройство в свою сеть можно использовать VPN, если у вас его не блокируют. Писал про это тут:

2. Для нас подойдет любой роутер Mikrotik с USB. В моем случае это был:

3. Основное назначение данных роутеров в моем доме было:

4. Подключение к удаленному адаптеру на сайте ttps://www.zigbee2mqtt.io описано тут.

5. В качестве стика будет использоваться Sonoff plus dongle:

Теперь опишу действия:

В докере создаем новый контейнер. Удобнее всего выбрать рабочий контейнер с Z2M и нажать дубликат/изменить. Таким образом мы создадим копию проверенного, работающего Z2M. Писал про этот метод ранее тут:

Безопасные эксперименты с контейнерами Docker. Обновляем ZigBee2MQTT
Smart home Russia6 февраля 2022

Параметры дубликата нам подходят, но нужно изменить адрес папки с конфигурацией. Я сделал настройки, которые можно найти ниже на скриншотах, описание действий под ними:

1-ая картинка. В поле название -вводим новое уникальное имя. Поле образа - остается без изменения. Что касается настроек портов для публикации, есть 2 варианта: 1. Указываем любой незанятый порт для хоста и контейнера. 2 Указываем любой незанятый порт для хоста и стандартный 8080 для контейнера. В моем случае порт 8081 один и тот же. Он же указан у меня и в настройках конфигурации.
2-ая картинка. Вроде ничего не трогал.
3-я картинка. Изменил адрес на хосте. Если этого не сделать, то обе копии контейнера будут работать с одними теми же базами данных и ни к чему хорошему это не приведет.
4
-ая картинка. Ничего не менял.
5
-ая картинка. Ничего не менял.
6
-ая картинка. Ничего не менял.
7
-ая картинка. Ничего не менял. Оставляем тип перезагрузки "всегда"
8
-ая картинка. Ничего не менял. Ограничения я выставил подобные уже давно, когда начались внезапные проблемы с сервером. Если данного количества ресурсов не хватит, то контейнер перезагрузится.
9
-ая картинка. Ничего не менял.

Далее останется лишь зайти в роутер и настроить несколько параметров

Перейдем во вкладку "система", там есть пункт "порты". Зайдем в "порт 1" и дадим ему имя, настроим скорости и параметры как на скрине. Это соответствует настройкам работы координатора. Далее перейдем во вторую вкладку и настроим удаленный доступ к этому порту/координатору. Порт выбираем из настройки выше, разрешенные адреса настраиваем по необходимости, порт выбираем любой свободный, протокол raw. На этом все.

Теперь остался последний штрих, настроить ZigBee2MQTT. Перейдем в папку, которую мы указали при настройке контейнера и поправим файл конфигурации:

Т.к. тесты я проводил в своей квартире, где уже развернута сеть, то pan_id нужно сгенерировать новый, канал я тоже выбрал другой. Если этого не сделать, то при запуске копии z2m будет выходить ошибка о том, что такая сеть уже существует.

В подключении к MQTT указываем свои параметры. Я для примера создал пользователя admin/admin, но пример так себе, используйте комбинации посложнее ☺.

Порт для Web страницы изменил на 8081, т.к. 8080 уже занят под основной контейнер z2m.

Далее, в настройках порта, указываем ip адрес роутера и порт. Порт - тот же самый, что и в настройках микротика.

Если вторая ZigBee сеть располагается в локации, где никто другой не занимается строительством ZigBee сети, то можно настроить лишь подключение к mqtt, порт и настройки serial. Стандартный канал и PAN ID вам вполне подойдет.

Если все сделали верно, то останется запустить контейнер, z2m найдет в роутере координатор и в квартире развернется вторая сеть. По адресу сервера на порте 8081 будет доступна вторая версия z2m. Если роутер теперь отвезти в любую точку мира, то там, где его мы включим в сеть - автоматом будет развернута домашняя Wi-Fi сеть с доступом в локальную сеть и ZigBee сеть.

Подпишитесь, чтобы не пропускать следующий контент.
Нажмите лайк, если интересно, так я пойму какие публикации больше нужны моей публике.
Также публикации можно найти на других площадках: Instagram, telegram (RU, EN, DE), Medium, LiveJournal, YouTube.

Мой блог является некоммерческим, поэтому позитивный комментарий, лайк или репост поможет публикациям выходить чаще ☺.