Tunas Akara
Back to Blog

Unifying Multi-Protocol Devices (Modbus, BLE, MQTT) into One Backend

by RayhanUpdated 6 min read
iotmodbusblemqttarchitecture
Unifying Multi-Protocol Devices (Modbus, BLE, MQTT) into One Backend

Unifying Multi-Protocol Devices (Modbus, BLE, MQTT) into One Backend

When devices speak different protocols, the dashboard should never know. Think of it like an interpreter at a UN summit: every delegate speaks their own language, but what reaches the notetaker is always one common language.

The way there is a layered design: per-protocol adapters at the edge, a normalization layer in the middle, and one common data model that everything downstream reads. I used exactly this to connect 8+ device categories across Modbus, MQTT, BLE, and WebSocket into single dashboards.

The layered shape

Loading diagram…

Each adapter knows the quirks of its protocol, and nothing else. The normalization layer knows the canonical model, and nothing about wires.

Adapters: isolate the protocol mess

Each protocol has its own awkwardness, and the adapter is where it stays contained:

  • Modbus — poll devices on a schedule, read holding/input registers, and map raw register values to meaningful readings (scale, offset, data type). The trade-offs of scheduled reads are covered in Modbus polling vs event-driven ingestion.
  • BLE — handle short-range wireless through a gateway that bridges devices to the backend. Deal with connect/disconnect churn there.
  • MQTT — subscribe to topics and parse incoming payloads into events.

The rule: protocol-specific code lives only in its adapter. Nothing downstream should contain an if (protocol === ...).

The common data model is the contract

Every adapter emits the same shape — device ID, metric name, value, unit, and timestamp. Once telemetry is in that canonical form, storage, dashboards, alerts, and APIs all work against one model. Adding a new protocol later means writing one new adapter, not touching the dashboard. For how this canonical model feeds real-time delivery in practice, see building MQTT and WebSocket backends for real-time IoT.

Why this pays off

A normalized model is what makes the rest cheap. A new device category, a new report, a new alert rule — none of them care how the data arrived. The hard part, protocol differences, is solved once, at the edge, and never leaks inward.

The takeaway

Put protocol-specific code in adapters. Normalize to one common model. Let everything downstream depend only on that model. That single decision is what turns a pile of incompatible devices into one coherent system.

This is one piece of a larger system. See the complete guide to IoT backends, the case study, or the IoT backend development service if you want one built.

Related Posts

Building something similar?

IoT Backend & Multi-Protocol Integration

Backends that ingest device telemetry across MQTT, WebSocket, Modbus, and BLE, and normalize it into reliable real-time dashboards.

See how I can help