Forum: PC-Programmierung mbus server software


von Klaus C. (Gast)


Lesenswert?

Hallo,

ich möchte gerne einen MBus Energiezähler über Ethernet auslesen.
Aktuell ist über die OpenSource Software libmbus 
(https://github.com/rscada/libmbus) ein Auslesen über die Serielle 
Schnittstelle möglich.

Das libmbus Projekt hat sowohl die Möglichkeit auf den MBus via 
Serialport (mit Wandler) oder per Ethernet zuzugreifen.
Mit MBus über TCP kenne ich mich nicht aus, habe aber auch keine Lust 
einen sehr teuren Mbus Ethernet Master zu kaufen.
Da kam mir der Gedanke, aus dem Computer, wo der MBus per Serialport 
angeschlossen ist einen MBus Ethernet Server/Master, wie auch immer man 
das nennt, zu machen und suche evtl. schon vorhandene OpenSource 
Projekte oder libmbus Erweiterungen, die dies unterstützen.
Idealerweise könnte ich dann von dem anderen Computer mit dem Programm 
"mbus-tcp-request-data" aus dem libmbus Projekt auf die 
Energiezählerdaten zugreifen.
Da ich im libmbus Projekt keinerlei TCP-Server Funktionalität gefunden 
habe, ist meine Hoffnung hier kann mir einer bei dem Vorhaben helfen.


Bin für jede Anregung dankbar!

von Klaus C. (Gast)


Lesenswert?

habe mit ser2net versucht, den Serialport weiterzuleiten, doch das 
funktioniert nicht. Der Energiezähler wird nicht erkannt mit 
"mbus-tcp-scan -d localhost 3001 "
1
ser2net.conf
2
3001:raw:1500:/dev/ttyAMA0:2400 8DATABITS NONE 1STOPBIT
hat hier wirklich keiner einen Plan, ist die Frage zu einfach oder bin 
ich im falschen Forum?

von Hmmm (Gast)


Lesenswert?

Klaus C. schrieb:
> 2400 8DATABITS NONE 1STOPBIT

M-Bus verwendet Even Parity (8E1). Siehe auch mbus-serial.c:
1
    term->c_cflag |= (CS8|CREAD|CLOCAL);
2
    term->c_cflag |= PARENB;

Klaus C. schrieb:
> hat hier wirklich keiner einen Plan, ist die Frage zu einfach oder bin
> ich im falschen Forum?

Du hast nicht genug Geduld.

von Klaus C. (Gast)


Lesenswert?

Hmmm schrieb:
> M-Bus verwendet Even Parity (8E1). Siehe auch mbus-serial.c:
>     term->c_cflag |= (CS8|CREAD|CLOCAL);
>     term->c_cflag |= PARENB;
>
> Klaus C. schrieb:
>> hat hier wirklich keiner einen Plan, ist die Frage zu einfach oder bin
>> ich im falschen Forum?
>
> Du hast nicht genug Geduld.
Ja, sieht leider so aus :(
Ich war fest der Meinung es wird 8N1 verwendet.

Vielen Dank, so klappt es
1
$ sudo nano /etc/ser2net.conf
2
3009:raw:0:/dev/ttyAMA0:2400 8DATABITS EVEN 1STOPBIT
3
$ sudo systemctl restart ser2net.service
4
$ mbus-tcp-request-data -d localhost 3009 0

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.