Bygningsautomation og IoT-integration — wM-Bus i BMS-systemer
Integration af wM-Bus fjernaflæsning med bygningsautomationssystemer (BMS): Modbus, BACnet, KNX, MQTT-gateway og hvad der giver mest mening for udlejningsejendomme.
Af M-Bus Gateway
Større ejendomme har ofte bygningsautomationssystemer (BMS) der styrer HVAC, belysning og adgangskontrol. Her er hvordan wM-Bus fjernaflæsning passer ind.
BMS-landskabet: Hvad bruges i Danmark
Protokoller i dansk erhvervs- og boligejendomme:
BACnet/IP (mest udbredt erhverv):
→ Bruges af: Schneider Electric EcoStruxure, Siemens Desigo, Honeywell
→ Anvendelse: HVAC-anlæg, chillers, ventilationsaggregater
→ Rækkevidde: IP-baseret (ubegrænset)
Modbus RTU/TCP (industri og tekniske anlæg):
→ Bruges af: Frekvensomformere, varmepumper, UPS-anlæg
→ Enkel protokol, meget udbredt i ældre anlæg
→ RS-485 (RTU) eller TCP (Modbus/TCP)
KNX (boligautomation):
→ Bruges af: Lys, persienner, varme i lejligheder
→ KNX er bus-standard (twisted pair kabel)
→ Dyr installation, men meget robust
Proprietære (DALI, LON, m.fl.):
→ Belysningsstyring (DALI)
→ Sjældnere i nybyggeri (udskiftes med KNX/BACnet)
wM-Bus (forbrugsmåling):
→ Radiosignal 868 MHz
→ Specifikt til forbrugsmålere (varme, vand, el)
→ IKKE designet til real-time styring
wM-Bus' rolle i BMS
wM-Bus er en data-kilde — ikke et styringssystem:
Hvad wM-Bus ER:
✅ Aflæsning af forbrugsmålere (HCA, varmemåler, vandmåler)
✅ Batteridrevne målere der sender 1x/dag (C1) eller push (T1)
✅ Typisk 15-30 minutters interval for T1-målere
✅ Krypteret, OMS-standardiseret
Hvad wM-Bus IKKE er:
✗ Real-time datastrøm (ikke egnet til regelbaseret HVAC-styring)
✗ Bidirektionel kommunikation (kun modtagelse i standard)
✗ Styreprotokol (ingen actuator-interface)
✗ Lavlatens (ikke egnet til lyskontrol, ventilatorstyring)
Konkret: wM-Bus er et aflæsningsnetværk — BACnet/Modbus er styresystemet
Integration: wM-Bus → MQTT → BMS
Den typiske integrationsvej i større ejendomme:
[wM-Bus målere] → [M-Bus Gateway (Pi)] → [MQTT broker]
↓
[MQTT-BMS Bridge (middleware)]
↓
[BACnet/IP eller Modbus/TCP]
↓
[BMS (Schneider/Siemens/etc.)]
# Simpel MQTT-til-Modbus bridge:
# server/src/integrations/bms_bridge.py
import paho.mqtt.client as mqtt
from pymodbus.server import StartTcpServer
from pymodbus.datastore import ModbusSequentialDataBlock, ModbusSlaveContext
# Modbus registers:
# 40001: HCA units (lejl. 1.tv)
# 40002: HCA units (lejl. 1.th)
# 40003-40010: Øvrige lejligheder
# 40011: Total ejendoms varmeforbrug kWh
# 40012: Gateway online status (1=OK, 0=offline)
class MBusModbusBridge:
def __init__(self):
self.store = ModbusSlaveContext(
hr=ModbusSequentialDataBlock(40001, [0]*100)
)
def on_mqtt_message(self, client, userdata, msg):
"""Modtag wM-Bus data og opdatér Modbus registers."""
import json
data = json.loads(msg.payload)
for reading in data.get("readings", []):
register = self._get_register(reading["meter_id"])
if register:
self.store.setValues(3, register, [int(reading["value"])])
BACnet integration
# BACnet Analog Input pr. måler:
# (Kræver BACnet/IP library: bacpypes3)
from bacpypes3.local.analog import AnalogInputObject
class WMBusBACnetDevice:
def __init__(self):
self.analog_inputs = {}
def create_point(self, meter_id: str, description: str):
"""Opret BACnet Analog Input pr. måler."""
ai = AnalogInputObject(
objectIdentifier=("analogInput", len(self.analog_inputs) + 1),
objectName=f"wMBus_{meter_id}",
description=description,
units="noUnits", # HCA units er dimensionsløse
presentValue=0.0,
)
self.analog_inputs[meter_id] = ai
return ai
def update_from_mqtt(self, meter_id: str, value: float):
if meter_id in self.analog_inputs:
self.analog_inputs[meter_id].presentValue = value
Hvornår giver BMS-integration mening?
Relevant for:
✅ Erhvervsejendomme med eksisterende BMS
✅ Projekter med facility management systemer (CAFM/IWMS)
✅ Smart building projekter med energi-dashboard
✅ Ejendomme med HVAC-styring baseret på forbrugsdata
IKKE relevant for:
✗ Standard udlejningsejendomme (5-50 lejligheder)
✗ Private udlejere
✗ Ejendomme uden eksisterende BMS
For standard udlejningsejendomme:
→ M-Bus Gateway portal er tilstrækkeligt
→ CSV/API eksport dækker BI-behov
→ BMS-integration er over-engineering
REST API som BMS-alternativ
For de fleste er REST API den enkleste integration:
# GET /api/v1/readings/latest?property_id=EJD-001
# → Returnerer seneste aflæsning pr. måler i JSON
# GET /api/v1/dashboard?tenant_id=...
# → Returnerer aggregerede KPI'er
# Webhook: POST til din URL ved ny daglig batch:
# {
# "event": "daily_batch_received",
# "gateway_id": "GW-0001",
# "timestamp": "2026-05-24T06:00:00Z",
# "meter_count": 45,
# "readings": [...]
# }
Dette er tilstrækkeligt for 95% af integrationsbehovene uden BMS-kompleksitet.
Konklusion
wM-Bus fjernaflæsning er en data-kilde, ikke et styresystem — det supplerer BMS frem for at erstatte det. For standard udlejningsejendomme er MQTT + REST API mere end tilstrækkeligt. Kun ved eksisterende BMS i erhvervsejendomme giver Modbus/BACnet-bridge mening. M-Bus Gateway platformen eksponerer data via REST API og webhooks der kan integreres i ethvert BMS.
Se API-katalog eller dataeksport guide.