Опрос выключателей по RS-485

Добрый день!
Возможно ли с помощью Wiren Board 6 получать информацию приходящую по RS-485 и уже дальше самому ее парсить?Если да,то как?
Ситуация такая:
Имеются выключатели и с них надо считать какая именно клавиша была нажата, протокол имеется,но как в консоле увидеть приходящую строку-не понимаю,пытался запускать python-скрипт на прослушивание шины RS-успеха не принесло.

Technical parameters1.1Method: RS485 master-slave mode (switch)1.2 Baud rate: 19200 BPS1.3 Word frame format: 1 start bit, 8 data bits, stop bits, no parity checking
Instruction format
2.1 Instruction format is defined
Receive instruction format: address (1 b) + function code (1 b) + device type code (2 b) plus data (nB) + CRC (2 b) respond to instructions
Format: address (1 b) + function code (1 b) + device type code (2 b) plus data (nB) + CRC
(2 b)Among them,The address range of 0 x81 x8f 0;0 x80 to switch button (local) broadcast address;0 x00 as global broadcast address;Function code is: 0 x03 (query equipment data);0 x06 (distributed control data);Device type code 0 x0012;The data of definition can be found in thenext section

Добрый день!

https://wirenboard.com/wiki/index.php?title=Драйвер_wb-mqtt-serial:Примеры_написания_шаблонов

Тут описывается как связываться с modbus-устройствами, но если это устройство не Modbus,есть варианты увидеть информацию с устройства?Т.е. да у выключателя есть адрес устройства,но нет адресов регистров как таковых. Есть вариант просто увидеть приходящую строку без отправки какого-либо запроса на считывание регистров?

https://wirenboard.com/wiki/index.php/Работа_с_последовательным_портом_из_Linux

Но вот это очень похоже на протокол Modbus другим словами.

1 лайк

А есть еще какая-нибудь информацию по тому,чтобы по полученным данным можно было бы как-то среагировать на какой-либо mqtt-канал?
Целая картина такая
Имеем WirenBoard6 с установленным на нем iRidium Server,есть выключатели(без адресов регистров), подключенные к WB6 по RS-485,нужно чтобы в иридиум сервер пришла информация какая клавиша была нажата. Т.е. нет проблем парсить приходящую строку, есть проблема с отправкой результата в Иридиум сервер

Тогда там же, где парсите входящую строку, выполняйте публикацию MQTT сообщения. Для разных языков есть свои библиотеки, на крайний случай можно выполнять mosquitto_pub. Ещё может пригодиться статья MQTT в контроллерах Wiren Board — Wiren Board

1 лайк

Да,спасибо,все получилось

Отлично. А можете поделиться, что за устройство подключали, какой код в итоге написали?

Я честно говоря не знаю ни названия, ни модели этих выключателей,знаю только,что они китайские есть только pdf с описанием протокола. Если как-то сюда можно скинуть pdf, то я скину
А сам код на python еще не дописал,мне было главное связать между собой RS и mqtt, взял немного с serial tool считывание данных RS485 и использовал библиотеку paho mqtt для публикаций сообщений, ну и в зависимости от приходящей строки(ну т.е. по определению нажатой кнопки) посылаю в определенный канал mqtt 0 или 1, пока так,дальше буду дорабатывать

Хорошо. Можно ссылку на Ali скинуть, и pdf тоже можно через иконку загрузить (стрелка вверх). Либо можно скриншоты документации как картинки.


ссылки на ali тоже нет,мне вот только эти данные дали и всё

1 лайк

Спасибо. А фото самих выключателей есть?

только вот такие

1 лайк