#4678·connect

modbus: proposal for a Modbus TCP input connector (community)

Author: aradhsaiCreated Aug 6, 2026Updated Aug 6, 2026

What

A community-supported modbus input that polls a Modbus TCP device on a fixed interval and emits one structured message per poll.

Why

Redpanda Connect currently has ~80 inputs and none of them speak an industrial protocol. Modbus TCP is the lowest common denominator of plant devices — PLCs, power meters, sensor gateways, remote IO — and today anyone bridging that data into a Redpanda pipeline needs an intermediary hop (Node-RED, an edge gateway, or a custom script). A native input removes that hop for the most common industrial case and opens the industrial/OT segment for Connect.

Proposed scope

  • Input only, Modbus TCP (tcp://) and Modbus TCP+TLS (tcp+tls://).
  • Config: address, unit_id, timeout, poll_interval, byte_order, word_order, and a typed points list — each point names a Modbus table (coil, discrete_input, input_register, holding_register), a zero-based address, and a decode type (bool, int16/uint16, int32/uint32, int64/uint64, float32/float64).
  • One message per poll: a JSON object keyed by point name, with modbus_address / modbus_unit_id metadata.
  • Config lint rules reject type/table mismatches (e.g. bool on a register) and duplicate point names.

Explicitly out of scope

Possible follow-ups, proposed separately per CONTRIBUTING §3.1.1: an output (writing coils/registers), Modbus RTU over serial, automatic read coalescing of contiguous registers, and per-point error tolerance.

Client library

Per CONTRIBUTING §4: github.com/simonvetter/modbus v1.6.4 — MIT, actively maintained (last release July 2026), v1+, TCP/TLS/RTU support, and it includes a Modbus server, which lets the integration tests run fully in-process with no Docker dependency.

Status

Implementation and tests are drafted and passing on aradhsai/connect:modbus-input — config parse/lint table tests plus end-to-end poll, protocol-exception, and reconnect tests against an in-process Modbus server. Happy to open the PR whenever the scope is agreed, and to adjust shape and naming to fit the fleet.