WB-MIO-E скорость опроса с WB6

Приветствую

в квартире много выключателей и часть пришлось подключить через WB-MIO-E и WBIO-DI-DR-14 блоки.

при нажатии кнопок подключенных таким образом вижу задержку около 0.5с.
что многовато для меня.

Можно ли как-то увеличить скорость срабатывания?

1 лайк

А какое количество MIO-E подключено?
И внутри MIO какая скорость шины настроена?

WB-MIO-E одно и соединено напрямую с WB6 eth кабелем

к WB-MIO-E сбоку 4 модуля ввода WBIO DR-14, разве у них настраивается скорость?

На сколько помню сбоку к WB6 только 4 таких модуля можно подключить? иначе бы все к WB-6 подключил

Есть какие либо мысли?

Хочется реализовать в правилах отдельную логику для долгих нажатий и отдельно для коротких, а с такими задержками это не реально

Да, 4 модуля входов, 4 -выходов максимум.
Скорость - конечно настраивается, не для подключаемых модулей а для интерфейса внутри MIO https://wirenboard.com/wiki/WB-MIO

читаю документацию модуля WM-MIO-E и не могу понять какую скорость надо увеличить и где в моем случае.

У меня соединение с модулем по ethernet, modbus не подключен.

Можете подсказать что делать с этим модулем?

  • Подключить временно через 485 порт (modbus), отключив ethernet.
  • Затем поменять значение регистра 110 согласно карте https://wirenboard.com/wiki/WB-MIO-Modbus-Registers
    на 1152.
  • Проверить работу modbus на установленной скорости.
  • Отключить 485 и снова подключить ethernet. Поменять настройки скорости в веб-интерфейсе.

Напомните пожалуйста как из консоли вирена слать команды по 2 порту RS-485?

Поменяйте адрес на свой:

export DEV_PORT=/dev/ttyRS485-2
export DEV_ADDR=88
modbus_client -mrtu -pnone -s2 $DEV_PORT -a$DEV_ADDR -t0x06 -r110 1152

Полное описание: https://wirenboard.com/wiki/index.php/Modbus-client

Сделал. вроде стало побыстрее но не то чтобы сильно. теперь максимальная задержка ~200ms

что все равно много. может как-то можно вынести в отдельную очередь запросы к WB-MIO-E?

в /var/log/messages никаких ошибок не вижу.

Для каждого порта своя очередь. А как оцениваете задержку?

запустил на контроллере mosquitto_sub -t ‘/devices/wb-mio-gpio_37:1/#’ -v

нажал на кнопку и таймером на телефоне засек когда увидел сообщение о изменении статуса.

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

Вот появилась тема

Советую поддержать.

у меня не на реле надо а в WBIO. хотя основная причина почему я брал WBIO именно в том что на реле нет таких алгоритмов…

Так понимаю возможности ускорить приход данных от WB-MIO-E нет?

Как вариант - переписать шаблон, оставив только “нужное”. Но кардинально - нет.

Сдается мне что проблема где-то в коде который опрашивает устройство.

Если в настройках оставляю одно или два устройства с WB-MIO-E ( при этом физически ничего не отключаю)

Настройка:

Сводка

{
“address”: “192.168.0.7”,
“port”: 20108,
“devices”: [
{
“slave_id”: “37:1”,
“device_type”: “WBIO-DI-DR-14”,
“poll_interval”: 0
},
{
“slave_id”: “37:2”,
“device_type”: “WBIO-DI-DR-14”,
“poll_interval”: 0
}
],
“port_type”: “tcp”,
“poll_interval”: 0,
“type”: null
}

То все работает мгновенно, нет задержек и прочее.

но стоит добавить третье устройство:

Сводка

{
“address”: “192.168.0.7”,
“port”: 20108,
“devices”: [
{
“slave_id”: “37:1”,
“device_type”: “WBIO-DI-DR-14”,
“poll_interval”: 0
},
{
“slave_id”: “37:2”,
“device_type”: “WBIO-DI-DR-14”,
“poll_interval”: 0
},
{
“slave_id”: “37:3”,
“device_type”: “WBIO-DI-DR-14”,
“poll_interval”: 0
}
],
“port_type”: “tcp”,
“poll_interval”: 0,
“type”: null
}

То все начинает тормозить вплоть до 1.5с задержек время от времени.

Попробуйте поставить свежий пакет из

wb-mqtt-serial не работает с WB-MIO-E начиная с версии 2.1.0

Ошибки чтения регистров.
в /var/log/messages только такие строки встречал
Failed to accept ‘/meta/order’ on control ‘wb-mio-gpio_37:1/IN12’: strconv.Atoi: parsing “”: invalid syntax, ignored

др ошибок нет

В общем БЕЗ параметра “guard_interval_us”: 0 (значение любое) - порт в опрос не включается в нестабильной крйнев ерсии 2.1 Вообще никак и в любых комбинациях.
Именно для tcp порта.
То есть надо:

        {
            "address": "10.0.0.72",
            "port": 20108,
            "devices": [
                {
                    "slave_id": "157:1",
                    "device_type": "WBIO-DO-R1G-16"
                }
            ],
            "port_type": "tcp",
            "type": null,
            "enabled": true,
            "guard_interval_us": 0
        }

Можно включить-прописать через вебморду кнопкой “Properties”