M-Bus Gateway
← Tilbage til blog
· wmbusmeters· Raspberry Pi· installation· USB· im871a· konfiguration· MQTT

wmbusmeters installation og konfiguration — komplet guide

Installer og konfigurér wmbusmeters på Raspberry Pi: fra GitHub releases, USB-dongle opsætning, driver-valg, konfigurationsfiler og MQTT-output. Trin-for-trin guide.

Af M-Bus Gateway

wmbusmeters er det bedste open source-program til wM-Bus aflæsning — men det kræver korrekt installation og konfiguration. Denne guide dækker alt fra GitHub-download til MQTT-output.


Vigtig note: brug IKKE apt-versionen

# ❌ Gør IKKE dette — apt-versionen er for gammel
sudo apt install wmbusmeters

# ✅ Gør DETTE — hent nyeste fra GitHub releases

apt-versionen mangler vigtige drivere og protokol-understøttelse. Hent altid fra GitHub releases.


Installation på Raspberry Pi OS (64-bit)

# 1. Find nyeste version på GitHub og hent .deb-pakke
WMBUS_VER="1.14.0"  # Tjek aktuelle version på GitHub
wget "https://github.com/weetmuts/wmbusmeters/releases/download/v${WMBUS_VER}/wmbusmeters_${WMBUS_VER}_arm64.deb"

# 2. Installer
sudo dpkg -i wmbusmeters_${WMBUS_VER}_arm64.deb

# 3. Verificér
wmbusmeters --version
# Forventet output: wmbusmeters 1.14.0 ...

USB-dongle opsætning (Würth 2605056083001)

# Find USB device
lsusb
# Output: Bus 001 Device 003: ID 10c4:ea60 Silicon Labs CP210x UART Bridge

# Opret stabil symlink via udev
cat > /etc/udev/rules.d/99-wmbus.rules << 'EOF'
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="wmbus"
EOF

sudo udevadm control --reload-rules
sudo udevadm trigger

# Verificér symlink
ls -la /dev/wmbus
# /dev/wmbus -> ttyUSB0

# Tilføj bruger til dialout-gruppe
sudo usermod -aG dialout mbus

Test uden konfigurationsfil

# Lyt til alle C1+T1 telegrammer (ingen kryptering)
wmbusmeters --listento=c1,t1 /dev/wmbus NOKEY

# Output eksempel:
# {"media":"heat","meter":"multical302","name":"NOKEY","id":"12345678",
#  "status":"OK","rssi_dbm":-78,"timestamp":"2026-05-23T06:01:23Z",
#  "total_kwh":12345.67,"target_kwh":11000.00}

Konfigurationsfiler pr. måler

Opret én fil pr. måler i /etc/wmbusmeters.d/:

# Eksempel: Kamstrup Multical 302
cat > /etc/wmbusmeters.d/varme_lejl1.conf << 'EOF'
name=varme_lejl1
type=multical302
id=12345678
key=A1B2C3D4E5F6789012345678ABCDEF01
EOF

# Eksempel: Diehl IZAR R4 vandmåler (ingen kryptering)
cat > /etc/wmbusmeters.d/vand_lejl1.conf << 'EOF'
name=vand_lejl1
type=izar
id=87654321
key=
EOF

# Eksempel: Engelmann SensoStar 2 HCA
cat > /etc/wmbusmeters.d/hca_lejl1.conf << 'EOF'
name=hca_lejl1
type=sensostar
id=AABBCCDD
key=0102030405060708090A0B0C0D0E0F10
EOF

Hoved-konfiguration

cat > /etc/wmbusmeters.conf << 'EOF'
# wmbusmeters global konfiguration
loglevel=normal
device=/dev/wmbus:c1,t1
logfile=/var/log/wmbusmeters/wmbusmeters.log

# MQTT output
shell=/usr/local/bin/wmbus-to-mqtt.sh

# Gem data lokalt
meterfiles=/var/lib/wmbusmeters/meter_readings

# Alarm ved fejl
alarmshell=/usr/local/bin/wmbus-alarm.sh
EOF

MQTT-integration via shell-script

cat > /usr/local/bin/wmbus-to-mqtt.sh << 'EOF'
#!/bin/bash
# Kald fra wmbusmeters via shell= direktiv
# $METER_JSON indeholder det fulde JSON-telegram
GATEWAY_ID=$(cat /etc/mbus-gateway/gateway_id)
TOPIC="meters/${GATEWAY_ID}/readings/${METER_ID}"
mosquitto_pub -h 178.105.90.8 -p 1883 \
  -u "gateway" -P "$(cat /etc/mbus-gateway/mqtt_password)" \
  -t "$TOPIC" \
  -m "$METER_JSON"
EOF
chmod +x /usr/local/bin/wmbus-to-mqtt.sh

Systemd-service

# wmbusmeters inkluderer allerede en systemd-service-fil
sudo systemctl enable wmbusmeters
sudo systemctl start wmbusmeters

# Overvåg logs
sudo journalctl -u wmbusmeters -f

# Status
sudo systemctl status wmbusmeters

Diagnostik og fejlsøgning

Måler modtages ikke

# Scan alle telegrammer uden filtrering
wmbusmeters --listento=c1,t1 --pollinterval=0 /dev/wmbus NOKEY 2>&1 | grep "^{"

# Tjek om målerens ID vises i output
# Hvis ikke: RSSI for svag, forkert mode (c1 vs t1), eller AES-fejl

AES-fejl ("decryption error")

# Symptom: {"status":"ERR_DECRYPTION_FAILED",...}
# Løsning: verificér AES-nøgle (32 hex-tegn, ingen mellemrum)
echo -n "A1B2C3D4E5F6789012345678ABCDEF01" | wc -c
# Skal returnere 32

Driver ikke fundet

# Find rigtig driver:
wmbusmeters --listmeters | grep -i "kamstrup\|multical"
# Prøv generisk driver:
wmbusmeters --listento=c1,t1 /dev/wmbus NOKEY --format=json
# Kig efter device_type og manufacturer i output

Understøttede wM-Bus driver-ID'er

FabrikatProduktDriver
KamstrupMultical 21multical21
KamstrupMultical 302multical302
DiehlIZAR R4izar
EngelmannSensoStar 2sensostar
Techeme5 HCAte5 (begrænset)
AxiomaQalcosonic W1qalcosonic_w1
ZennerMBUS-EASY+mbus_easy
SontexSupercal 739supercal739
BrunataMultical HCAapator162

Fuld liste: wmbusmeters --listmeters


Konklusion

wmbusmeters er kraftfuldt men kræver korrekt version og konfiguration. De to vigtigste ting: hent altid fra GitHub (ikke apt), og brug stabil USB-symlink via udev. Herefter konfigurerer du én fil pr. måler med korrekt driver og AES-nøgle.

Se gateway-dokumentation eller bestil gateway med forudinstalleret wmbusmeters.