Schritt 1: OBIS-Codes im M-Center hinterlegen
Hinterlegen Sie im M-Center bei jedem Register, das Home Assistant bekommen soll, den OBIS-Code. Dann liegt der Wert an einer festen Adresse, zum Beispiel der Zählerstand Bezug Tarif 1 (1-0:1.8.1) an Register 1030. Notieren Sie für jeden Zähler die «Modbus TCP Server Gerätenummer». Sie ist in Home Assistant die Geräteadresse.
Prüfen Sie auch die Einheit des Registers im M-Center. Home Assistant übernimmt den Zahlenwert, die Einheit legen Sie selbst fest. Steht im M-Center Wh, tragen Sie in Home Assistant Wh ein.
Schritt 2: Modbus in Home Assistant einrichten
Ergänzen Sie die configuration.yaml. Das Beispiel liest Bezug Tarif 1 und Tarif 2 eines Zählers mit Geräteadresse 9 und den Wasserzähler mit Adresse 12:
modbus:
- name: m_center
type: tcp
host: 192.168.1.50 # IP des M-Centers
port: 502
sensors:
- name: "Wohnung 1 Bezug Tarif 1"
slave: 9 # Geräteadresse im M-Center
address: 1029 # Register 1030, ab 0 gezählt
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Wohnung 1 Bezug Tarif 2"
slave: 9
address: 1059 # Register 1060
input_type: holding
data_type: float32
unit_of_measurement: Wh
device_class: energy
state_class: total_increasing
scan_interval: 900
- name: "Wohnung 1 Kaltwasser"
slave: 12
address: 2999 # Register 3000
input_type: holding
data_type: float32
unit_of_measurement: m³ # Einheit wie im M-Center
device_class: water
state_class: total_increasing
scan_interval: 900
Drei Punkte, an denen es oft hakt:
- Adresse: Das Handbuch zählt die Register ab 1, Home Assistant ab 0. Deshalb steht im Beispiel 1029 für Register 1030. Prüfen Sie das einmal mit einem bekannten Zählerstand.
- Byte-Reihenfolge: Das M-Center liefert Big Endian mit dem höherwertigen Wort zuerst. Das entspricht der Grundeinstellung von Home Assistant, ein
swapist nicht nötig. - Schlüsselname: Je nach Home-Assistant-Version heisst die Geräteadresse
slaveoderdevice_address. Massgebend ist die Dokumentation Ihrer Version.
Das scan_interval von 900 Sekunden entspricht dem Ausleseintervall des M-Centers von 15 Minuten. Häufiger abzufragen bringt keine neueren Werte.
Schritt 3: Energie-Dashboard
Nach dem Neustart erscheinen die Sensoren in Home Assistant. Weil sie device_class: energy bzw. water und state_class: total_increasing tragen, lassen sie sich unter Einstellungen → Dashboards → Energie als Netzbezug, Gerät oder Wasserverbrauch auswählen.
Alternative: MQTT
Hat das M-Center die MQTT-Lizenz, kann es seine Werte an den Broker von Home Assistant publizieren, zum Beispiel an das Mosquitto-Add-on. Die Topics folgen dem Schema <Präfix>/emu/mcenter/<MAC>/meterreading/<Seriennummer>/byobis/<OBIS-Code>.
Sehen Sie sich die Nachrichten vor dem Einrichten an, etwa mit MQTT Explorer oder in der MQTT-Integration von Home Assistant unter «Auf ein Topic hören». Danach legen Sie für jedes Topic einen MQTT-Sensor an und lesen den Wert passend zum Nachrichteninhalt aus.
Modbus ist der einfachere Weg, wenn nur Home Assistant die Werte braucht. MQTT lohnt sich, wenn weitere Systeme mitlesen sollen.