Neues Modul zur Abfragen eines MBus Netzwerks

Begonnen von daubsi, 05 Dezember 2015, 21:57:44

Vorheriges Thema - Nächstes Thema

daubsi

Ich könnte mir schon vorstellen, dass es grundsätzlich geht - nur halt nicht einfach so via "SetCounter()" o.ä.
Ich meine bei meinem Fernwärme Zähler kann man das einstellen - aber halt nur nach Eingabe der PIN des Versorgers - die ich natürlich nicht habe ;-)

daubsi

Aloha, hat mich mein Gedächtnis doch nicht im Stich gelassen:

https://sensus.webdamdb.com/bp/#/search?q=%22HRI%20Sensor%22&filters=%257B%257D#22972030

Seite 3: Data Interface. "Counter start reading: To synchronize the MBus counter with the meter reading" ... "All settings are also programmable in the field"... "Minicom is a SW to programm the HRI B using a PC"


micomat

Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

klaso

Hallo zusammen,

ich habe einen Wärmemengenzähler Landis Gyr T550 Ultraheat mit Mbus-Schnittstelle. Diese Schnittstelle wird vom EVU genutzt.
Nachdem meine Versuche, über die optische Schnittstelle mit dem Script von http://www.sedelmaier.at/node/112 ins Stocken geraten, stell ich jetzt mal eine blöde Frage an euch:

Habt Ihr Erfahrungen mit einem Mbus-Splitter ( 2x Master, 1x Slave)? ich habe einen Pegelwandler PW3 vorliegen, jedoch hält mich der Preis für einen derartigen Splitter doch etwas ab, einfach zu bestellen und dann festzustellen, dass es nicht funktioniert.
http://www.relay.de/de/produkte/m-bus-accessories/m-bus-splitter.html
Für diesen Geldbetrag kann ich mir schon fast einen "eigenen" Wärmemengenzähler verbauen lassen ;-)
Vielen Dank und Grüsse
klaso
Raspberry Pi 2 B+; Software: Raspbian Jessie, Fhem 5.8
ZWave, Enocean, FBAHAHTTP, ENIGMA2
Barebone mit openmedivault und Fhem5.8, MySQL, MyObis, VBUS LAN-Adapter in Fhem, Homematic CCU2; Jeelink mit TX29IT, HMCCU: Schnittstelle CCU2 - FHEM

daubsi

Hm, ich denke schon dass das funktionieren müsste, denn das ist ja genau der Einsatzzweck des Gerätes.
Allerdings ist eventuell fraglich, ob Du den Splitter dazwischen klemmen darfst, weil Du damit ja "theoretisch" etwas manipulieren könntest.Und oft sind die Energieversorger da so ein bisschen pingelig.
Ich habe auch den PW3 von Relay im Einsatz und bin damit sehr zufrieden. Es klappt alles einwandfrei. Der teure Preis ist vermutlich auch dadurch gerechtfertigt, dass es einfach kein Mainstream-Produkt ist.
Versuch mal Dein Glück bei Ebay bzw. Ebay Kleinanzeigen. Dort hatte ich auch den PW3 für einen "Spottpreis" von gerade mal 70 EUR bekommen  :o

Viel Erfolg!

klaso

Raspberry Pi 2 B+; Software: Raspbian Jessie, Fhem 5.8
ZWave, Enocean, FBAHAHTTP, ENIGMA2
Barebone mit openmedivault und Fhem5.8, MySQL, MyObis, VBUS LAN-Adapter in Fhem, Homematic CCU2; Jeelink mit TX29IT, HMCCU: Schnittstelle CCU2 - FHEM

maseb

Hallo,
ich habe an meiner Wasseruhr eine HRI Data Unit von Sensus installiert. Es ist eine HRI B4 /8l.
Als Pegelwandler habe ich einen PW3. Nun kommen aus der HRI Unit 4 Kabelfarben. Ich habe braun und weiss an den PW3 angeschlossen, jedoch bekomme ich den Zähler nicht ausgelesen. Installiert habe ich libmbus und auslesen möchte ich es über das Neue MBus Modul.

Kann mir jemand eine Hilfestellung geben um das Problem in den Griff zu bekommen.

Grüße
Rudi
CUL mit EM 1000 S/IR und EM 1000 HSM

daubsi

Servus Rudi,

nun ja, "was" geht denn nicht?

Wie hast Du den Zähler angeschlossen? Die genaue Modellbezeichnung habe ich gerade nicht im Kopf, aber bei mir ist das grüne und braune Kabel am PW3 angeschlossen.
Wichtig ist, dass Du beim HRI tief runter gehst mit der Baudrate, da das Device maximal, glaube ich, nur 1200 baud kann. Ich habe ihn mit 300 baud angebunden, das läuft stabil.
Die Baudrate stellst Du über den Parameter "-b" ein.
Welche Ausgabe bekommst Du bei folgendem Kommando?

