Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:meters:power:eastron_sdm630_modbus

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:channels:meters:power:eastron_sdm630_modbus [2018/01/07 20:09] – verschoben von hardware/channels/meters/power/edl-ehz/sdm630_modbus jauhardware:channels:meters:power:eastron_sdm630_modbus [2021/02/01 16:16] (aktuell) – Syntaxhighlight jau
Zeile 1: Zeile 1:
-====== SDM630 Modbus ====== +====== Eastron SDM630 Modbus ====== 
-Beim "SDM630 Modbus" von B+G E-tech (bzw. Eastron) handelt sich um einen billigen 3-Phasenzähler Zähler, der, wie der Name schon vermuten lässt, sich per RS485 und Modbusprotokoll auslesen lässt.\\+Beim "SDM630 Modbus" von Eastron (Vertrieb durch B+G E-tech) handelt sich um einen billigen 3-Phasenzä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").\\ Billig meint hier auch, dass man vorsichtig mit dem Festziehen der Stromkabel sein muss (nach "fest" kommt "kaputt").\\
  
-Der Zähler misst ziemlich viele Werte, wenn er mit Neutralleiter angeschlossen ist. +Der Zähler misst ziemlich viele Werte, wenn er mit Neutralleiter angeschlossen ist. Allerdings zählt er nicht phasensaldierend. Als Zweirichtungszähler wird er daher andere Werte ermitteln als die Zähler der Netzbetreiber. Kostengünstige, phasensaldierende Alternative wäre der [[dzg_dvh4013_modbus]].\\ 
-Die [[http://bg-etech.de/download/manual/SDM630Register.pdf|Modbus-Registerübersicht]] kann man auf der Seite des deutschen Vertriebs herunterladen.+ 
 +Die [[http://bg-etech.de/download/manual/SDM630Register.pdf|Modbus-Registerübersicht]] kann man auf der Seite des deutschen Vertriebs herunterladen.\\
  
 ===== Hardware ===== ===== Hardware =====
Zeile 12: Zeile 13:
  
 <note important>Die Portbezeichnung (A|B) am SDM630 stimmt nicht mit der am USB-RS485 Adapter überein; einfach vertauschen.</note> <note important>Die Portbezeichnung (A|B) am SDM630 stimmt nicht mit der am USB-RS485 Adapter überein; einfach vertauschen.</note>
- 
-Bei mir läuft die Verbindung mit [[hardware:controllers:ir-schreib-lesekopf#grundlagen|9600bd 8E1]]. 
  
 ===== Kommunikation ===== ===== Kommunikation =====
-Im Beispiel werden die Daten monatlich getrennt in eine Datei (mit log-powermeter.sh) geloggt. Der Zähler soll das Auslesen laut Doku von angeblich nur 40 Werten pro Abfrage unterstützen. Das getestete Exemplar unterstützt die Abfrage von 50 Werten pro Nachricht+Der Zähler unterstützt laut Doku nur 30 Werte (60 Register) pro Abfrage. 
-Für dieses Skript benötigt man das kleine Programm [[https://github.com/gitaeuber/mbrtu|mbrtu]], das auf libmodbus basiert. Es ist gegen die (statisch)e Bibliothek libmodbus gelinkt. Achtung: Es wird die momentan noch nicht veröffentlichte Version [[http://libmodbus.org/download/|libmodbus]] 3.1.3 benötigt. Diese kann man einfach von github herunterladen.+ 
 +===== Auslesen mit mbrtu ===== 
 +Für die folgenden Skripte benötigt man das kleine Programm [[https://github.com/gitaeuber/mbrtu|mbrtu]], das auf libmodbus basiert. Es ist gegen die (statisch)e Bibliothek libmodbus gelinkt. Achtung: Es wird die Version [[http://libmodbus.org/download/|libmodbus]] 3.1.3 benötigt. Diese ist ab Debian buster in der Distribution enthalten; Benutzer älterer Distributionen können diese einfach von github herunterladen
 + 
 +==== Installation der Software ==== 
 +=== libmodbus === 
 + 
 +(wenn die libmodbus 3.1.3 nicht schon in der Distribution enthalten ist) 
 + 
 +<code> 
 +cd ~ 
 +git clone git://github.com/stephane/libmodbus 
 +cd libmodbus 
 +./autogen.sh 
 +./configure --enable-static 
 +make 
 +sudo make install 
 +sudo cp ./src/.libs/libmodbus.a /usr/local/lib/ 
 +</code> 
 + 
 +=== mbrtu === 
 +<code> 
 +cd ~ 
 +git clone https://github.com/gitaeuber/mbrtu 
 +cd mbrtu 
 +make 
 +sudo make install 
 +</code> 
 + 
 +==== BASH-Script, direkt ==== 
 +Im Folgenden läuft die Verbindung mit [[hardware:controllers:ir-schreib-lesekopf#grundlagen|2400bd 8N1]]. 
 + 
 +Das Beispiel loggt den Total-Zählerstand (und nur den) direkt über die VZ-Middleware. 
 + 
 +<code bash> 
 +#!/bin/bash 
 +
 +# log a register (electric energie) of Eastron meter to Volkszaehler.org 
 +
 +# example conjob: 
 +# * * * * * root /usr/local/bin/sdm_mbrtu.sh 
 +
 + 
 +# PATH for cronjob 
 +PATH=/usr/local/bin:$PATH 
 + 
 +# config Modbus 
 +TTY="/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0" 
 +BAUD=2400 
 +ADDR=1 
 +REG=342 
 + 
 +# config VZ 
 +HOST=localhost 
 +UUID=6836dd20-00d5-11e0-bab1-856ed5f959ae 
 + 
 + 
 +# read Modbus 
 +DATA=( $(mbrtu -d$TTY -b$BAUD -pn -s1 -a$ADDR -fi -tf32_dcba -n2 -r$REG) ) 
 +if [ -z ${DATA[2]} ] 
 +then 
 +    echo "no data revcieved on modbus" 
 +else 
 +    echo "${DATA[2]}" 
 + 
 +    # Timestamp 
 +    TS=$(date +%s) 
 +    TS=$(($TS*1000)) 
 + 
 +    # write VZ 
 +    echo wget -O - -q "http://$HOST/middleware.php/data/$UUID.json?operation=add&ts=$TS&value=${DATA[2]#DATA=}" 
 +    wget -O - -q "http://$HOST/middleware.php/data/$UUID.json?operation=add&ts=$TS&value=${DATA[2]#DATA=}" 
 +    printf "\n" 
 +fi 
 +</code> 
 + 
 + 
 +==== BASH-Script, gepuffert ==== 
 +Im Folgenden läuft die Verbindung mit [[hardware:controllers:ir-schreib-lesekopf#grundlagen|9600bd 8E1]]. 
 + 
 +Im Beispiel werden die Daten monatlich getrennt in eine Datei (mit log-powermeter.sh) geloggt.
  
  
Zeile 46: Zeile 125:
 [[https://github.com/gitaeuber/data_logger.git]]</note> [[https://github.com/gitaeuber/data_logger.git]]</note>
  
-Anhänge:\\+===== vzlogger exec-Kanal ===== 
 + 
 +Man kann über ein kleines Zwischenscript mbrtu in einem vzlogger exec-Kanal verwenden. Dabei ist kein dedizierter cronjob notwendig. Die Beschreibung findet sich in der [[hardware:channels:meters:power:dzg_dvh4013_modbus|Wikiseite über den DZG DVH 4013 Modbus.]] 
 + 
 +===== GoSDM630 ===== 
 + 
 +Eine schönere Methode, die Modbus-Kommunikation zu erledigen, bietet das Tool GoSDM630. 
 + 
 +  * [[https://github.com/gonium/gosdm630|GoSDM630 - An interface for the Eastron SDM/Modbus smart meter series]] 
 +      * [[http://demo.volkszaehler.org/pipermail/volkszaehler-users/2018-December/012376.html|Mailinglistendiskussion dazu]] 
 + 
 +===== Quellen ===== 
 +[[http://bg-etech.de/download/manual/SDM630ModbusDE.pdf|Handbuch deutsch]]\\ 
 +[[http://bg-etech.de/download/manual/SDM630Register.pdf|Modbus-Registerübersicht]] 
 + 
 +===== Anhänge =====
 {{:hardware:channels:meters:power:log_powermeter.rar|log-powermeter.sh}}\\ {{:hardware:channels:meters:power:log_powermeter.rar|log-powermeter.sh}}\\
 {{:hardware:channels:meters:power:vz-import_sdm630.rar|vz-import_power.sh}}\\ {{:hardware:channels:meters:power:vz-import_sdm630.rar|vz-import_power.sh}}\\
 +
  
hardware/channels/meters/power/eastron_sdm630_modbus.txt · Zuletzt geändert: 2021/02/01 16:16 von jau