Логотип ONOKOM

Бот

Инструкция

Подбор шлюза для кондиционера через Telegram Bot

В этой статье будут рассмотрены способы смены Modbus-адреса шлюза ONOKOM в различных системах умного дома. Существует множество способов, но в статье описывается общий алгоритм и приводятся примеры для разных систем

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

1. Смена Modbus-адреса через ПК

Скопировано

Рассмотрим общий алгоритм для смены Modbus-адреса на шлюзе:
1. Необходимо подключить шлюз к ПК через преобразователь USB в RS485, например WB-USB485
2. Найти программу, способную работать с Modbus (Считывать и записывать Modbus регистры)
3. С помощью программы в 128-й Holding регистр шлюза записать нужный адрес

1.1 Смена Modbus-адреса через ONOKOM Modbus Tool

Скопировано

ONOKOM Modbus Tool — программа, разработанная специалистами ONOKOM, при помощи которой можно обновлять прошивку шлюзов, изменять их скорость и адрес.

Для использования программы необходим преобразователь USB в RS485, например WB-USB485

1.1.1 Для ПК на системе Windows

Скопировано

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

Версия программы для Windows: ONOKOM-Modbus-Tool-Windows

Интерфейс программы для Windows:

Интерфейс программы для Windows

В примере мы рассмотрим ситуацию, когда на одной шине подключено несколько шлюзов ONOKOM. Подключаем преобразователь в порт USB.
Скачиваем и запускаем программу, при запуске появится предупреждение о внесении изменений на устройстве, соглашаемся на внесение изменений. Это нормально для неподписанных приложений от независимых разработчиков.

Перед нами открывается приложение ONOKOM Modbus Tool, пока что мы не видим шлюзов. Для продолжения нам нужно указать порт для поиска

Смена порта

В поле "Serial порт" нужно выставить порт, к которому подключен преобразователь USB-RS485, в примере это порт COM5. Нажимаем "Поиск устройств"

Поиск устройст на правильном порту

Видим, что к порту COM5 подключены три шлюза: TCL-3-MB-B, HS-5-MB-B, TB-1-MB-B

Здесь можно посмотреть:
- Номер и название устройства
- Адрес
- Серийный номер
- Порт и скорость работы шлюза
- Версию загрузчика
- Версию прошивки
- Сигнатуру прошивки

Смена адреса устройства

В примере два шлюза имеют одинаковый modbus-адрес — 1
Давайте сменим адрес одного из шлюзов. Для этого нажимаем на строку шлюза №2 и в поле Смена адреса стрелочками или вписав значение, выставляем новый адрес — 3
Затем нажимаем "Сменить адрес"

Окно смены адреса устройства

После этого появится окно о смене адреса на новый

Поиск устройств после смены адреса

Чтобы обновить данные, снова нажимаем "Поиск устройств". Теперь у шлюзов обновилась информация

1.1.2 Для ПК на системе macOS

Скопировано

Версия программы для macOS (ARM64): ONOKOM-Modbus-Tool-macOS-arm64

Версия программы для macOS (Intel): ONOKOM-Modbus-Tool-macOS-x86_64

Перед запуском программы необходимо открыть "Терминал" в папке с утилитой и прописать следующую команду. Это позволит избежать ошибки "App Is Damaged and Can’t Be Opened" и запустить файл

sudo xattr -d com.apple.quarantine ./ONOKOM\ Modbus\ Tool.app/

Интерфейс программы для macOS:

Интерфейс программы для macOS

В поле "Serial port" нужно выставить порт, к которому подключен шлюз

Интерфейс программы для macOS

В нашем случае порт называется "/dev/cu.usbmodem56292318841 - USB Single Serial"

Интерфейс программы для macOS

Нажимаем кнопку "Поиск устройств" и видим подключенный шлюз

Интерфейс программы для macOS

В после смена адреса записываем нужное значение. В нашем случае 12

Интерфейс программы для macOS

Нажимаем кнопку "Сменить адрес", после чего видим уведомление об успешной операции

1.2 Смена адреса через modbus_client на ПК

Скопировано

modbus_client — утилита для опроса устройств по протоколам Modbus RTU и Modbus TCP из командной строки. Утилита существует в разном исполнении для разных ОС

1.2.1 Для ПК на системе Linux

