M-Bus Gateway
← Tilbage til blog
· wM-Bus· signal· troubleshooting· RSSI· betonvæg· C1· T1· AES· wmbusmeters· gateway· fejlsøgning

wM-Bus signal troubleshooting — når gatewayen ikke læser målerne

wM-Bus signal fejlsøgning: RSSI under -110 dBm, betonvægge, mode-mismatch C1 vs T1, AES DEC_ERR, USB dongle diagnostik, wmbusmeters debug-output og løsningsstrategier.

Af M-Bus Gateway

Gatewayen er installeret, men halvdelen af målerne vises ikke. Her er den systematiske fejlsøgningsguide.


Trin 1 — Verificér at wmbusmeters kører

# SSH til gateway
ssh mbus@192.168.1.89

# Er wmbusmeters-processen aktiv?
systemctl status wmbusmeters@auto

# Forventet output:
# ● wmbusmeters@auto.service - Wmbusmeters automatic meter reading
#    Active: active (running) since...

# Starter ikke? Se logs:
journalctl -u wmbusmeters@auto -n 50 --no-pager

# Typisk fejl 1: USB dongle ikke fundet
# "ERROR: No meter type auto-detected for: /dev/ttyUSB0"
# → Løsning: Kontrollér USB-forbindelsen, genstart Pi

# Typisk fejl 2: Tilladelse nægtet
# "cannot open /dev/ttyUSB0: Permission denied"
# → Løsning: sudo usermod -a -G dialout mbus && reboot

Trin 2 — Verificér USB dongle

# Er Würth Elektronik dongle registreret af Linux?
lsusb | grep -i "ftdi\|silicon\|prolific\|cp210\|würth\|wuerth"

# Forventet: Én linje med USB-to-serial adapter
# Eksempel: "Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC"

# Er symlink /dev/wmbus oprettet?
ls -la /dev/wmbus
# → lrwxrwxrwx 1 root root 7 ... /dev/wmbus -> ttyUSB0

# Mangler symlinket? Se udev-regel:
cat /etc/udev/rules.d/99-wmbus.rules
# → SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="wmbus"

# Genindlæs udev-regler:
sudo udevadm control --reload-rules && sudo udevadm trigger

# Test direkte læsning (30 sekunder):
sudo timeout 30 wmbusmeters --logtelegrams=true auto:im871a:868.95M:c1t1

Trin 3 — RSSI og signalstyrke

# Se RSSI pr. telegram i wmbusmeters debug-output:
sudo wmbusmeters --logtelegrams=true auto:im871a:868.95M:c1t1 2>&1 | grep -E "RSSI|rssi"

# Typisk JSON-output med RSSI:
# {
#   "media": "heat",
#   "meter": "multical302",
#   "name": "Heat_01",
#   "id": "12345678",
#   "rssi_dbm": -87,
#   "total_kwh": 1234.5
# }

# RSSI-tolkningsguide:
# -50 til -70 dBm: Fremragende signal (nærmeste måler)
# -70 til -90 dBm: Godt signal (normal situation)
# -90 til -100 dBm: Acceptabelt (få fejl)
# -100 til -110 dBm: Svagt signal (periodiske tab)
# Under -110 dBm: Kritisk — telegrams tabes regelmæssigt
# Ingen signal: Måler ikke inden for rækkevidde

# Platform RSSI-dashboard:
# GET /api/v1/portfolio/gateway-health → rssi_dbm pr. installation

Trin 4 — Mode-mismatch (C1 vs T1)

# Fejlsymptom: Ingen telegrammer fra specifikke målere
# Årsag: Gateway lytter på C1, men måler sender T1 (eller omvendt)

# Test med begge modes:
sudo timeout 30 wmbusmeters --logtelegrams=true auto:im871a:868.95M:c1
sudo timeout 30 wmbusmeters --logtelegrams=true auto:im871a:868.95M:t1
sudo timeout 30 wmbusmeters --logtelegrams=true auto:im871a:868.95M:c1t1    # Begge

# Typisk mode pr. fabrikat:
# C1: Kamstrup, Engelmann, Sontex, Axioma (nyere generationer)
# T1: Techem HCA (type 5/6/8), Brunata ældre modeller
# C1+T1: Konfigurér altid begge i produktion

# Konfigurér i wmbusmeters:
# /etc/wmbusmeters.d/global.conf:
# mode=c1t1    ← Lyt på begge

Trin 5 — AES DEC_ERR

