Inhaltsverzeichnis
Landis & Gyr ZMD120AP (D0)
Genauer Typ: ZMDAPtCS G03, baugleich mit ZFD120AP
Über die Infrarotschnittstelle kann der Zähler gemäß IEC61107 oder DLMS (Device Language Message Specification) ausgelesen werden.
Hardware
Der Zähler kann mit einem IR-Schreib-Lesekopf bei 300bd, 7E1 gelesen werden.
Beispielkonfiguration vzlogger
- vzlogger.conf
{ "retry" : 30, "verbosity" : 15, "log" : "/var/log/vzlogger/vzlogger.log", "local" : { // "enabled" : false, "port" : 8081, "index" : true, "timeout" : 30, "buffer" : 600 }, "meters" : [ { "enabled" : true , "protocol" : "d0", "baudrate" : 300, "device" : "/dev/ttyUSB0", "parity" : "7E1", "pullseq" : "2f3f210d0a", // HEX Darstellung der Pullsequenz "interval" : 30, // Wartezeit bis zum nächsten Pull } ] }
Auslesen per Shell-Skript
Z.B. als d0read.sh mit folgenden Text anlegen:
- d0read.sh
#!/bin/bash stty 300 -F /dev/ttyAMA0 1:4:da7:a30:3:1c:7f:15:4:10:0:0:11:13:1a:0:12:f:17:16: 0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 COUNTER=1 while [ $COUNTER -le 5 ] do ( sleep 1; echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyAMA0 ) & #sende "/?!" mit Return an Raspi (Udo's Erweiterung + IR-Kopf seriell) while read -t8 line do echo $line # > /home/pi/lgread.log done < /dev/ttyAMA0 while read -t8 line do echo $line # >> /home/pi/lgread.log done < /dev/ttyAMA0 echo "COUNTER: " $COUNTER let COUNTER=COUNTER+1 done exit
Nicht vergessen, die Datei als ausführbar zu markieren: chmod +x d0read.sh
Beispielausgabe
/?! <-- Wiederholung der gesendeten Pullsequenz /LGZ52ZMD120APt.G03 <-- Antwort mit Herstellerkennung, mögliche Baudrate und Typ F.F(00000000) <-- Fehlercode 0.0.0( 20000) <-- Zählernummer 1.8.1(001846.0*kWh) <-- Hochtarif, bzw. einziger Tarif: Zählerstand Energielieferung 1.8.2(000000.0*kWh) <-- Niedertarif: Zählerstand Energielieferung 2.8.1(004329.6*kWh) <-- Hochtarif, bzw. einziger Tarif: Zählerstand Energieeinspeisung 2.8.2(000000.0*kWh) <-- Niedertarif: Zählerstand Energieeinspeisung 1.8.0(001846.0*kWh) <-- Summe Zählerstand Energielieferung 2.8.0(004329.6*kWh) <-- Summe Zählerstand Energieeinspeisung ! <-- Endesequenz
Es kann noch weitere Codes „C.7.0(0012)“ bei Spannungsfehlern, oder „C.2.1(01-09-10)“ als Datum der letzten Parametrierung geben. Leider wird die aktuelle Leistung nicht ausgegeben. Für genaue Verbrauchswerte ist der Zähler deshalb nur bedingt geeignet.
Code: C.8.0(02050385): Lifetime in minutes ($ date -d 'now - 2050385 minutes' ⇒ Wed Jun 13 19:40:08 CEST 2012)