Скопировано

Скачайте пакет для настольных компьютеров с Linux.
Перейдите в папку со скаченным пакетом и установите его командой:


sudo apt install ./modbus-utils_1.3.0_amd64.deb    
    

Также автоматически должен установиться пакет libmodbus, если этого не произошло — установите его из репозитория apt.
Альтернативный способ собрать пакет из исходников, инструкция по сборке на портале поддержки

Для изменения Modbus-адреса шлюза необходимо записать новый адрес в holding-регистр 128

Следующей командой меняем Modbus-адрес шлюза на «12»:


modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12

Разберем используемые параметры:

--debug — вывод отправляемых и принимаемых данных;
-mrtu — определяем тип используемого протокола, в нашем случае Modbus RTU. Должен указываться первым в командной строке или вторым если первый аргумент --debug или имя файла порта RS-485;
-b9600 — скорость передачи данных по линии, по умолчанию значение 9600;
-pnone — параметр контроля четности;
-s2 — количество стоповых битов, 1 или 2;
/dev/ttyRS485-1 — адрес serial-порта, к которому подключено опрашиваемое устройство;
-a1 — адрес устройства;
-t0x06 — адрес функции записи holding-регистра;
-r128 — адрес регистра, значение которого мы запрашиваем;
12 — новое значение, которое записываем в регистр

1.2.2 Для ПК на системе Windows

Скопировано

Скачайте в отдельную папку актуальную версию Modbus-client для Windows и переименуйте скаченный файл в modbus_client.exe

Пример на windows

Откройте папку с загруженным файлом в командной строке. Для этого: откройте папку с файлом, нажмите на адресную строку вверху окна, наберите cmd и нажмите Enter. Текущая папка откроется в командной строке

Пример на windows

В командной строке введите наименование файла modbus_client (или .\modbus_client) и нажмите Enter.
Если все работает правильно, на экране отобразится справка по работе с программой.

Следующей командой меняем Modbus-адрес шлюза на «12»:


.\modbus_client --debug -mrtu -b9600 -pnone -s2 COM9 -a1 -t0x06 -r128 12

Пример на windows

Разберем используемые параметры:

--debug — вывод отправляемых и принимаемых данных;
-mrtu — определяем тип используемого протокола, в нашем случае Modbus RTU. Должен указываться первым в командной строке или вторым если первый аргумент --debug или имя файла порта RS-485;
-b9600 — скорость передачи данных по линии, по умолчанию значение 9600;
-pnone — параметр контроля четности;
-s2 — количество стоповых битов, 1 или 2;
COM9 — имя COM-порта, к которому подключено опрашиваемое устройство;
-a1 — адрес устройства;
-t0x06 — адрес функции записи holding-регистра;
-r128 — адрес регистра, значение которого мы запрашиваем;
12 — новое значение, которое записываем в регистр

Пример на windows

Чтобы узнать к какому порту на ПК подключен ваш шлюз, перейдите в "Диспетчер устройств" и найдите порты (COM и LPT)

1.2.3 Для ПК на системе macOS

Скопировано

Скачайте и распакуйте утилиту для вашей ОС:
Modbus-client для MacOS (Intel);
Modbus-client для MacOS (Apple silicon);

Откройте "Терминал" и перейдите в папку с утилитой

Для начала убедитесь, что у вас есть права на файл утилиты, при необходимости назначьте права командой:


 chmod u+rwx ./modbus_client
    

Далее небходимо прописать следующую команду. Она позволит избежать ошибки "App Is Damaged and Can’t Be Opened" и запустить файл


xattr -d com.apple.quarantine ./modbus_client
    

Можно запустить утилиту следующей командой и в терминале появится подсказка по работе с программой


./modbus_client
    

Далее необходимо подключить шлюз к ПК через преобразователь USB-RS485 и посмотреть имя порта, к которому подключено устройство. Это можно сделать следующей командой:


 ls /dev/tty.usb*
    

Наконец вводим следующую команду для смены Modbus-адреса. В нашем случае это 12 адрес:


modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/tty.usbmodemXXXXXX -a1 -t0x06 -r128 12

Разберем используемые параметры:

