Проблема с wb-mqtt-serial

При перезагрузке, отваливаются все датчики, подключенные к RS-485. Сервис wb-mqtt-serial запущен, но в логах пишет: wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 1 input(s) @ 32 of device modbus:4. И так для всех устройств. Если перезапустить wb-mqtt-serial, то все начинает нормально работать.
Как это исправить?

Добрый день.

  1. В логах эта строчка повторяется постоянно, пока не остановите сервис?

  2. Покажите вывод команды

    dpkg -l wb-mqtt-serial

  3. Покажите пожалуйста целиком содержимое

/etc/wb-mqtt-serial.conf

  1. Какая модель и ревизия (или серийник) контроллера?
  1. Да, постоянно.
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  wb-mqtt-serial 1.22         armel        Wiren Board Smart Home MQTT seria
{
    "debug": false,
    "ports": [
        {
            "path": "/dev/ttyAPP1",
            "baud_rate": 19200,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 1,
            "poll_interval": 10,
            "enabled": true,
            "devices": [
                {
                    "slave_id": "1",
                    "enabled": true,
                    "name": "Floor1",
                    "channels": [
                        {
                            "name": "Flooor1_TRef",
                            "type": "value",
                            "reg_type": "input",
                            "address": "32",
                            "format": "s16",
                            "scale": 0.1
                        }
                    ]
                },
                {
                    "slave_id": "6",
                    "name": "Box3",
                    "channels": [
                        {
                            "name": "Box3_Hum",
                            "type": "value",
                            "reg_type": "input",
                            "address": "32",
                            "format": "s16",
                            "scale": 0.1
                        }
                    ]
                },
                {
                    "slave_id": "4",
                    "name": "Box2",
                    "channels": [
                        {
                            "name": "Box2_Hum",
                            "type": "value",
                            "reg_type": "input",
                            "address": "32",
                            "format": "s16",
                            "scale": 0.1
                        }
                    ]
                },
                {
                    "slave_id": "7",
                    "name": "Box1",
                    "channels": [
                        {
                            "name": "Box1_Hum",
                            "type": "value",
                            "reg_type": "input",
                            "address": "32",
                            "format": "s16",
                            "scale": 0.1
                        }
                    ]
                },
                {
                    "slave_id": "2",
                    "name": "Floor2",
                    "channels": [
                        {
                            "name": "Floor2_Hum",
                            "type": "value",
                            "reg_type": "input",
                            "address": "32",
                            "format": "s16",
                            "scale": 0.1
                        }
                    ]
                },
                {
                    "slave_id": "3",
                    "name": "Floor1",
                    "channels": [
                        {
                            "name": "Floor1_Hum",
                            "type": "value",
                            "reg_type": "input",
                            "address": "32",
                            "format": "s16",
                            "scale": 0.1
                        }
                    ],
                    "enabled": true
                },
                {
                    "slave_id": "11",
                    "name": "Floor1",
                    "channels": [],
                    "enabled": false
                }
            ]
        },
        {
            "path": "/dev/ttyAPP4",
            "baud_rate": 19200,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 1,
            "poll_interval": 10,
            "enabled": false,
            "devices": []
        },
        {
            "path": "/dev/ttyAPP2",
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 2,
            "poll_interval": 10,
            "enabled": false,
            "devices": []
        },
        {
            "path": "/dev/ttyAPP3",
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 2,
            "poll_interval": 10,
            "enabled": false,
            "devices": []
        }
    ]
}

4)WirenBoard5 последней ревизии. Покупали неделю назад. После покупки была сразу обновлена прошивка через ЛК на последнюю и обновлен весь софт.

Можете организовать удалённый доступ по ssh на контроллер или через team viewer на машину с доступом к контроллеру?

сейчас отвечу на почту

Починили в wb-utils 1.70.4

Обновить пакет можно так:

apt-get update && apt-get install wb-utils

Проблема проявилась из-за того, что вы использовали скорость 19200 на порту.

Похоже проблема не решилась до конца. После обновления перезапуск сервиса больше не нужен. Но, похоже, выплыла другая проблема:
У нас по RS485 подключены 6 датчиков и после обновления нормально работают только 2. Сразу не обратили внимания, так-как показания не краснеют как раньше, но данные не приходят. И на графиках творится что-то странное: вроде, согласно настройкам, в историю должны подать значения максимум через 20 минут. Но на графиках встречаются провалы и по часу и по дню. вот пример:


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

Попробуйте поставить max_unchanged_interval для датчиков в настройках wb-mqtt-serial. Может быть просто данные не меняются.

ну в этом и проблема. Значения не меняются, но почему не понятно. Какова вероятность, что вдруг 4 из 6 датчиков вышли из строя. max_unchanged_interval он же к wb-mqtt-db прописывается или к устройствам rs485 тоже можно прописывать? если да, то куда, к устройству, показателю, или вообще к порту?

Разве в историю, где стоит параметр max_unchanged_interval = 1200 не должны попадать значения, даже если они и не меняются, каждые 20 минут?

Ещё раз повторю: Попробуйте зайти в веб-интерфейс в Serial Devices Configuration, на самом верхнем уровне нажать Properties, выбрать “Unchanged value posting interval”, и поставить какое-нибудь осмысленное значение, например 30 секунд.

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