Protocol routing

Connect KNX, BACnet, Modbus, MQTT, OPC UA and M-Bus on a single gateway — true inter-protocol routing, no PC, no cloud lock-in.


In a building, every trade speaks its own protocol: comfort over KNX (lighting, blinds, HVAC), the BMS over BACnet, energy meters and field equipment over Modbus, utility metering over M-Bus, cloud and industrial systems over MQTT or OPC UA. On their own, these networks don’t talk to each other. Inter-protocol routing is the WBox’s core function: it reads data points from one protocol and exposes them on another, in real time, so systems that were never designed to interoperate exchange their values directly.

Routing runs entirely on the gateway. You enable the source and destination drivers, then map each data point; conversion, scaling and logic are executed on the WBox itself — no PC, no middleware, no cloud dependency. Routes can be one-way or bidirectional, and a single gateway handles many routes at once across all the protocols it supports.

The same engine bridges field buses to each other and to IoT and cloud services alike, from a KNX-to-BACnet conversion to pushing Modbus readings over MQTT. Because everything runs on one open device, you integrate existing installations without proprietary hardware and without locking yourself to a single manufacturer.

The same software also runs off the hardware: the complete stack — every driver, the routing engine, logic and supervision — is available as an installable Windows application, identical to what runs on the WBox. Deploy it on a PC, a server or a virtual machine — a flexibility most building-automation gateways don’t offer.

The WBox gateway natively routes any protocol to any other. Pick a source and a destination to see how:

Popular combinations

All protocols & drivers

The WBox connects 50+ drivers, from building-automation protocols to industrial buses — each licence-activated on any gateway.

See all drivers →


How it works

Inter-protocol routing is the flagship feature of the Weble gateway. The routing table transfers any serializable data — numerical values, strings, JSON objects — between all supported protocols: KNX, BACnet, Modbus, M-Bus, MQTT and many more. You interconnect heterogeneous equipment and systems without worrying about compatibility, and with no proprietary hardware or vendor lock-in.

Diagram of Weble inter-protocol routing: from the field (KNX, Modbus, BACnet, M-Bus) to supervision and the cloud (BACnet/IP, MQTT, Azure)

Creating a route

Drag & drop, no code for simple cases.

Creating a route is instant: drag a source address onto a destination address between the two panels. On release, a popup opens to configure the route parameters. No line of code is needed for simple cases.

Routing direction

  • from source to destination (default)
  • reversed, from destination to source
  • bidirectional

Dynamic routing & transformation

JavaScript functions or Blockly blocks to go beyond simple routes.

Routing and transformation functions are written in JavaScript. Beyond static 1↔1 routes, you build dynamic routing: a function can compute the destination address on the fly (1→n mapping), select targets with a regular expression, or adapt behaviour based on the message content. Routing therefore adjusts in real time to the structure of your installation.

Value transformation

The value can be transformed before it is written. Left empty, the field routes the value as-is. Otherwise, three modes:

  • Constant — replaces the value with a fixed value (binary, numeric, string or JSON object).
  • JavaScript function — receives the routed value, processes it and returns the transformed value.
  • Blockly diagram — visual block programming, no coding skills needed (e.g. divide by 100 for a unit conversion).

Use cases

Three concrete examples of what routing does, day to day, on a real installation.

Energy metering to the cloud

Routing M-Bus and Modbus meter values to an MQTT cloud and smart-me

Your energy meters speak M-Bus (wired or wireless) and Modbus RTU. The WBox reads their registers, applies a unit conversion (Wh → kWh, in Blockly or JavaScript), then publishes each value to a cloud MQTT broker and/or to smart-me. You centralise remote metering and consumption tracking for a whole building — billing, sub-metering, energy optimisation — with no proprietary concentrator. Learn more →

SMS alert on a BACnet value

Sending an SMS or e-mail when a BACnet value crosses a threshold

The BMS reports its values and alarms over BACnet/IP. A route monitors a BACnet object (temperature, fault, level); a JavaScript function evaluates a threshold and, when it is crossed, sends an SMS (SMPP driver) or an e-mail (SMTP driver) to the on-call team. Hysteresis prevents alert storms. Instant notification, with no third-party supervisor or dedicated alarm server.

Modbus → BACnet bridge

Modbus to BACnet bridge: exposing a Modbus device in a BACnet BMS

A PLC, inverter or meter only speaks Modbus (RTU or TCP), but your supervision runs on BACnet. The WBox reads the Modbus registers and exposes them as native BACnet objects (analog / binary value): the BMS discovers and reads them like any other BACnet device. You integrate non-BACnet equipment into an existing supervision system, without replacing it. Learn more →

Real-world examples from our wiki

Routing has virtually no limits: any data point from one protocol can be transformed and written to another. Below is a selection of real-world examples documented on our wiki — the list is far from exhaustive.

  • BACnet VAV regulation — advanced routing combining several sources to drive a variable-air-volume box.
  • Counter → instantaneous — convert a rising energy-meter index into an instantaneous consumption value (power).
  • Cross-gateway email alert — send an email (SMTP driver) when another gateway runs into trouble and restarts.
  • Landis+Gyr E450 meters — reading E450 electricity meters (in production at Romande Energie).
  • Siemens RVD25x/RVD26x controllers — full M-Bus support: temperatures, pump states, valve positions, diagnostics.
  • Modbus watchdog — monitor a register and reset it automatically (e.g. if the value drops below 350, write 500 back).
  • Routing watchdog — use a JavaScript gate to check that a value keeps being routed and updated.
  • Dynamic 1→n mapping (Airthings) — a destination function returns the list of BACnet objects matching an MQTT source address.
  • BACnet → MQTT — route a BACnet object and its properties into lightweight JSON MQTT messages, ideal for IoT.
  • Unit conversion — divide by 1000 to turn Wh into kWh, in Blockly or JavaScript.

Traffic control & reliability

A hysteresis limits the traffic caused by frequent updates, a deactivation delay prevents loops, and a consistency check (formats and value types) protects your equipment — a route that overloads the system can be disabled automatically.