Hallo,
ich versuche nun schon seit einem Monat einen Stromzähler über M-Bus
auszulesen. Die Stecke sieht wie folgt aus: Zähler - M-Bus Master -
Pegelwandler über USB - Raspberry PI.
Der Pegelwandler der am RPI hängt wird erkannt, doch jetzt möchte ich
über das Linux Terminal irgendwie ein Lebenszeichen bekommen, was mit
dem M-Bus Telegramm 10 40 FE 3E 16 erreicht werden sollte.
Es kommt aber leider keine Antwort.
ich hab es mit:
sudo echo -e \\x10 \\x40 \\xFE \\x3E \\x16 > /dev/USB0
versucht.
Und im Hintergrund lasse ich:
cat < /dev/USB0
laufen.
Hat jemand von euch eine Idee was ich noch Versuchen könnte bzw. was ich
falsche mache?
MfG
Mujir
Hallo Walter,
Walter schrieb:> Port auf 2400, 8E1?
USB0 ist auf 2400 eingestellt, mittels:
sudo stty 2400 -F /dev/ttyUSB0
wie würde ich den die Baudrate für den M-Bus Zähler einstellen?
Bzw. glaube ich das 2400 die default Einstellung ist. Über ein
Auslesetool für Windows wurden 2400 baud angeben, wobei ich nicht weiss
ob das Byte extra gesendet wurde/werden muss.
MfG
Mujir
Hallo Walter,
danke für den Link :)
setserial hat bei mir leider nicht funktioniert.
Dafür aber:
stty -F /dev/ttyUSB0 2400 cs8 parenb -parodd -cstopb
USB0 steht jetzt auf 2400 Baud und 8E1.
Mit MBSheet konnte ich meinen Zähler finden, aber keinen Hinweis auf die
Lösung meines Problems.
Das Linux Terminal gibt nichts zurück. Mit meinem Perl-Programm
funktioniert es ebensowenig. Irgendwas mache ich falsch bei der
Übertragung des Telegrammes.
Mujir87 schrieb:> stty -F /dev/ttyUSB0 2400 cs8 parenb -parodd -cstopb
Steht -parodd wirklich für even parity?
Schickt mbsheet denn exakt das Gleiche zum Zähler?
cutecom wäre auch noch ein Terminalprogramm f. Linux zum Testen.
Gruß,
Walter
Hallo Walter und Timmo H. ,
Walter schrieb:> Steht -parodd wirklich für even parity?
Laut http://wiki.linpert.de/index.php?title=Serielle_Schnittstelle
steht der Bindestrich vor parodd dafür das es sich um even parity
handelt.
Walter schrieb:> Schickt mbsheet denn exakt das Gleiche zum Zähler?
das Prgroamm liest den Zähler erfolgreich aus, nachdem die genau Zähler
Addresse gefunden wurde.
Hat mich aber unter Linux nicht weiter gebracht, vielleicht hab ich was
übersehen?
Walter schrieb:> cutecom wäre auch noch ein Terminalprogramm f. Linux zum Testen.
Funktioniert sehr gut. Mit Cutecom kann ich den Zähler auslesen ;)
Danke für den spitzen Tipp Walter
Jetzt interessiert mich noch wie Cutecom das macht. Wo bzw. wie kann ich
den Quellcode einsehen?
Timmo H. schrieb:> Wieso sendest du über /dev/USB0 und nicht über /dev/ttyUSB0?
Da hast du Recht "/dev/ttyUSB0" ist natürlich richtig und wurde auch so
von mir genutzt, da hab ich mich hier im Forum vertippt.
MfG
Mujir
Mujir87 schrieb:
versuch mal:
echo -e \\x10 \\x40 \\xFE \\x3E \\x16 >test.txt
und sie dir an was dann in der Datei landet. Sieht bei mir so aus:
00000000 10 20 40 20 │ FE 20 3E 20 │ 16 0A
das ist sicher nicht das was du wolltest.
Hallo temp,
temp schrieb:> So sollte das wie gewollt gehen:>> echo -n -e "\\x10\\x40\\xFE\\x3E\\x16" >/dev/ttyUSB0
Das ist ein sehr interssanter Tipp, habe ich natürlich direkt
ausprobiert aber leider bekomme ich so über das Linux Terminal immer
noch keine Rückmeldung ,mittels "cat" Befehl, von meinem Zähler
Meine manuell konfigurierte ttyUSB0 Schnittstelle scheint genauso
eingestellt zu sein wie die, die von Cutecom eingestellte ttyUSB0
Schnittstelle.
Über Cutecom kann ich den Zähler wunderbar auslesen, nur wie Cutecom das
macht interessiert mich noch.
MfG
Mujir
Hallo,
ich plane auch demnächst meinen Haus-Wasserzähler, der eine Samson HRI
DataUnit bekommt, über M-Bus mit einem RPI auszulesen.
Du schreibst oben, dass da ein "M-Bus Master" dazwischen hängt.
Braucht es dass denn unbedingt?? Ich hatte gehofft, dass ich die Daten
bzw. das Protokoll direkt an den RPI an einen GPIO Pin geben kann (über
einen Pegelwandler).
Was macht der Master denn noch? Und wo bekommt man denn so einen M-Bus
Master?
Danke!