Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:meters:power:edl-ehz:sdm630_modbus

Dies ist eine alte Version des Dokuments!


SDM630 Modbus

Für alle, die es interessiert. Es ist mir gelungen, den günstigen 3-Phasenzähler „SDM630 Modbus“ von B+G E-tech bzw. Eastron in den Volkszähler zu integrieren. Es handelt sich um einen billigen Zähler, der, wie der Name schon vermuten lässt, sich per RS485 und Modbusprotokoll auslesen lässt.

Billig meint hier auch, dass man vorsichtig mit dem Festziehen der Stromkabel sein muss. (nach „fest“ kommt „kaputt“)

Die Modbus-Registerübersicht kann man auf der Seite des deutschen Vertriebs [1] herunterladen.

Der Zähler misst ziemlich viele Werte, wenn er mit Neutralleiter angeschlossen ist.

Als USB-RS485 Konverter nutze ich einen Digitus DA-70157. [2] Diesen habe ich mit 860Ω Pull-Down und Pull-Up versehen. Außerdem sind beide Busenden mit 120Ω terminiert.

Die Portbezeichnung (A|B) am SDM630 stimmt nicht mit der am USB-RS485 Adapter überein; einfach vertauschen.

Bei mir läuft die Verbindung mit 9600 baud 8E1.

Alle Daten des Zählers logge ich monatlich getrennt in eine Datei (mit log-powermeter.sh). Der Zähler soll das Auslesen laut Doku von angeblich nur 40 Werten pro Abfrage unterstützen. Mein Exemplar unterstützt die Abfrage von 50 Werten pro Nachricht. Für dieses Skript benötigt man ein kleines Programm (mbrtu), das auf libmodbus basiert. Hier [4] findet man das Programm, dass gegen die (statisch)e Bibliothek libmodbus gelinkt wird. Achtung: Es wird die momentan noch nicht veröffentlichte Version libmodbus 3.1.3 benötigt. Diese kann man einfach von github [3] herunterladen.

Das Logging geschieht minütlich per cronjob:

/etc/cron.d/log_powermeter
#
# log power meter
#
* * * * *       root    /usr/local/bin/log_powermeter.sh

Per Cronjob wird dann auch der vergangene Monat komprimiert und nächtlich der letzte Tag in den Volkszähler importiert (vz-import_power.sh):

/etc/cron.d/import_vz
#
# remember to escape "%"
#
# import data into volkszaehler
#

15 1 * * *      root    /bin/fgrep "$(date +\%F -d yesterday) " /srv/power/$(date +\%Y-\%m -d yesterday).log | /usr/local/bin/vz-import_sdm630.sh 2>/dev/null
6 0 2 * *       root    nice -n 9 xz -9 /srv/power/$(date +\%Y-\%m -d 2\ days\ ago).log
aktuelle Versionen nun hier bei github: https://github.com/gitaeuber/data_logger.git

Anhänge:
log-powermeter.sh
vz-import_power.sh

[1] http://bg-etech.de/download/manual/SDM630Register.pdf
[2] http://www.amazon.de/Digitus-DA-70157-Seriell-Adapter-USB/dp/B007VZY4CW
[3] http://libmodbus.org/download/
[4] https://github.com/gitaeuber/mbrtu

– Schöne Grüße Lars Täuber

hardware/channels/meters/power/edl-ehz/sdm630_modbus.1448791090.txt.gz · Zuletzt geändert: 2015/11/29 10:58 von udo1