как узнать slave_id?


#1

Подскажите есть возможность узнать номер вашего устройства для подключения к WB4?
Есть две “проблемы” реле, WB-MRM2-mini у которого за прошедшее время отвалилась наклейка, и WB-RGB, который не откликается на номер 7, написанный на этой наклейке.
Само собой вопрос возник в связи с тем, что оставить устройство одним на шине не могу.


#2

Никита, добрый день! А все остальные адреса вы знаете?

Адрес определить легко, надо по очереди прочесть у всех устройств регистр 0x80. Сделать это можно в командной строке:
root@wirenboard:~# for i in {1…247}; do modbus_client -mrtu /dev/ttyAPP1 --debug -a$i -t3 -r0x80 -s2 -pnone; done 2>/dev/null | grep Data:

В результате выполнения скрипта (2-3 минуты) вы получите набор адресов типа:
Data: 0x0001
Data: 0x0007
Data: 0x00ED
Один из них и будет адресом вашего устройства.

Командой

echo -e modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \ -a1 -t0x03 -r200 -c 6 | \ grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'

Можно прочесть сигнатуру устройства (-a соответствующий укажите), чтобы в точности убедиться, что это оно.


#3

Да, перед работой в командной строке остановите драйвер: service wb-mqtt-serial stop


#4

Проще установить новый адрес.


#5

Конечно тет-а-тет оставить устройство с контроллером для изменения адреса проще всего, но проблема в том что


#6

Не обязательно использовать WB для этой цели. Взять любой адаптер типа USB-RS485-M1 за 350 руб. и программу типа qModMaster, не?


#7

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


#8

И как , получилось чего?


#9

не успел вчера добраться, сегодня проверю. У меня собственно аналогичная идея была, вы подтвердили мою догадку. Отпишусь по результатам.


#10

вот на это service wb-mqtt-serial stop выдало что сервис неизвестен
скрипт отработал несколько странно - в результатах было 4 устройства (не считая 0x0001 - это как я понял сам wb), хотя на шине три (реле и два диммера, один из которых работает корректно)
но главное - результат, - реле нашлось, и с ним все работает, с димером хуже - из тех что остались, ни один адрес не завелся.
PS задержка в 2-3 секунды при отображении статуса в веб интерфейсе реле при прямом управлении каналами это нормально же да?


#11

Да, прошу прощения, я не посмотрел внимательно: для WB4 команда
service wb-homa-modbus stop

(потом service wb-homa-modbus start после всех операций)

И перепроверьте, что получится в результате. Задержка в 2-3 секунды – да, нормально. У контроллера не должно быть никакого modbus-адреса: думаю, 0x0001 получилось из за конкурентной работы с шиной wb-homa-modbus и modbus_client – при совместном использовании шины результат непредсказуем. Но хорошо, что все нашлось.


#12

http://joxi.ru/KAgLValtX98Evr
У меня при запуски команды ничего не отображает