Freeze the register contract
Record device address, function code, register address, length, data type, byte order, scale and engineering unit for every value. Resolve one-based versus zero-based addressing before firmware development.
Design polling and payloads together
Polling faster than the radio can report creates stale queues or wasted energy. Group registers by operational priority, define change thresholds and version the payload format so backend decoders can evolve safely.
Handle failure as data
Distinguish Modbus timeout, CRC error, exception response, stale value and LoRaWAN delivery state. Do not silently transmit the last value as if it were current; carry validity or age information when the application needs it.
Commission end to end
Test with the actual field device, cable length, serial settings, gateway and network server. Verify negative values, word order, limits, reconnection and decoder output before dashboard acceptance.
Integration record
Integration record
- Register map and device address
- Serial communication settings
- Polling and timeout policy
- Payload version and decoder
- Data validity
- End-to-end acceptance test