m-BUS Komponente mit ESPHome

Hallo,
ich bin neu hier und möchte mich demnächst mit Home Assistant beschäftigen.
Meine erstes Ziel wird es sein, 7 Wasser- und 4 Stromzähler zu integrieren, die allesamt an einen M-Bus (Meter-Bus) angeschlossen sind (drahtgebunden).
Eine kommerzielle Lösung (M-Bus auf Modbus/TCP oder M-Bus auf MQTT Converter) ist sündhaft teuer. Ich würde diese Lösung so lange wie möglich vermeiden.
Daher eine Frage an Euch. Simon hat in seinem ESPHome-Video ein CAN-Bus Modul für ESPHome vorgestellt. Kennt Ihr ein vergleichbares Modul für den Anschluss des M-Bus (16 Lasten oder auch aufgeteilt), welches ich direkt in Zusammenhang mit ESPHome verwenden kann.
Danke Thomas

Kennst du die Lösungen auf Basis ESP32, mit Tasmota oder AMS Reader?

Ich habe einiges gelesen. Aber ich bin daraus nicht schlau geworden. Es gibt wohl für den Raspi einen M-bus-Aufsatz, aber ich will nicht den Raspi nehmen sondern den Intel Nuc. Da brauche ich etwas anderes, zumindest einen Pegelwandler.

Es gibt Möglichkeiten entweder MBus (Master! - nicht Slave) USB sticks einzubinden, oder den Mbusino der die Daten per mqtt schickt. Mit letzterem möchte ich meinen Wärmemengenzähler einbinden. Hoffe es gelingt mir…
Schmökern mal hier: Auslesen von Wärmemengenzählern- alles über M-Bus, Modbus und Co - Seite 28 - Energiesparen, Heizen, Dämmen, Solarthermie - Photovoltaikforum

Für den Intel NUC kannst du den „ZTSHBK USB-zu-MBUS-Slave-Modul Master-Slave-Kommunikation“ verwenden. Und ein Python Script zum Auslesen.

Danke Euch erstmal, ich belasse es hierbei mit meiner Anfrage. Ich wollte bewusst auf Scripte etc. verzichten, damit es einfach zu warten bleibt. Ich werde mir wohl eine etwas teureres MBus-zu-Modbus-Gateway kaufen und hoffe damit, dass ich dann ohne große Umwege die Standardschnittstelle für Modbus-TCP verwenden kann.

für mich keine gute Wahl. Ist nur ein Verschieben des Problems auf ein anderes Protokoll.

Da stecke ich zu wenig drin in der Materie. Ich habe beim googeln herausbekommen, dass HA einige Protokolle wie Modbus, MQTT etc. standardmäßig unterstützt. Leider ist MBus nicht dabei. Und wenn ich es richtig verstehe funktioniert der obige Stick quasi wie ein Pegelwandler, der den seriellen Datenstrom des M-Busses in den seriellen Datenstrom des USB physikalisch anpasst. Aber damit bleibt ja aus meiner Sicht das, was der USB herausgibt weiterhin logisch gesehen M-Bus. Aber wie soll ich dann mit diesen M-Bus Signalen in HA weiterarbeiten. Was würde das Python-Script eigentlich machen, bzw. welche Schnittstelle übernimmt dann das was da herauskommt?
… viele Fragen, ich weiß! …

M-Bus ist die phys. Schicht. Dann gibt es auf Applikationsebene eine Vielzahl an Varianten, abhängig vom Energieversorger und vom Smart Meter. Und die Ver- / Entschlüsselung der Daten vom Smart Meter kommt auch noch hinzu. Neben der M-Bus Schnittstelle kommt auch häufig eine optische Schnittstelle zum Einsatz.
Deswegen gibt es viele spezifische Smart Meter Reader, zumeist auf ESP(32) Basis, die die Daten vom Smart Meter “lesen” und über MQTT ans “Smart Home” weiterleiten… Deswegen der Ansatz, dies nicht direkt in HA zu realisieren.

Hello,
ich habe jetzt doch in den Geldbeutel gegriffen und mir das Gateway Z-KEY-MBUS von der Firma Seneca.it gegönnt. Ich habe es nicht bereut. Dieses setzt sehr transparent von MBUS auf ModBus-TCP um. Man kann auf dem integrierten Webserver auch ein Scan anstoßen und anschließend auswählen, welche Mbus-Tags welcher Geräte ( es sind 10 Stück angeschlossen) überführt werden sollen. Das Einlesen in HA war dann standardmäßig über Modbus/Sensor möglich.

1 „Gefällt mir“

Moin, warum hast Du dann von MBUS auf Modbus-TCP umgesetzt?

Anscheinend gibt es auch die Umsetzung auf MQTT oder ist das dann auf Modbus-TCP einfacher? Ich hätte 10 ABB B23 113-100 Zähler, die leider mit M-Bus ausgestattet sind.

Vielen dank!

MBus Gateway - Programmable M-BUS to Modbus TCP/MQTT/SNMP (iot-store.com.au)

