Статья

Как изменить адрес модуля DDM845R v3 при помощи WirenBoard

Приветствую, дорогой читатель. В этой статье разберем, как изменить Modbus адрес Диммера от Разумный Дом DDM845R v3, используя контроллер WirenBoard

С данной проблемой столкнутся многие. Как только у Вас появится много устройств или более одного диммера DDM845R v3

Для чего же нужно менять адрес? 

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

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

Если у нас в нашей сети будет 2 устройства с одним и тем же адресом, то у нас команда уйдет на 2 устройства. Например: у вас будет 2 диммера от Разумный дом, один модуль будет отвечать за свет в детской, а второй - за свет в гостиной. В позднюю ночь вы возвращаетесь домой и решили тихонько включить свет в гостиной, а так как у нас у 2х модулей один и тот же адрес в сети, то 2 модуля отработают и мы еще включаем свет в детской и разбудим наше маленькое чадо. Для того, чтобы избежать таких неприятных ситуаций, на примере модуля DDM845R v3 и контроллера WirenBord, поправим все и такой ситуации не возникнет.

Подготовка

Что же нам потребуется, чтобы изменить адрес нашего диммера?

  1. контроллер Разумдом DDM845R v3;
  2. Wirenboard 6;
  3. знания по подключению к Wirenbord по SSH, если нет, то ознакомьтесь со статьей;
  4. 5-10 минут свободного времени;
  5. прямые руки.

Меняем адрес на модуле DDM845R v3

Для начала нам нужно подключиться к WB по SSH, для подключения нам нужно знать ip адрес, как его узнать читаем.

После этого, подключаемся по SSH к нашему WB. В моем случае это будет:

  • ip адрес: 192.168.1.53
  • Пользователь: root
  • Пароль: wirenboard

После подключения, если все верно сделали, мы увидим следующее:

Теперь нам необходимо остановить сервис wb-mqtt-serial, чтобы он нам не мешал работать. 

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

service wb-mqtt-serial stop

Далее можно приступать к смене адреса на Диммере от Разумдом.

Для этого нам нужно воспользоваться командой:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r0 17

Перед тем как нажать Enter, разберемся, что в данной строке зашифровано.

modbus_client - означает, что мы будет работать с протоколом modbus, а если быть точнее - вызываем просто клиент для работы;

--debug - нужен для просмотра результата;

-mrtu - Modbus RTU аргумент, нужен чтобы объяснить, с каким протоколом мы работает, в нашем случае - Modbus RTU;

/dev/ttyRS485-1 - к какому порту у нас подключен наш диммер (в моем случае - это первый порт RS485 на Wirenboard);

-a34 - адрес устройства (текущий);

-t0x06 -расписать данные в один регистр;

-r0 -номер регистра, с которым мы будем работать; 

17 - значение, которое мы запишем в регистр выше.


В регистр 0 мы записываем новый адрес устройства, после этого, наш диммер будет доступен по новому адресу - 17. Но для того, чтобы все заработало, нам необходимо запустить wb-mqtt-serial.

service wb-mqtt-serial start

И перезагружаем наш WB.

reboot

Но и на этом у нас еще не все. После того, как сменили адрес, нам нужно заново добавить наш диммер, читаем статью, если забыли как это сделать.

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

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

mqtt-delete-retained '/devices/название_устройства/#'

Где же взять название устройства?

Все просто заходим в WirenBoard Web UI и приходим в раздел Settings, как раз тут и есть адрес нашего устройства.

В моем случае - это адрес 17 и у меня команда будет выглядеть так:

mqtt-delete-retained '/devices/ddm845r_17/#'

На этом все - адрес поменяли, марафет навели, мы большие молодцы.

Спасибо за внимание, подписывайтесь на меня, будет больше статей.

0

Вернуться назад
Вернуться назад