Ошибка failed to read при обращении к датчикам WB-MSW2

Здравствуйте.
Есть WB5 к которому к одному из портов rs485 подключено последовательно 7 датчиков WB-MSW2. Конфиг wb-mqtt-serial.conf целиком:

{
  "debug": false,
  "ports": [
    {
      "path": "/dev/ttyAPP1",
      "devices": [
        {
          "slave_id": "122",
          "device_type": "WB-MR6C",
          "name": "Реле управления светом №1 (А122)",
          "id": "ShineRelay1",
          "enabled": true
        },
        {
          "slave_id": "63",
          "device_type": "WB-MR6C",
          "id": "ShineRelay2",
          "name": "Реле управления светом №2 (А63)",
          "enabled": true
        },
        {
          "slave_id": "59",
          "device_type": "WB-MR6C",
          "id": "ShineRelay3",
          "name": "Реле управления светом №3 (А59)",
          "enabled": true
        },
        {
          "slave_id": "51",
          "device_type": "WB-MR6C",
          "name": "Реле управления светом №4 (А51)",
          "id": "ShineRelay4",
          "enabled": true
        },
        {
          "slave_id": "64",
          "device_type": "WB-MR6C",
          "name": "Реле управления светом №5 (А64)",
          "id": "ShineRelay5",
          "enabled": true
        },
        {
          "slave_id": "52",
          "device_type": "WB-MR6C",
          "name": "Реле управления светом №6 (А52)",
          "id": "ShineRelay6",
          "enabled": true
        },
        {
          "slave_id": "106",
          "device_type": "WB-MRGB",
          "name": "Диммер светодиодной ленты прихожей",
          "id": "RGBLedDimmerHall",
          "enabled": true
        },
        {
          "slave_id": "101",
          "device_type": "WB-MRGB",
          "name": "Диммер светодиодной ленты коридора",
          "id": "RGBLedDimmerCorridor",
          "enabled": true
        },
        {
          "slave_id": "13",
          "device_type": "WB-MCM16",
          "name": "Счетчик импульсов",
          "id": "PulseCounter",
          "enabled": true
        }
      ],
      "port_type": "serial",
      "baud_rate": 9600,
      "parity": "N",
      "data_bits": 8,
      "stop_bits": 2,
      "poll_interval": 10,
      "enabled": true,
      "response_timeout_ms": 1500
    },
    {
      "path": "/dev/ttyAPP4",
      "devices": [
        {
          "slave_id": "0",
          "device_type": "mercury230",
          "name": "Счетчик электроэнергии Меркурий 236",
          "id": "ElectricMeter",
          "poll_interval": 5000
        }
      ],
      "baud_rate": 9600,
      "parity": "N",
      "data_bits": 8,
      "stop_bits": 1,
      "poll_interval": 10000,
      "enabled": true
    },
    {
      "path": "/dev/ttyAPP2",
      "devices": [
        {
          "slave_id": "73",
          "device_type": "WB-MSW2",
          "name": "Уличный датчик температуры и влажности",
          "id": "SensorOut",
          "poll_interval": 20
        },
        {
          "slave_id": "33",
          "device_type": "WB-MSW2",
          "name": "Датчик климата в комнате 1",
          "id": "SensorRoom1",
          "poll_interval": 20
        },
        {
          "slave_id": "26",
          "device_type": "WB-MSW2",
          "name": "Датчик климата в спальне",
          "id": "SensorRoom2",
          "poll_interval": 20
        },
        {
          "slave_id": "34",
          "device_type": "WB-MSW2",
          "name": "Датчик климата в комнате 2",
          "id": "SensorRoom3",
          "poll_interval": 20
        },
        {
          "slave_id": "32",
          "device_type": "WB-MSW2",
          "name": "Датчик климата в кухне-гостинной",
          "id": "SensorRoom7",
          "poll_interval": 20
        },
        {
          "slave_id": "71",
          "device_type": "WB-MSW2",
          "name": "Датчик климата в ванной №1",
          "id": "SensorBathroom1",
          "poll_interval": 20
        },
        {
          "slave_id": "42",
          "device_type": "WB-MSW2",
          "name": "Датчик климата в ванной №2",
          "id": "SensorBathroom2",
          "poll_interval": 20
        }
      ],
      "baud_rate": 9600,
      "parity": "N",
      "data_bits": 8,
      "stop_bits": 2,
      "poll_interval": 100,
      "enabled": true,
      "response_timeout_ms": 3000
    },
    {
      "path": "/dev/ttyAPP3",
      "devices": [],
      "baud_rate": 9600,
      "parity": "N",
      "data_bits": 8,
      "stop_bits": 2,
      "poll_interval": 10,
      "enabled": false
    },
    {
      "address": "192.168.88.251",
      "port": 20108,
      "devices": [
        {
          "slave_id": "135:1",
          "device_type": "WBIO-DO-R10R-4",
          "name": "Модуль управления шторами",
          "id": "Curtains",
          "enabled": true
        },
        {
          "slave_id": "135:2",
          "device_type": "WBIO-DO-R10R-4",
          "name": "Модуль управления кранами с электроприводом 1",
          "id": "Valve1",
          "enabled": true
        },
        {
          "slave_id": "135:3",
          "device_type": "WBIO-DO-R10R-4",
          "name": "Модуль управления кранами с электроприводом 2",
          "id": "Valve2",
          "enabled": true
        },
        {
          "slave_id": "135:4",
          "device_type": "WBIO-DI-DR-16",
          "name": "Модуль цифровых входов 1",
          "id": "Inputs1",
          "enabled": true
        }
      ],
      "port_type": "tcp",
      "response_timeout_ms": 1000
    },
    {
      "address": "192.168.88.252",
      "port": 20108,
      "devices": [
        {
          "slave_id": "128:1",
          "device_type": "WBIO-DO-R1G-16",
          "name": "Модуль управления термоголовками и контакторами",
          "id": "Contactors",
          "enabled": true
        },
        {
          "slave_id": "128:2",
          "device_type": "WBIO-DO-R10A-8",
          "name": "Модуль управления теплыми полами",
          "id": "WarmFloor",
          "enabled": true
        },
        {
          "slave_id": "128:3",
          "device_type": "WBIO-DI-DR-16",
          "name": "Модуль цифровых входов 2",
          "id": "Inputs2",
          "enabled": true
        }
      ],
      "port_type": "tcp",
      "enabled": true,
      "response_timeout_ms": 1000
    }
  ]
}

