Inter-protocol routing

The flagship feature of the Weble gateway: make all your systems talk to each other, with no vendor lock-in.

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 →

Dedicated gateways

More scenarios

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.