root@fhem:/usr/local/bin# /usr/local/bin/mbus-serial-request-data -b 300 /dev/ttyUSB1 10
<MBusData>

    <SlaveInformation>
        <Id>52780535</Id>
        <Manufacturer>INV</Manufacturer>
        <Version>64</Version>
        <ProductName></ProductName>
        <Medium>Water</Medium>
        <AccessNumber>61</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <Unit>Fabrication number</Unit>
        <Value>52780535</Value>
        <Timestamp>2017-05-08T06:57:15</Timestamp>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <Unit>Volume (m m^3)</Unit>
        <Value>116178</Value>
        <Timestamp>2017-05-08T06:57:15</Timestamp>
    </DataRecord>

</MBusData>

Wenn Du die Geräte-ID noch nicht weisst, dann kannst Du mit "mbus-serial-scan" den Bus absuchen lassen.

VG
Markus

Garf

Hallo daubsi,

ich würde auch gerne den libmbus auf meinem Raspi3 installieren. Aber genau da scheitere ich schon als blutige Anfänger. Ich erhalte immer eine Fehlermeldung, dass die Paket-Architektur nicht zum Sytem passt. Ich wollte die letzte Version 0.8.0 von rSCADA installieren. Was mache ich falsch bzw. welche Version hast Du wie auf deinem Pi installiert?

Gruß

Garf

daubsi

Hallo,

ich nehme an, Du verwendest die Version von http://www.rscada.se/libmbus/index.php?lang=en?

Der RPI3 ist meines Wissens nach nativ 64 bit, also sollte eigentlich die v0.8.0 passen, da diese ja als 64 bit Paket vorliegt.
Ich kann leider gerade nicht nachschauen, welche Version ich nutze, da es mir mal wieder die SD Karte meines PIs zerhauen hat und ich mir nicht mal mehr die installierte Paketliste anschauen kann...
Ich denke aber, dass es zum Setup die aktuellste Version war, und das hätte dann ja auch schon v0.8.0 sein müssen.

Edit: Habs doch gefunden! Ich habe die Sourcen der v0.8.0 Library verwendet und kein fertiges Paket genommen. Also einfach das tar.gz runterladen, entpacken und compilieren. Lief problemlos durch.
Vielleicht hat bei mir das fertig gebaute Paket auch nicht funktioniert.

