Dies ist eine alte Version des Dokuments!
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
{
"retry" : 30,
"daemon": true,
"verbosity" : 15,
"log" : "/tmp/vzlogger.log",
"local" : {
// "enabled" : false,
"port" : 8080,
"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:
#!/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)