Forbrugsdata i Home Assistant — wM-Bus og MQTT-integration
Integrer automatiske aflæsninger fra wM-Bus forbrugsmålere i Home Assistant via MQTT. Realtidsdata på el, vand og varme direkte i dit smarthome-dashboard.
Af M-Bus Gateway
Har du wM-Bus forbrugsmålere (vand, varme, HCA) i din ejendom, kan du hente realtidsdata direkte ind i Home Assistant eller andre smarthome-platforme via MQTT. Her er en teknisk guide.
Arkitekturen
[wM-Bus målere 868 MHz]
↓ C1/T1 telegram hvert 4-16 sek
[wM-Bus gateway (Raspberry Pi)]
↓ MQTT publish til broker
[Mosquitto MQTT broker]
↓ Subscribe
[Home Assistant MQTT integration]
↓
[Dashboards, automations, alerts]
wM-Bus gateway sender målernes aflæsninger til en MQTT-broker. Home Assistant abonnerer på disse topics og kan behandle data i realtid.
MQTT topic-struktur
Aflæsninger publiseres på:
meters/{gateway_id}/data ← Daglig payload (MessagePack+zlib)
meters/{gateway_id}/status ← Heartbeat hvert 5. min (JSON)
meters/{gateway_id}/alarm ← Alarm JSON (lækage, offline, osv.)
For realtidsbrug er det dog muligt at konfigurere gateway til at publisere individuelle målertelegrams:
meters/{gateway_id}/readings/{meter_id}
Home Assistant MQTT-konfiguration
1. Tilslut MQTT-broker i Home Assistant
I Home Assistant configuration.yaml:
mqtt:
broker: 192.168.1.89 # Gateway IP (eller ekstern broker)
port: 1883 # Dev: 1883, Prod: 8883 (TLS)
username: ha_reader
password: !secret mqtt_password
For produktion med TLS:
mqtt:
broker: mbus-gateway.example.com
port: 8883
tls_insecure: false
certificate: /config/ssl/ca.crt
client_key: /config/ssl/client.key
client_cert: /config/ssl/client.crt
2. Sensor-definition pr. måler
# sensors.yaml
- platform: mqtt
name: "Vandmåler lejl. 1"
state_topic: "meters/GW-0001/readings/12345678"
value_template: "{{ value_json.volume | round(3) }}"
unit_of_measurement: "m³"
device_class: water
state_class: total_increasing
- platform: mqtt
name: "Varmemåler lejl. 1"
state_topic: "meters/GW-0001/readings/87654321"
value_template: "{{ value_json.energy | round(1) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
3. Template sensor til dagforbrug
- platform: statistics
name: "Vandmåler lejl. 1 — dagforbrug"
entity_id: sensor.vandmaaler_lejl_1
state_characteristic: change
max_age:
hours: 24
sampling_size: 1000
Webhook-integration (alternativ)
Platformen understøtter også webhook-push til Home Assistant:
- Opret en webhook-URL i Home Assistant (
/api/webhook/<id>) - Konfigurer webhook i platform-portalen under API-nøgler → Webhooks
- Vælg event-typer:
reading.new,alarm.created,meter.offline
{
"event": "reading.new",
"meter_id": "12345678",
"type": "water",
"volume": 123.456,
"unit": "m3",
"timestamp": "2026-05-23T06:00:00Z"
}
REST API-polling (simpelt alternativ)
Ønsker du ikke real-time, kan Home Assistant polling via REST API:
- platform: rest
name: "Vandmåler lejl. 1 (API)"
resource: https://api.mbus-gateway.dk/api/v1/meters/12345678/latest
headers:
Authorization: Bearer YOUR_API_KEY
value_template: "{{ value_json.volume }}"
unit_of_measurement: "m³"
scan_interval: 3600 # Polling hvert 60 min
Automations og alerts i Home Assistant
Lækage-alarm
automation:
- alias: Vandlækage alarm
trigger:
platform: mqtt
topic: "meters/GW-0001/alarm"
condition:
condition: template
value_template: "{{ trigger.payload_json.type == 'leak' }}"
action:
- service: notify.mobile_app_min_telefon
data:
title: "Vandlækage detekteret!"
message: "Måler {{ trigger.payload_json.meter_id }} — adresse {{ trigger.payload_json.address }}"
Unormalt forbrug
automation:
- alias: Unormalt høj vandforbrug
trigger:
platform: template
value_template: >
{{ states('sensor.vandmaaler_lejl_1_dagforbrug') | float > 500 }}
action:
- service: notify.persistent_notification
data:
title: "Unormalt vandforbrug"
message: "Lejlighed 1 brugte {{ states('sensor.vandmaaler_lejl_1_dagforbrug') }} liter i dag"
Dashboard: Energi-oversigt
Med Home Assistants Energy Dashboard kan du tilføje:
- Vandmålere som "Individual water devices"
- Varmemålere som "Individual home heating"
- Elmålere (hvis installeret)
Dette giver en komplet energioversigt med dag/uge/måned historik.
Sikkerhed: Begræns MQTT-adgang
For multi-lejligheds ejendomme: Giv Home Assistant kun adgang til specifikke topics via ACL:
# Mosquitto ACL
user ha_reader
topic read meters/GW-0001/#
Platformen bruger per-gateway ACL isolation — en gateway kan kun læse/skrive sine egne topics.
Andre smarthome-platforme
Denne MQTT-integration virker også med:
- Node-RED: Wire MQTT-node → function node → dashboard
- Grafana + InfluxDB: Skriv til InfluxDB fra MQTT, visualiser i Grafana
- openHAB: MQTT Binding med Thing-definitioner
- Domoticz: MQTT plugin
- n8n/Zapier: Via webhook-integration
Begrænsninger
- Gateway sender dagligt kl. 06:00 (konfigurerbart) — ikke kontinuerlig strøm
- Realtids MQTT pr. telegram kræver tillægskonfiguration på gateway
- AES-nøgler kræves for krypterede målere — gateway dekrypterer lokalt
Konklusion
wM-Bus forbrugsmålere kan integreres direkte i Home Assistant og andre smarthome-platforme via MQTT. Kombiner lækage-alarmer, forbrugshistorik og automatiseringer for fuld kontrol.
Se REST API-dokumentation eller læs om MQTT-integration for teknikere.