hardware:channels:meters:power:dzg_dvh4013_modbus
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
hardware:channels:meters:power:dzg_dvh4013_modbus [2018/12/10 15:20] – saldierend zugschlus | hardware:channels:meters:power:dzg_dvh4013_modbus [2019/06/04 15:15] – vzlogger-exec Kanal zugschlus | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== DZG DVH 4013 Modbus ====== | ====== DZG DVH 4013 Modbus ====== | ||
- | Der DZG DVH 4013 ist ein 3-Phasen-Zähler, | + | Der DZG DVH 4013 ist ein 3-Phasen-Zähler, |
* [[https:// | * [[https:// | ||
Zeile 16: | Zeile 16: | ||
Leider hat der Autor dieses Textes bei den Tests mit dem Modbus-Zähler die Übersicht über die Quellen der RS485-Adapter verloren. Aktuell besteht der " | Leider hat der Autor dieses Textes bei den Tests mit dem Modbus-Zähler die Übersicht über die Quellen der RS485-Adapter verloren. Aktuell besteht der " | ||
- | Dieser [[https:// | + | Dieser [[https:// |
+ | |||
+ | Als zuverlässiger USB-RS485 Konverter ist der [[http:// | ||
===== Auslesen mit mbrtu ===== | ===== Auslesen mit mbrtu ===== | ||
- | Für die folgenden Skripte benötigt man [[https:// | + | Für die folgenden Skripte benötigt man [[https:// |
- | Die seriellen Parameter sind 9600 8E2. Die Modbus-Adresse sind die letzten zwei Ziffern der Seriennummer, | + | Die seriellen Parameter sind 9600 8E2. Die Modbus-Adresse sind die letzten zwei Ziffern der Seriennummer |
==== Installation der Software ==== | ==== Installation der Software ==== | ||
Zeile 39: | Zeile 41: | ||
Der Zählerstand des Zählwerks 1.8.0 ist in diesem Fall 4452,560 kWh. | Der Zählerstand des Zählwerks 1.8.0 ist in diesem Fall 4452,560 kWh. | ||
- | ==== BASH-Script, direkt | + | ==== Einbindung über einen vzlogger exec-Kanal ==== |
- | Das Beispiel loggt den Total-Zählerstand (und nur den) direkt | + | Das folgende Script '' |
- | < | + | < |
#!/bin/bash | #!/bin/bash | ||
- | # | ||
- | # log a register (electric energie) of Eastron meter to Volkszaehler.org | ||
- | # | ||
- | # example conjob: | ||
- | # * * * * * root / | ||
- | # | ||
- | # PATH for cronjob | + | set -e |
- | PATH=/ | + | set -u |
- | # config Modbus | + | usage() { |
- | TTY="/ | + | cat <<EOF |
- | BAUD=9600 | + | $0 [options] register ... |
- | PARITY=E | + | |
- | STOPBITS=2 | + | |
- | ADDR=0x47 | + | |
- | REG=0x4000 | + | |
+ | -a|--addr | ||
+ | EOF | ||
+ | } | ||
- | # config VZ | + | TEMP=" |
- | HOST=localhost | + | -l tty:, |
- | UUID=6836dd20-00d5-11e0-bab1-856ed5f959ae | + | +t:b:p:s:a: " |
+ | eval set -- " | ||
- | # read Modbus | + | MBRTU=" |
- | METER="$($HOME/mbrtu/ | + | TTY="" |
+ | BAUDRATE="" | ||
+ | PARITY="" | ||
+ | STOPBITS="" | ||
+ | ADDR="" | ||
- | if [ -z "$METER" | + | while test " |
- | | + | case $1 in |
- | else | + | -t|--tty) |
- | | + | shift |
+ | TTY="$1" | ||
+ | | ||
+ | -b|--baudrate) | ||
+ | shift | ||
+ | | ||
+ | ;; | ||
+ | | ||
+ | shift | ||
+ | PARITY="$1" | ||
+ | ;; | ||
+ | -s|--stopbits) | ||
+ | shift | ||
+ | STOPBITS=" | ||
+ | ;; | ||
+ | -a|--addr) | ||
+ | shift | ||
+ | ADDR=" | ||
+ | ;; | ||
+ | esac | ||
+ | shift | ||
+ | done | ||
+ | shift | ||
- | # Timestamp | + | checkparameter() { |
- | TS=$(date +%s) | + | |
- | TS=$(($TS*1000)) | + | |
+ | if [ -z "${CONTENT}" | ||
+ | printf "%s must not be empty\\n" | ||
+ | exit 1 | ||
+ | fi | ||
+ | } | ||
- | # write VZ | + | checkparameter tty " |
- | echo wget -O - -q "http://$HOST/ | + | checkparameter baudrate |
- | wget -O - -q "http://$HOST/ | + | checkparameter parity "${PARITY}" |
- | printf " | + | checkparameter stopbits " |
- | fi | + | checkparameter addr " |
+ | |||
+ | for reg in " | ||
+ | NOW="$(date +%s)" | ||
+ | METER=" | ||
+ | |||
+ | if [ -z "${METER}" | ||
+ | printf | ||
+ | | ||
+ | printf "%d: %s = %d\\n" " | ||
+ | | ||
+ | done | ||
+ | |||
+ | # end of file | ||
</ | </ | ||
+ | |||
+ | === vzlogger exec-Kanal === | ||
+ | |||
+ | < | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== GoSDM630 ===== | ||
+ | |||
+ | Eine schönere Methode, die Modbus-Kommunikation zu erledigen, bietet das Tool GoSDM630. | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
hardware/channels/meters/power/dzg_dvh4013_modbus.txt · Zuletzt geändert: 2019/06/05 04:55 von jau