--debug — вывод отправляемых и принимаемых данных;
-mrtu — определяем тип используемого протокола, в нашем случае Modbus RTU. Должен указываться первым в командной строке или вторым если первый аргумент --debug или имя файла порта RS-485;
-b9600 — скорость передачи данных по линии, по умолчанию значение 9600;
-pnone — параметр контроля четности;
-s2 — количество стоповых битов, 1 или 2;
/dev/tty.usbmodemXXXXXX — имя USB-порта к которому подключено устройство;
-a1 — адрес устройства;
-t0x06 — адрес функции записи holding-регистра;
-r128 — адрес регистра, значение которого мы запрашиваем;
12 — новое значение, которое записываем в регистр

После процедуры в терминале появится подтверждение, что мы успешно записали значение в регистр

1.3 Смена адреса через Rilheva Modbus poll

Скопировано

Rilheva Modbus Poll – Программа для работы с Modbus, подойдёт для Windows. Она бесплатна, не требует установки, имеет понятный интерфейс и возможность сохранения настроек обмена и конфигурации регистров. Для работы с программой, также необходимо подключить шлюз к ПК через преобразователь USB в RS485

Шаблон rilheve mbpoll

Для работы со шлюзом можно использовать наш шаблон в котором выведены и подписаны все регистры из Общедоступной карты регистров. Для работы с шаблоном нужно будет его скачать, открыть его и скорректировать настройки modbus-соединения

Шаблон rilheve mbpoll

Чтобы открыть шаблон, в левом верхнем углу нажимаем на кнопку "Open configuration" и выбираем шаблон

Шаблон rilheve mbpoll

Шаблон rilheve mbpoll

После открытия шаблона проверяем настройки modbus-соединения и нажимаем кнопку "Connect"

Шаблон rilheve mbpoll

Если всё было настроено правильно, то регистры начнут считываться и в шаблоне появится актуальная информация

Интерфейс Rilheva Modbus poll

Для работы без шаблона скачиваем и устанавливаем программу, далее запускаем и видим её интерфейс

Настройки modbus-соединения

Для начала необходимо выставить настройки modbus-соединения нашего устройства и нажать
кнопку "Connect". В примере выставлены настройки поумолчанию:

-Serial Port
-Modbus slave id: 1
-Timeout: 2000
-Polling frequency: 2000
-COM port: COM 9 (Порт к которому подключено ваше устроство)
-Baude rate: 9600
-Data bits: 8
-Parity: None parity
-Stop bits: 2

Вывод регистра в интерфейс

Далее нажимаем на кнопку "Add register" и вводим туда 128 регистр в котором и хранится Modbus-адрес. В строке "Alias" можно ввести название регистра. Снимаем галочку "Read only", чтобы можно было менять значения регистра.

В строке "Read function" выбираем "Read Holding Registers (03)". В графе "Type" ставим "16 bit unsigned". Остальные параметры не трогаем. Нажимаем "Ok"

Настройка завершена успешно

В строке состояния стоит статус "CONNECTED", а в 128-м регистре мы считываем значение 1, значит мы настроили всё верно

Смена адреса

Чтобы изменить значение регистра, наведите на текущее значение 128-го регистра в столбце
"Current value", введите туда необходимый адрес и нажмите "Enter". В нашем случае адреc будет 12

Ошибка

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

Далее необходимо поменять адрес на текущий в настройках соединения и снова подключиться

Устранение ошибки

Для этого нажимаем кнопку "Disconnect" и в графе "Modbus slave id" ставим текущее значение, в нашем случае - 12. После нажимаем кнопку "Connect"

Завершение

Если всё выполнено верно, ошибка пропадет и мы снова можем корректно считывать данные.
Как можно заметить, значение адреса поменялось на 12

2. Смена адреса через Wiren Board

Скопировано

По умолчанию все шлюзы ONOKOM имеют адрес «1». Существует несколько способов смены адреса шлюза через Wiren Board

2.1 Смена адреса через modbus_client на Wiren Board

Скопировано

Если к одной шине подключено несколько шлюзов ONOKOM c одинаковым адресом, необходимо менять Modbus-адреса поочередно. Подключая по одному шлюзу на шину

Для изменения Modbus-адреса шлюза необходимо записать новый адрес в holding-регистр 128. Перед этим останавливаем драйвер «wb-mqtt-serial»:


systemctl stop wb-mqtt-serial