# Fejlsymptom: Telegram modtages, men værdier er "DEC_ERR" eller tomme
# Årsag: Forkert eller manglende AES-nøgle

# wmbusmeters output med DEC_ERR:
# {
#   "media": "heat",
#   "id": "12345678",
#   "status": "DEC_ERR",       ← Dekrypterings-fejl
#   "total_kwh": null          ← Data ikke tilgængeligt
# }

# Konfigurér AES-nøgle pr. måler:
# /etc/wmbusmeters.d/kamstrup-heat.conf:
# name=Heat_01
# id=12345678
# driver=multical302
# meterbus=c1
# key=00112233445566778899AABBCCDDEEFF    ← 32 hex-tegn (128 bit)

# Verificér nøgle er korrekt (test med én måler):
sudo wmbusmeters auto:im871a:868.95M:c1 \
  Heat_01 multical302 12345678 00112233445566778899AABBCCDDEEFF

# Nøgle-anskaffelse:
# Kamstrup: Installer-portal eller direkte fra Kamstrup
# Engelmann: Engelmann-portal (EU EED art. 9c — din rettighed)
# Techem: Kræver skriftlig anmodning (EU EED art. 9c)

# Platform:
# PUT /api/v1/meters/{id}/aes-key (kræver super_admin)
# Nøgle gemmes krypteret i PostgreSQL — aldrig plaintext i logs

Trin 6 — Betondæmpning og placering

Signaldæmpning i bygninger:

Materialer og dæmpning pr. væg (typiske værdier):
  Gips (12 mm):       2-4 dB
  Træ (50 mm):        3-5 dB
  Mursten (110 mm):   8-12 dB
  Beton (200 mm):    12-20 dB
  Armeret beton:     15-25 dB
  Jordlag:           25-40 dB pr. meter

Budget:
  Gateway-antenne: Typisk +6 dBi gain
  Frirum-zone tab ved 10m: ~50 dB (frirum-ligning)
  Effektiv rækkevidde i beton-ejendom: 10-30 meter
  Rækkevidde udendørs/fri sigt: 100-200 meter

Placering af gateway:
  ✅ Centralt i ejendommen (midterste kælder)
  ✅ Hæv antenne over fjernvarmerør og metaloverflader
  ✅ Undgå placering bag vandret beton (gulvplade)
  ❌ Undgå tekniske rum med meget metal
  ❌ Undgå yderste kælder-rum (dobbelt betonvæg til målere)

Løsninger ved dårligt signal:
  1. Flyt gateway (test med laptop først)
  2. Ekstern antenne via SMA-kabel (op til 5m kabel uden tab)
  3. wM-Bus repeater (OMS Annex B, hop_count felt)
  4. Yderligere gateway i problematisk sektion
  5. M-Bus wired (kabelbaseret — ingen signalproblem)

Trin 7 — Driver-mismatch

# Fejlsymptom: Telegram modtages, men felter er forkerte (0.0 eller null)
# Årsag: Forkert wmbusmeters-driver

# Identificér korrekt driver:
# 1. Find FAB ID (første 3 bogstaver af meter_id-prefix i telegram)
# 2. Slå op i driver-tabel:

# FAB → Driver:
# KAM (Kamstrup):   multical302, multical403, multical603, multical21
# ELS (Engelmann):  sensostar, sensostar2
# TCH (Techem):     hca, compact5, vario451 (type 5→compact5, 8→vario451)
# APT (Apator):     atal
# DAN (Danfoss):    qheat5
# SON (Sontex):     supercal531, supercal739
# ZEN (Zenner):     mbus_easy
# DME (Diehl):      izar
# AXI (Axioma):     qalcosonic_w1
# QDS (Qundis):     qheat5, supercom587

# Test driver eksplicit:
sudo wmbusmeters auto:im871a:868.95M:c1t1 \
  Heat_01 multical302 12345678 NOKEY

# Se liste over alle drivere:
wmbusmeters --listmeters

Konklusion

Systematisk fejlsøgning: 1) Verificér wmbusmeters-service kører, 2) USB dongle registreret + symlink, 3) RSSI acceptable (>-100 dBm), 4) Korrekt mode (c1t1 dækker begge), 5) AES-nøgle konfigureret ved DEC_ERR, 6) Gateway-placering optimeret for betondæmpning, 7) Korrekt driver. Platform RSSI-dashboard og anomali-detektion identificerer problemgateways automatisk.

Se RSSI signal guide eller wmbusmeters installation guide.