Hallo,
auch ein MBus zu MQTT-Gateway ist nicht einfach zu bekommen und auch nicht billig. Ich hatte mir für 237 Euro von stv-electronic.de ein Gateway gekauft. Das entsprach aber nicht meinen Erwartungen . Ich konnte nircendwo die MBus Slaves scannen und konfigurieren. Ich habe es wieder zurückgeschickt. Das Z-KEY-MBUS Gerät funktionierte auf Anhieb. Ich kann einen Quellscan machen und die bereitzustellenden Modbus-Adressen festlegen. Das Konfigurieren der Modbus-Sensoren ging in der yaml-Datei in HA auch einigermaßen einfach. Fazit: ich habe viel recherchiert. Und das Umsetzen auf Modbus ging am Einfachsten.

Habe diesen Thread zufällig gerade gesehen und falls noch jemand auf der Suche nach etwas funktionierendem ist:
Ich habe eine M-Bus Bibliothek und ein M-Bus → MQTT Gateway für einen ESP geschrieben. Das Tool verfügt über eine Web GUI zur Konfiguration und es sind .bin Files für den ESP8266 D1 Mini und den ESP32 S2 Mini bereitgestellt.

Damit sollten nahezu alle M-Bus Slaves ausgelesen werden können. Für Home Assistent ist Autodiscovery implementiert. Wenn das MQTT addon installiert ist, taucht er mit allen Records automatisch als Gerät im HA auf.

Zusätzlich kann man noch DS18B20 Temperatur Sensoren und einen BME280 Sensor anschließen.
Auch diese Messwerte werden per MQTT versand und sind per Autodiscovery verfügbar.

https://github.com/Zeppelin500/MBusino

https://github.com/Zeppelin500/MBusinoLib

3 „Gefällt mir“

Gratuliere dir zu deinem Projekt!
Warum hast du nicht zB Tasmota als Basis System verwendet, um nicht bei „0“ anfangen zu müssen?

Als absoluter Laie, der ich zu Anfangs war, hätte ich den Code von Tasmota nicht verstanden.
Jetzt verstehe ich jede meiner Zeilen und habe viel gelernt.
Web GUI und solche Komfort Sachen sind ja erst relativ spät dazu gekommen.

Eigentlich wollte ich nur was basteln um meinen WMZ auszulesen. Da ich nichts funktionsfähiges gefunden habe, musste ich mich mit dem M-Bus vertraut machen. Gleichzeitig hatte ich schon was geschrieben um ein Paar DS18B20 auszulesen, und so ist dass dann zusammen gewachsen.

Irgendwie habe ich Spaß daran gefunden und bin dran geblieben. Und so wächst die Funktionalität beständig weiter. Es dürfte im Moment so ca. 100 User geben.

Ok, und wie kam es dann zu der Hardware von Zihatec? Hast du die gefunden oder wurde diese auf deine Initiative hergestellt ?

Wer nach M-Bus Master Hardware für Microcontroller oder SBCs sucht, wird über Zihatec stolpern. Sie verwenden in ihren Beispielprogrammen teilweise die MBusinoLib.
Wir stehen daher in Kontakt und ich brauchte einen Master, der mit 5 V kompatibel und integrierbar ist.
Mit dem zuerst verwendeten chinesischen Master gab es Probleme. Da sind “falsch” geklonte Boards unterwegs.

Um die Motivation weiter zu steigern, könntest du überlegen, das Ganze als External Component in ESPHome umzusetzen. Hier findest du einen hilfreichen Einstieg:

Ich habe zum Beispiel meine alte Heizungssteuerung von TA (DL-Bus) auf diesem Weg integriert. So konnte ich mich auf das Wesentliche konzentrieren: die Implementierung des Protokolls und die Auswertung der Daten. Den Rest – wie die einfache Einbindung in Home Assistant – hat mir ESPHome abgenommen. :blush:

Falls deine Konfiguration jedoch so komplex ist, dass sie nicht in das ESPHome-Schema passt, könntest du alternativ eine eigene Integration für Home Assistant erstellen. Durch die vereinfachte Nutzung würde sich der Nutzerkreis vermutlich noch weiter vergrößern.

Autodiscovery für HA ist ja schon umgesetzt. Über die MQTT Integration wird MBusino als Gerät gefunden und alle M-Bus Records werden als Entitäten angelegt.

Das ist ziemlich tricky, da die Konfig “on the fly” erstellt werden muss. Ich hab vorab ja keine Ahnung welche Werte und Einheiten der Slave so schickt. Aber, es läuft! :slight_smile:

Mit ESP Home habe ich mich nicht beschäftigt.

Im Moment gibt es 2 verschiedene Firmware Versionen.
Einmal den MBusino, der unterstützt nur einen Slave. Dafür ist er “Plug and Play” und nur die WLan Daten und MQTT Broker müssen im Captive Portal eingetragen werden.
Dann gibt es noch MBusino3S für bis zu 3 Slaves. Da muss man dann logischerweise verschiedene Adressen vergeben.
Ausgeliefert werden Slaves für gewöhnlich mit Adresse 0. Diese kann man dann über die GUI des MBusinos in den Slaves verändern.

1 „Gefällt mir“

Hallo,

ich steige jetzt Mal quer in den Thread ein. Ich habe einen Multical 403 an meiner Übergabestation von Enerpipe. Dieser hat Mbus.

Ich würde diesen jetzt gerne auslesen. Hat jemand so ein Platine für den Mbusino über? Die restlichen Teile kann ich mir selber organisieren und drauf löten.

Danke für Eure Hilfe.