В логах пишет следующее:

Jul 19 00:05:08 wirenboard-ATFDQKOF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 coil(s) @ 0 of device modbus:33: Serial protocol error: request timed out
Jul 19 00:05:47 wirenboard-ATFDQKOF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 coil(s) @ 0 of device modbus:26: Serial protocol error: request timed out
Jul 19 00:06:04 wirenboard-ATFDQKOF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 coil(s) @ 0 of device modbus:26: Serial protocol error: request timed out
Jul 19 00:07:28 wirenboard-ATFDQKOF daemon.info dnsmasq[3796]: reading /etc/resolv.conf
Jul 19 00:07:28 wirenboard-ATFDQKOF daemon.info dnsmasq[3796]: using nameserver 212.1.244.6#53
Jul 19 00:07:28 wirenboard-ATFDQKOF daemon.info dnsmasq[3796]: using nameserver 212.1.224.6#53
Jul 19 00:07:28 wirenboard-ATFDQKOF daemon.info dnsmasq[3796]: using nameserver 192.168.88.1#53
Jul 19 00:08:11 wirenboard-ATFDQKOF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 2 holding(s) @ 270 of device modbus:32: Serial protocol error: request timed out
Jul 19 00:10:46 wirenboard-ATFDQKOF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 2 input(s) @ 6 of device modbus:42: Serial protocol error: request timed out
Jul 19 00:11:15 wirenboard-ATFDQKOF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 2 input(s) @ 6 of device modbus:73: Serial protocol error: request timed out
Jul 19 00:12:40 wirenboard-ATFDQKOF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 coil(s) @ 0 of device modbus:32: Serial protocol error: request timed out
J

