Я бы несколько поправил ваши расчеты. В одном байте можно передать состояние 8 кнопок, командой 2 (Read Discrete Inputs). Поэтому примерно надо 8 байт на одну панель или 160 байт на все. Плюс лаг 5-8 мс переключения между панелями
Максимальная скорость панелей по ссылке с али - 19200, то есть цикл опроса - 8208/19200+0,005*20 = 170 мс
Если лаг в 50 мс еще не сильно заметен, но уже есть, то 170 - это очень много.
К вопросу о решении, которое точно работает -
В одном проекте мы скрестили оборудование WB c Crestron. От Crestron - панели (C2NI-CB они удобно кастомизируются) с контроллером, а от WB силовая часть - реле, диммеры и датчики. Малая часть реле висит на сухих контактах (кнопках), а остальные, с диммерами и прочим, управляются с панелей C2NI через 485 порт крестрона.
Используется на одной шине порядка 20 устройств, цикл опроса порядка 2-х секунд на скорости 9600. Не все опрашиваются, реле штор например просто переключаются.
При нажатии кнопки на панели C2NI цикл опроса приостанавливается, отправляется команда на включение/выключение реле, и после исполнения команды продолжается. Задержки исполнения команды не заметны.
А вот отслеживание включения реле и отображение этого на айпаде (если включение реле происходит с кнопки / сухого контакта и контроллер про это ничего не знает) составляет как раз порядка секунды-двух. Так как цикл опроса самописный, мне ничего не мешает опрашивать определенные устройства несколько раз в течение цикла, сокращая задержку за счет удлинения опроса других модулей. Но пока это не понадобилось, кроме того, что были мысли повесить на сухие входы реле датчики движения. Из-за задержек решили отказаться и использовать для отслеживания датчиков те же панели C2NI, благо на каждой есть два входа для сухих контактов.
Крестрон использует у себя для опроса своих устройств собственных протокол на 485 шине (он называется Crestnet). Я внутрь не заглядывал, но судя по всему, он явно не “один ведущий, все ведомые”, либо используется динамический поллинг, так как для подобных инсталляций в 30-40 панелей/исполнительных устройств (в том числе датчиков движения) на одной шине, задержки бывают единичными случаями.
Насчет кнопок/сухих контактов - зря вы их отрицаете. Стоит один раз проложить под них кабель, лучше всего витую пару на 4 пары, как потом нет проблем с подключением чего либо. Хотите - кнопку, можно - две кнопки, или - панель 485 с питанием, а может - панель KNX, или даже айпад. Полная свобода и высокая скорость работы.
Точно работают KNX-панели. И вроде выбор большой, но не всегда есть то, что хочется, и не каждый согласен потратить 10-20 тысяч рублей на кнопочную панель с пятью кнопками.
Если рассматриваете беспроводные кнопки - можете посмотреть в сторону DeLUMO, но с интеграцией туговато. Или nooLite - с ним попроще, но сами пульты/панели простенькие и не всем по нраву.