Следующей командой меняем Modbus-адрес шлюза на «12»:


modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12

Смена Modbus-адреса в консоли.

Разберем используемые параметры:

--debug — вывод отправляемых и принимаемых данных;
-mrtu — определяем тип используемого протокола, в нашем случае Modbus RTU. Должен указываться первым в командной строке или вторым если первый аргумент --debug или имя файла порта RS-485;
-b9600 — скорость передачи данных по линии, по умолчанию значение 9600;
-pnone — параметр контроля четности;
-s2 — количество стоповых битов, 1 или 2;
/dev/ttyRS485-1 — адрес serial-порта, к которому подключено опрашиваемое устройство;
-a1 — адрес устройства;
-t0x06 — адрес функции записи holding-регистра;
-r128 — адрес регистра, значение которого мы запрашиваем;
12 — новое значение, которое записываем в регистр

Эта команда означает, что при остановленном драйвере «wb-mqtt-serial» устройству с адресом «1» подключенному к порту «RS485-1» устанавливается адрес «12». Не забываем включить «wb-mqtt-serial»:

systemctl start wb-mqtt-serial

Также нужно изменить адрес на странице Wiren Board:

Смена Modbus-адреса в интерфейсе Wiren Board.

Переходим на страницу устройства, в строке «Адрес устройства» меняем на «12», сохраняем настройки

2.2 Смена адреса через modbus_scanner на Wiren Board

Скопировано

Если к одному порту подключено несколько устройств, может быть удобна смена адреса по серийному номеру устройства.
С остановленным драйвером «wb-mqtt-serial» через утилиту «wb-modbus-scanner» узнаем, какие устройства подключены к порту «RS485-1» считываем их серийные номера. В примере серийный номер устройства — 229330:


wb-modbus-scanner -d /dev/ttyRS485-1 -b 9600

Далее меняем устройству с серийным номером 229330 Modbus-адрес на «12»:


wb-modbus-scanner -d /dev/ttyRS485-1 -b 9600 -s 229330 -i 12

Не забываем включить драйвер «wb-mqtt-serial»


systemctl start wb-mqtt-serial

Смена Modbus-адреса через серийный номер устройства.

Разберем используемые параметры:
-d /dev/ttyRS485-1 — порт, к которому подключено устройство;
-b 9600 — скорость передачи данных по линии, по умолчанию значение 9600;
-s 229330 — серийный номер устройства;
-i 12 — задание нового адреса устройству

3. Смена Modbus-адреса через iRidi

Скопировано

В этом разделе рассмотрим смену Modbus-адреса на системе iRidi в приложении Bus77 Home и iRidi Studio

3.1 Через приложение Bus77 Home

Скопировано

Запускаем приложение и открываем список настроек соответствующей кнопкой в правом верхнем углу экрана

Запускаем приложение и открываем панель опций соответствующей кнопкой в правом верхнем углу экрана

Переходим в меню настроек

Переходим в меню настроек

В меню выбираем пункт Устройства

В меню выбираем пункт "Устройства"

Открываем список доступных шлюзов iRidi“

Открываем список доступных шлюзов iRidi

Нажимаем на кнопку Добавить устройство

Нажимаем на кнопку "Добавить устройство"

Поиск занимает некоторое время и в среднем проходит за пару минут

Поиск занимает некоторое время и в среднем проходит за пару минут

Также можно добавить шлюз вручную

Также можно добавить шлюз вручную

Для ручного добавления следует указать Modbus-адрес шлюза и нажать на Добавить в проект

Для ручного добавления следует указать Modbus-адрес шлюза и нажать на "Добавить в проект"

Если вы решите задать Modbus-адрес вручную, то в таком случае вам нужно заранее выставить необходимые адреса на подключаемых шлюзах любым другим способом

3.2 Через приложение iRidi Studio

Скопировано

Запускаем приложение и на главном экране выбираем Создать Bus77 проект

Запускаем приложение и на главном экране выбираем "Создать Bus77 проект"

Указываем название проекта и выбираем Bus77

Указываем название проекта и выбираем "Bus77"

В открывшемся окне нажимаем Поиск в сети

В открывшемся окне нажимаем "Поиск в сети"

В случае, если шлюз I-CAN-Modbus не будет найден автоматически, нажимаем на иконку поиска