Сами датчики работают. Вроде как проблем не вижу кроме этих ошибок. Все датчик имеют тип WBMSW2. При этом на вкладке settings тоже есть ошибки:

image

Вывод dpkg -s wb-mqtt-serial

Package: wb-mqtt-serial
Status: install ok installed
Priority: optional
Section: misc
Installed-Size: 975
Maintainer: Evgeny Boger <boger@contactless.ru>
Architecture: armel
Version: 1.36
Replaces: wb-homa-modbus (<< 1.14.1)
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.4.0), libjsoncpp0, libmosquitto1 (>= 1.0), libmosquittopp1 (>= 1.0), libstdc++6 (>= 4.6), libwbmqtt0 (>= 1.7), bsdutils
Breaks: wb-homa-modbus (<< 1.14.1), wb-mqtt-confed (<< 1.0.2), wb-mqtt-homeui (<< 1.7)
Conffiles:
 /etc/wb-mqtt-serial.conf.sample c8c1adbf630e6fd7ec871b1b5c4a5e0f
 /etc/wb-configs.d/11wb-mqtt-serial 5325e375bc486e31384ed908b8ceae0e
 /etc/init.d/wb-mqtt-serial 1f9b627c559013269cc29a32ef738448
Description: Wiren Board Smart Home MQTT serial protocol driver.

С чем это связано? И как исправить?

А можно все-таки услышать разъяснения по данному вопросу?

Судя по логам, у вас раз в минуту возникают ошибки обмена. Это нормально, драйвер wb-mqtt-serial в контроллере просто перезапрашивает нужное значение.

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

Красненькое в Settings - это постоянные ошибки чтения на неподдерживаемых вашими датчиками регистрах. Если в датчике нет сенсора CO2 или сенсора освещённости, то по соответстввующим каналм всегда будет ошибка.

Евгений, спасибо за разъяснения.
Я правильно понял, что мне для исключения этой ошибки необходимо: во-первых удалить неиспользуемые регистры из профиля устройства, чтобы исключить их из опроса, а во-вторых разобраться с прокладкой шины rs485? Если с первым все более менее понятно, то со структурой шины хотелось бы услышать пояснения.
На данный момент имеются 7 датчиков, которые подключены к одному из портов rs485 wb5. Датчики находятся на расстоянии примерно от 5 до 30 м от wb5. К каждому датчику проложена utp. Датчики соединены последовательно, т.е с wb5 на датчик идёт пара (Зеленый-В, бело-зеленый-А) и с датчика в щиток возвращается пара (синий-В, бело-синий-А). В щитке эта пара (синий-В, бело-синий-А) коммутируется со следующей utp, идущей к другому датчику и т.д. Надеюсь понятно расписал. Питание подключено звездой с блока питания, который питает wb5. Для питания используется пара коричневый и бело-коричневый это земля, а оставшаяся пара +12в. Скорость передачи 9600. Пробовал ставить терминальные резисторы, разницы не заметил. Получается общая длина линии rs485 порядка 160-200м.
Вопрос. Правильно ли организована сеть? Может использовать другую комбинацию пар utp? Может забить и сделать все звездой используя например такой разветвитель:
RJ45 8P8C Jack 9-способ buss Breakout совета, клеммный блок, разъем.
http://s.aliexpress.com/aya2muYZ?fromSns

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

Судя по описанию, всё хорошо.

А что собственно за проблему вы решаете?

Евгений, спасибо за пояснения.

Проблему? В смысле что за проект или Вы имеете ввиду почему я обратил внимание на эти ошибки?Просто маловато опыта вот и подстраховываюсь пока ремонт на начальной стадии. После подключения датчиков увидел эти записи и решил разобраться чем это вызвано.