Ich habe fhem auf einem Pi1 da ich dort das Funk Shield von busware.de (http://shop.busware.de/product_info.php/cPath/1_35/products_id/97) nutze. Zum damaligen Zeitpunkt gab es noch keine Version, die auf Pi2/3 funktionierte.

Was für ein Fehler kommt denn?

Garf

Zitat von: daubsi am 28 Oktober 2017, 14:24:24
ich nehme an, Du verwendest die Version von http://www.rscada.se/libmbus/index.php?lang=en?

Ja, genau.
Zitat von: daubsi am 28 Oktober 2017, 14:24:24
Ich habe die Sourcen der v0.8.0 Library verwendet und kein fertiges Paket genommen. Also einfach das tar.gz runterladen, entpacken und compilieren. Lief problemlos durch.
Die habe ich mittlerweile auch genommen. Nur die dann erforderlichen Schritte habe ich noch nicht wirklich verstanden. Im Moment läuft die "mbus-tcp-scan" Abfrage und es werden zwei Devices angezeigt. Wenn ich versuche über "mbus-tcp-request-data"  die Daten zu lesen, dann kommt eine Fehlermeldung.

Die Installation von libmbus habe ich nach folgender Anweisung aus dem RaspberryPi-Forum durchgeführt:
ZitatZ. B. in das geignete Verzeichnis (evtl. "Downloads") wechseln und:
Code

    wget -4 -c http://www.rscada.se/public-dist/libmbus-0.8.0.tar.gz
    tar xzvf libmbus-0.8.0.tar.gz
    cd libmbus-0.8.0
    CFLAGS+="-g -O2 -Wl,-rpath=/home/$USER/Downloads/libmbus-0.8.0/mbus/.libs" ./configure --with-gnu-ld
    make
    ldd bin/.libs/mbus-tcp-scan

wenn OK:
Code

    sudo make install
    ldd $(which mbus-tcp-scan)
    mbus-tcp-scan -h
Aber es ist ja wie so oft im Leben, wenn man gar nicht weiß was man da macht, dann kann man den Fehler auch nicht finden. Ich vermute mal, dass ich nicht alles compiliert habe?! Bevor ich jetzt irgendwelche Dinge ausprobiere, frage ich lieber nach.

Entschuldige bitte, dass ich mich erst jetzt melde, aber ich hatte gar nicht damit gerechnet, dass der Thread noch aktiv beobachtet wird.

Gruß Garf

daubsi

Hallo,

verrat doch mal, was Du eigentlich für Geräte abfragen möchtest?
Ich wundere mich nämlich gerade, dass Du von dem mbus-tcp-scan sprichst. Hast Du die Geräte nicht über eine serielle Schnittstelle angebunden?
Meine beiden Messgeräte sind nämlich seriell angebunden.

Kurz zur Info wie das bei mir ablief:

pi@fhem /usr/local/bin $ mbus-serial-scan /dev/ttyUSB1
Found a M-Bus device at address 1
Found a M-Bus device at address 10

Abfragen kann man es nun z.B. so:

pi@fhem /usr/local/bin $ mbus-serial-request-data -b 300 /dev/ttyUSB1 10
<MBusData>

    <SlaveInformation>
        <Id>52780535</Id>
        <Manufacturer>INV</Manufacturer>
        <Version>64</Version>
        <ProductName></ProductName>
        <Medium>Water</Medium>
        <AccessNumber>186</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <Unit>Fabrication number</Unit>
        <Value>52780535</Value>
        <Timestamp>2017-10-31T20:50:38</Timestamp>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <Unit>Volume (m m^3)</Unit>
        <Value>164059</Value>
        <Timestamp>2017-10-31T20:50:38</Timestamp>
    </DataRecord>

</MBusData>

Mit mbus-tcp-request-data sollte es analog funktionieren, nur dass Du hier halt IP/Port angibst, anstatt die serielle Schnittstelle und das Gerät.



Garf

Hallo daubsi,

ich habe hier zwei M-Bus Feldgeräte (1x Wechselstromzähler, 1x Wärmemengenzähler) an einem Relay PW20 angeschlossen. Dieser ist an einem Relay Seriell/TCP  Wandler angeschlossen und soll nun an Port 1001 im IP Netzwerk Daten zur Verfügung stellen. Gefunden werden die beiden M-Bus Devices an Adresse 1 und 2. Werte kann ich allerdings keine abfragen, da offensichtlich die libmbus libary auf dem RasPi3 noch nicht richtig installiert wurde. Und genau hier bräuchte ich Hilfe. Wie installiere ich die Libary auf dem Raspberry richtig, damit ich alle Kommandos für seriell und TCP ausführen kann?

Kannst Du mir hierbei helfen?

Garf

daubsi

Hallo,

ich weiß nicht wie die TCP Variante funktioniert, aber wenn Du mal schreibst was für ein Fehler kommt bzw. Warum Du denkst dass etwas nicht passt, können wir mal schauen was man tun kann...

Garf

Hi,

so der libmbus funktioniert nun wie er soll. Ich habe die folgenden Kommandos noch durchgeführt:

Zitat./configure
make
make install

Bei der Eingabe für die Datenabfrage muss man bei Verwendung von Copy und Paste darauf achten den Port 1001 einzugeben. Im Beispiel von rscada hat sich da offensichtlich ein Tippfehler eingeschlichen.
Zitatmbus_request_data 192.168.0.100 10001 1

Jetzt bekomme ich auch die Daten für die beiden Feldgeräte ausgelesen.

Beispiel für M-Bus Adresse 1:

pi@raspberrypi:~ $ mbus-tcp-request-data 192.162.170.3 1001 1
<MBusData>

    <SlaveInformation>
        <Id>93</Id>
        <Manufacturer>SBC</Manufacturer>
        <Version>35</Version>
        <ProductName></ProductName>
        <Medium>Electricity</Medium>
        <AccessNumber>5</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <Unit>Energy (10 Wh)</Unit>
        <Value>0</Value>
        <Timestamp>2017-11-01T05:18:41</Timestamp>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <Unit>Energy (10 Wh)</Unit>
        <Value>0</Value>
        <Timestamp>2017-11-01T05:18:41</Timestamp>
    </DataRecord>

    <DataRecord id="2">
        <Function>Instantaneous value</Function>
        <Unit> V</Unit>
        <Value>235</Value>
        <Timestamp>2017-11-01T05:18:41</Timestamp>
    </DataRecord>
....


Wie und womit kann ich die Daten nun weiter verarbeiten?
Werden die Daten auch als xml File irgendwo abgelegt?

Am liebsten würde ich die Daten mit NodeRed weiterverarbeiten. Leider findet man in Deutschland so gut wie keine User, die mit NodeRed arbeiten.

Garf