Runtime / Daemons

Modbus TCP acquisition

Configure bounded daemon-owned industrial polling without a disconnected nginx scaffold.

Source runtime certified; installed replay pending

nginz-iotd is the sole configuration and runtime authority for the selected Modbus TCP client profile. It owns device sockets, polling timers, response correlation, ordered retry, governed writes, and broker publication. The former nginx scaffold accepted no Modbus connection and transferred no configuration, so it was removed.

Configuration

[modbus]
enabled = true
config_ref = "file:/etc/nginz-iot/modbus.conf"

Run nginz-iotd --test-config --config /etc/nginz-iot/iotd.toml before startup or reload. The mapping file defines the registered device identity, register ranges, data conversion, poll limits, write policy, and target topics. Keep it reviewable and versioned with the deployment.

This profile initiates polling from the node; it is not an inbound Modbus TCP server. All inbound device and operator traffic still enters through nginx. A future inbound Modbus server would require a real nginx listener module with its own bounded parser, connection lifecycle, and reload tests.

Buffering boundary

The pre-admission retry queue is bounded and volatile across daemon restart. After broker admission, durability follows the selected store and bridge-buffer policies. The acquisition profile does not imply unlimited backfill. Modbus TCP polling is a Max and Enterprise gateway capability.

Implementation authority

This page is a customer-oriented guide. The source contract remains authoritative for exact behavior and release evidence.

src/processes/iotd/modbus_gateway.zig