Почему WB-MGE v.2 работает медленнее чем USR-DR302

Подключаю только ваше оборудование реле, эл счетчик итд, если подключить его к WB-MGE v.2 то реле просто нереально тормозит, показания со счетчика тоже не так быстро отображаются, я хотел бы получить такую же скорость потому что WB-MGE v.2 и WB-MIO-E v.2 у меня намного больше.
Тестирую все в HA, я думаю раз тоже самое оборудование на той же самой системе умного дома работает быстрее на USR-DR302 значит дело или в том что ваш шлюз хуже по аппаратной части или просто я не правильно его настроил что более вероятно.
Если какие то настройки забыл показать дайте знать.

вот настройки USR-DR302



вот настройки WB-MGE v.2 или WB-MIO-E v.2 у меня их 5шт и настройки везде одинаковы


Добрый день.
Пример задержки (выполняю 100 запросов, оцениваю время) через шлюз WB-MGE.
За шлюзом шина 9600.

time for i in {0..100}; do modbus_client -mtcp 10.0.0.71 -o 50 -a113 -t3 -r 128 -c1; done
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 
SUCCESS: read 1 of elements:
	Data: 0x0071 

real	0m3.730s
user	0m0.108s
sys	0m0.405s

видно что один запрос занимает 37,3мс

На скорости 115200 - один запрос будет занимать ~5мс.
Время лимитируется скоростью RS-485 шины. Используемый вами щлюз работает быстрее?
Если да - то я не представляю как это возможно. Если не сложно - покажите пожалуйста сколько времени занимает один запрос.

я же написал что проблема когда я на один шлюз сажу реле и датчики, тогда время выполнения команды посланной на реле сильно увеличивается. Вы это проверяли ? опросить датчики это понятно, а вот что с командами под нагрузкой ? и проверять надо когда шлюз загружен как минимум WB-MAP12E я считываю по 3 показателя с каждого канала (Ток, мощность, счетчик) раз в секунду, а лучше еще посадить WB-MSW v.4 с полным набором сенсоров и обновлять их тоже не реже чем раз в секунду и вот тогда проверять команды.

И вопрос был по настройкам, я хотел бы получить полностью аналогичные настройки как на USR-DR302, по скринам на WB-MGE v.2 мне есть что поменять чтобы было так же ?

к примеру такая мелочь как макс количество клиентов на WB-MGE v.2 8, а на USR-DR302 4 может еще что то ?

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

к примеру настройка на USR-DR302 TCP Server-kick off old connection: где такая же на WB-MGE v.2 ?

У меня к этому шлюзу подключены как реле (2шт) так и датчики. В любой момент времени обмен происходит между мастером и одним устройством, так что время не зависит от количества устройств.

А смысл? Если я проверяю обмен когда штатный опрос остановлен - то прочие slave не опрашиваются.
Если запускаю опрос - то драйвер выполняет ззапись вставляя ее приоритетно в очередь планировщика. И перестраивает порядок следующих запросов, сдвигая ввниз неприоритетные.
Да, можно получить задержку инициировав условно одновременно десяток записей в разные модуля, соответственно задержка будет (врямя цикла * количество записей).

Я не вижу принципиальных отличий.

В случае одного мастера - не влияет.

Screenshot_20250120_092107

А на чем сделан этот шлюз? Документация к модулю дашего - тут: Преобразователь интерфейсов WB-MGE v.2 — Wiren Board

ну то есть у вашего шлюза какие то аппаратные проблемы ? если он не может работать в Home Assistant так же как шлюз который в три раза дешевле

у меня столько же инфы сколько и у вас, админка очень похожа на вашу
ваших шлюзов у меня 5 штук разных ревизий и самые последние тоже есть и ни один нормально не работает, зачем столько денег потратил непонятно

и я так и не услышал вы время выполнения команд на реле проверяли ? когда у шлюза есть нагрузка из многих датчиков про которые я писал

Покажите пожалуйста, продемонстрируйте что именно не работает. Вот например логи опроса.

Если оборудование не устраивает - то у нас есть схема возврата.
Напомню - WB-MGE это просто шлюз. Он никак не модифицирует то что принято от мастера и от устройств.

Да. Вот сейчас.
Пример:

time for i in {0..50}; do modbus_client_rpc -mtcp 10.0.0.71 -o 250 -a11 -t0x05 -r 1500 1; modbus_client_rpc -mtcp 10.0.0.71 -o 250 -a11 -t0x05 -r 1500 0; done
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element
SUCCESS: written 1 element

real	2m47.544s
user	0m50.719s
sys	0m6.366s

Видно что одна запись, даже неприоритетная на полностью занятой драйвером шине занимает ~1,6 секунды.
Если работать через драйвер, когда запись приоритизируется то ~45мс на один обмен. Да, это больше расчетнгого - но так как запись вызывается асинхронно - то драйвер дожидается завершения текущего в очереди, уже запущенного обмены и запускает запись.

Я неплохо знаю протокол и его тайминги.

Добрый день.
Хочу уточнить - есть ли вопросы про методику проверки быстродействия?