M-Bus – KWh meter – Finder 7E.23.8.230
Info
1 fase energieverbruiksmeter 32 A conform MID M-bus
Digitale energieverbruiksmeter voor directe aansluiting. De meter voldoet aan EN 62053-21 en EN 50470-3 en is door de Europese MID-goedkeuring gecertificeerd voor het afrekenen van de energiekosten. Naast de weergave van de elektrische energie (kWh) kan deze meter ook de actuele waarden voor spanning, stroom en vermogen weergeven. De meters zijn conform nauwkeurigheidsklasse 1 / B en beschermingsklasse II. Via de M-bus kan bovendien het reactieve vermogen (blindvermogen) afgelezen worden.
Highlights
- Weergave V, A, kW en kWh
- MID-goedkeuring voor afrekening
- Met ingebouwde M-Bus interface
- Eenvoudige bediening via een toets
Uitvoering
- Verbruiksmeter volgens EN 62053-21 en EN 50470
- Multifunctionele LC-display
- M-Bus interface
- De overdrachtssnelheid wordt automatisch herkend
- Nauwkeurigheidsklasse 1 / B
- Veiligheidsklasse apparaat: II
- Met terugloopblokkering
- Voor DIN-rail EN 60715 TH35.
- 17,5 mm breed
- Voor directe aansluiting.
- MID conform.
Uitlezen via Raspberry Pi (libmbus)
Hardware nodig: MBUS naar USB of RS232/TTL converter
Software nodig: libmbus
Boudrate: 2400
Adres: 5
Commando voor XML telegram: mbus-serial-request-data -b 2400 /dev/ttyUSB0 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<?xml version="1.0" encoding="ISO-8859-1"?> <MBusData> <SlaveInformation> <Id>133682</Id> <Manufacturer>FIN</Manufacturer> <Version>54</Version> <ProductName></ProductName> <Medium>Electricity</Medium> <AccessNumber>2</AccessNumber> <Status>00</Status> <Signature>0000</Signature> </SlaveInformation> <DataRecord id="0"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Energy (10 Wh)</Unit> <Value>27</Value> <Timestamp>2020-08-15T16:11:05Z</Timestamp> </DataRecord> <DataRecord id="1"> <Function>Instantaneous value</Function> <StorageNumber>2</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Energy (10 Wh)</Unit> <Value>27</Value> <Timestamp>2020-08-15T16:11:05Z</Timestamp> </DataRecord> <DataRecord id="2"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit> V</Unit> <Value>227</Value> <Timestamp>2020-08-15T16:11:05Z</Timestamp> </DataRecord> <DataRecord id="3"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>1e-1 A</Unit> <Value>2</Value> <Timestamp>2020-08-15T16:11:05Z</Timestamp> </DataRecord> <DataRecord id="4"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Power (10 W)</Unit> <Value>4</Value> <Timestamp>2020-08-15T16:11:05Z</Timestamp> </DataRecord> <DataRecord id="5"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Tariff>0</Tariff> <Device>1</Device> <Unit>Power (10 W)</Unit> <Value>0</Value> <Timestamp>2020-08-15T16:11:05Z</Timestamp> </DataRecord> </MBusData> |
Python Libmbus XML parse directly
This is our script to parse the output from libmbus directly into the XML parser and fetch the data:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import subprocess try: import xml.etree.cElementTree as ET except ImportError: import xml.etree.ElementTree as ET process = subprocess.Popen("mbus-serial-request-data -b 2400 /dev/ttyUSB0 5", shell=True, stdout=subprocess.PIPE) process.wait() if process.returncode == 0: #Output is OK xml = ET.parse(process.stdout) kwh = xml.find("DataRecord[1]/Value").text volt = xml.find("DataRecord[3]/Value").text power = xml.find("DataRecord[5]/Value").text print "KWh W: " + kwh print "Voltage V: " + volt print "Power W: " + str(int(power) * 10) else: print("ERROR!") |
result:
1 2 3 4 |
pi@raspberrypi:~ $ sudo python test.py KWh W: 30 Voltage V: 226 Power W: 30 |
Downloads: