"Data to Server" (Modbus input, filter by Request name) silently fails when collection "Name" differs from "Request name"

Router model: RUTX50

Firmware: RUTX_R_00.07.22.3

Description:

I have several “Data to Server” collections of type Modbus, using Data filtering = Request name, filtering on the Modbus request (GSM_operator), and using a Lua formatting script. Collection with name ‘GSM_operator’ work correctly and publish data via MQTT. The identically collection renamed to ‘xxx’ never publishes any data — no error is shown in the WebUI, and the collection is enabled.

Root cause found via uci show data_sender:

Working collection:

data_sender.34=input

data_sender.34.enabled=‘1’

data_sender.34.members=‘name’ ‘data’

data_sender.34.filter_list_modbus_filter_request=‘1’

data_sender.34.plugin=‘modbus’

data_sender.34.modbus_filter=‘name’

data_sender.34.format=‘json’

data_sender.34.modbus_filter_request=‘GSM_operator’

data_sender.34.modbus_segments=‘1’

data_sender.34.modbus_object=‘0’

data_sender.34.name=‘GSM_operator’

Non-working collection:

data_sender.34=input
data_sender.34.enabled=‘1’
data_sender.34.members=‘name’ ‘data’
data_sender.34.filter_list_modbus_filter_request=‘1’
data_sender.34.plugin=‘modbus’
data_sender.34.modbus_filter=‘name’
data_sender.34.format=‘json’
data_sender.34.modbus_filter_request=‘GSM_operator’
data_sender.34.modbus_segments=‘1’
data_sender.34.modbus_object=‘0’
data_sender.34.name=‘xxx’

The only functional difference is that in the working case name equals the value in modbus_filter_request, while in the non-working case name (‘xxx’) is different from modbus_filter_request (‘GSM_operator’). When I renamed the collection so that name matches the Modbus request name exactly, the data started flowing correctly.

Request:

  1. Can you confirm whether the Data-to-Server “Name” field is required to exactly match the Modbus “Request name” when modbus_filter = name is used?
  2. If so, this constraint doesn’t seem to be documented anywhere in the WebUI or the wiki page (RUTX50 Data to Server) — could this be added to the documentation, or ideally validated/enforced in the WebUI to avoid silent failures?
  3. Is this considered expected behavior or a bug? If it’s a bug, is a fix planned?

Thanks in advance for looking into this.

Greetings,

Thank you for the detailed information and for sharing your findings.

We can confirm that this is expected behavior. When using Data filtering = Request name for a Modbus input, the Data to Server Name is expected to match the corresponding Modbus Request name.

Therefore, if the Modbus request name is GSM_operator, the Data to Server input should also be named GSM_operator. Using a different name, such as xxx, will prevent the data from being matched by the request-name filter and consequently from being sent.

Regarding the documentation, we understand that this requirement is currently not sufficiently clear. We will forward your feedback to the responsible team for review so that this behavior can be clarified in the documentation.

As this functionality is working as intended, it is not currently considered a firmware bug.

Thank you for bringing this to our attention.

Best regards,

T.