В случае, если шлюз I-CAN-Modbus не будет найден автоматически, нажимаем на иконку поиска

Нажимаем правой кнопкой мыши по найденному шлюзу и выбираем Добавить в проект

Нажимаем правой кнопкой мыши по найденному шлюзу и выбираем "Добавить в проект"

Шлюз I-CAN-Modbus будет добавлен

Шлюз I-CAN-Modbus будет добавлен

Для добавления шлюза ONOKOM выбираем устройство I-CAN-Modbus и нажимаем на кнопку Добавить подустройство

Для добавления шлюза ONOKOM выбираем устройство I-CAN-Modbus и нажимаем на кнопку "Добавить подустройство"

Для добавления можно воспользоваться автоматическим поиском

Для добавления можно воспользоваться автоматическим поиском

При автоматическом поиске iRidi присвоит шлюзу случайны свободный адрес.
Автоматический поиск не сработает, если шлюз не подключен, и кондиционер отключен от питания

Также устройство можно добавить вручную

Также устройство можно добавить вручную

Для этого понадобится ввести Modbus-адрес устройства и нажать Добавить в проект

Для этого понадобится ввести Modbus-адрес устройства и нажать "Добавить в проект"

Шлюз будет добавлен

Шлюз будет добавлен

4. Смена Modbus-адреса через Larnitech

Скопировано

В этом разделе рассмотрим смену Modbus-адреса на системе Larnitech

4.1 Смена Modbus-адреса с помощью LT Setup

Скопировано

Переходим по локальному адресу контроллера Larnitech и вводим необходимые данные

Переходим по локальному адресу контроллера Larnitech и вводим необходимые данные

Переходим в меню Сценарии на вкладку Редактировать сценарии и нажимаем Загрузить сценарий

Переходим в меню "Сценарии" на вкладку "Редактировать сценарии" и нажимаем "Загрузить сценарий"

Выбираем скачаный файл

Выбираем скачаный файл

Далее в меню Сценарии на вкладке Сценарии из логики нажимаем Добавить скрипт

Далее в меню "Сценари" на вкладке "Сценарии из логики" нажимаем "Добавить скрипт"

 В открывшемся окне выбираем загруженный скрипт и нажимаем Выбрать

В открывшемся окне выбираем загруженный скрипт и нажимаем "Выбрать"

Настройка для смены Modbus-адреса

Перед тем как менять Modbus-адрес, убедитесь, что на шине находится одно устройство

- Выбираем режим работы "Установка Modbus-адреса"
- Указываем текущий и новый Modbus-адреса
- Для удобства и информативности можно включить push-уведомления во время настройки
Нажимаем "Сохранить"

После загрузки скрипта, в мобильном приложении Larnitech будет уведомление найдено ли устройство на адресе 1

После загрузки скрипта, в мобильном приложении Larnitech будет уведомление найдено ли устройство на адресе 1

Для смены адреса переходим в разделе Свет и включаем устройство Сменить адрес

Для смены адреса переходим в раздел "Свет" и включаем устройство "Сменить адрес"

"C:\Users\info\OneDrive\Документы\GitHub\website\img\integraciya\integraciya-larnitech-i-onokom\nastrojka-podklyucheniya-lt-setup-14.webp" При успешной смене адреса будет следующее уведомление

При успешной смене адреса будет следующее уведомление:
"Адрес Modbus изменен: старый адрес -> новый адрес"

5. Смена Modbus-адреса через Loxone

Скопировано

В этом разделе рассмотрим смену Modbus-адреса на системе Loxone

Перед тем как менять Modbus-адрес, убедитесь, что на шине находится одно устройство

Пример шаблона

В шаблонах Loxone для наших устройств уже предусмотрена возможность смены адреса. Это выглядит как виртуальны вход "Modbus address" и привод "Modbus address (service)"

Настройка шаблона

В привод "Modbus address (service)" уже заранее выставлены настройки для записи адреса в 128-ой регистр

Настройка шаблона

В таком случае нам нужно зайти в настройки виртуального входа "Modbus address" и ввести нужное значение

Настройка шаблона

В нашем случае адрес 12

Настройка шаблона

Далее соединяем ноду, если не была соединена и сохраняем изменения на сервер