Вложенные каналы

Вот кусок моего wb-mqtt-serial.conf:

{
“address” : “192.168.28.71”,
“devices” :
[
{
“channels” :
[
{
“consists_of” :
[
{
“address” : “4103:0:5”,
“format” : “u8”,
“offset” : 0,
“reg_type” : “holding”,
“scale” : 1,
“word_order” : “big_endian”
},
{
“address” : “4103:5:4”,
“format” : “u8”,
“offset” : 0,
“reg_type” : “holding”,
“scale” : 1,
“word_order” : “big_endian”
},
{
“address” : “4103:9:7”,
“format” : “u8”,
“offset” : 0,
“reg_type” : “holding”,
“scale” : 1,
“word_order” : “big_endian”
}
],
“id” : “Test_Date”,
“name” : “Date”
}
],
“name” : “TEST”,
“protocol” : “modbus”,
“slave_id” : “0x10”
}
],
“enabled” : true,
“poll_interval” : 4000,
“port” : 8899,
“port_type” : “modbus tcp”
}
]

И так оно не работает. Ошибок в логе не увидел, но в топике NaN.
А вот так работает. Во всяком случае число показывает:

{
“address” : “192.168.28.71”,
“devices” :
[
{
“channels” :
[
{
“consists_of” :
[
{
“address” : “4103:0:5”,
“format” : “u8”,
“offset” : 0,
“reg_type” : “holding”,
“scale” : 1,
“word_order” : “big_endian”
}
],
“id” : “Test_Date”,
“name” : “Date”
}
],
“name” : “TEST”,
“protocol” : “modbus”,
“slave_id” : “0x10”
}
],
“enabled” : true,
“poll_interval” : 4000,
“port” : 8899,
“port_type” : “modbus tcp”
}
]

Что я делаю не так?

Попробуйте убрать везде format.

Доброе утро!
Не помогло. Оно ж по-умолчанию u16 воспринимает

Тогда надо следующее:

  1. Версию wb-mqtt-serial.
  2. Где вы видите NaN? В нашем web-интерфейсе или в стороннем ПО?
  3. Включить диагностику wb-mqtt-serial и прислать лог опроса.

root@wirenboard-AXGGYGBR:~# apt show wb-mqtt-serial
Package: wb-mqtt-serial
Version: 2.41.3-wb4
Priority: optional
Section: misc
Maintainer: Evgeny Boger boger@contactless.ru
Installed-Size: 4 806 kB
Depends: libc6 (>= 2.4), libgcc1 (>= 1:3.5), libstdc++6 (>= 6), libwbmqtt1-3 (>= 3.3.0), init-system-helpers (>= 1.18~), ucf, bsdutils (>= 2.29)
Recommends: wb-mqtt-confed (>= 1.4.0)
Breaks: wb-homa-modbus (<< 1.14.1), wb-mqtt-confed (<< 1.2.5), wb-mqtt-homeui (<< 2.16.0)
Replaces: wb-homa-modbus (<< 1.14.1)
Homepage: GitHub - wirenboard/wb-mqtt-serial: wb-mqtt-serial
Download-Size: 742 kB
APT-Manual-Installed: yes
APT-Sources: http://deb.wirenboard.com/wb6/stretch stable/main armhf Packages
Description: Wiren Board Smart Home MQTT serial protocol driver
wb-mqtt-serial is a service which communicates with devices on RS-485
via Modbus or other supported protocols. Modbus TCP is also supported.
You can add your devices by creating new templates and configure each
register poll settings individually. Also it contains advanced templates
to configure parameters of Wiren Board peripheral devices.

N: Есть 188 дополнительных записей. Используйте «-a» для их просмотра

log

Лог 1, 2 или 3 нужен?

<7>DEBUG: [mqtt] Unsubscribe ‘/devices/wb-modbus-14-0/controls/Test_Date/on’
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/controls/Test_Date’ payload: ‘’
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/controls/Test_Date/meta’ payload: ‘’
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/controls/Test_Date/meta/order’ payload: ‘’
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/controls/Test_Date/meta/readonly’ payload: ‘’
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/controls/Test_Date/meta/type’ payload: ‘’
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/meta’ payload: ‘’
<7>DEBUG: [serial port driver] device wb-modbus-14-0 removed successfully
<7>DEBUG: [tx 0X23CDAB8] Close
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/meta/driver’ payload: ‘’
<7>DEBUG: [mqtt] Publish ‘/devices/wb-modbus-14-0/meta/name’ payload: ‘’
<7>DEBUG: [backend] emit StopEvent{}
<7>DEBUG: [driver] Receive event StopEvent{}

Можно больше логов? Нужен кусок с обменом на шине.
Посмотреть лог можно в web-интерфейсе, в настройках есть системный журнал.

Вот с консоли
modbus.log (56.5 КБ)

выгрузка
wb-mqtt-serial_20211229T125053.log (9.6 КБ)

Добрый день!
Ещё какие-нибудь логи нужны?

Здравствуйте!

Полностью регистры читаются (без указания битов и смещения) при таком описании?

{
"address" : "4103",
"format" : "u16",
"reg_type" : "holding",
"type": "value"
}

Проблема в том, что у канала не был указан тип. В этом случае по умолчанию тип становится числом, но фактически данные представляют собой строку. web-интерфейс пытался интерпретировать число как строку и вывел NaN. Надо добавить "type": "text", как в примере ниже.

{
    "consists_of" :
    [
        {
            "address" : "121:0:5",
        },
        {
            "address" : "121:5:4",
        },
        {
            "address" : "121:9:7",
        }
    ],
    "id" : "Test_Date",
    "name" : "Date",
    "type": "text"
}

Полностью регистры читаются (без указания битов и смещения) при таком описании?

Да

Действительно, при типе “text” сформировалась нормальная строка! Спасибо!
А разделители поменять можно? А то “;” как-то странно выглядит :slight_smile:

Нельзя

Ну и ладно! :slight_smile:
Огромное спасибо!

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.