[vz-users] Kurzes Shellskript um den SML-eHZ abzulesen
Dimitrios Bogiatzoules
info at bogiatzoules.de
Mon Jan 7 18:29:56 CET 2013
Dimitrios Bogiatzoules said the following on 07.01.2013 16:30:
> Hallo zusammen,
>
> nachdem ich meinen IR-Auslesekopf ordentlich ausgerichtet hatte (war
> dann doch überrascht, dass sich die Hexadecimalwerte ändern, wenn man
> nicht sehr genau zielt) wollte ich schon mal was ablesen, bevor ich mich
> an vzlogger heran mache.
... als Interimslösung und bis ich vzlogger kompiliert bekomme, habe ich
das Skript um ein paar Dinge ergänzt und liefere es mittels lighttpd als
cgi aus.
Grüße
Taki
#!/bin/bash
# read and evaluate SML output received from EMH eHZ
# set serial device
INPUT_DEV="/dev/ttyUSB0"
#set $INPUT_DEV to 9600 8N1
stty -F $INPUT_DEV
1:0:8bd:0:3:1c:7f:15:4:5:1: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
SML_START_SEQUENCE="1B1B1B1B0101010176"
METER_OUTPUT__START_SEQUENCE=""
while [ "$METER_OUTPUT__START_SEQUENCE" != "$SML_START_SEQUENCE" ]
do
METER_OUTPUT=`cat $INPUT_DEV 2>/dev/null | xxd -p -u -l 460`
METER_OUTPUT__START_SEQUENCE=$(echo "${METER_OUTPUT:0:18}")
if [ $METER_OUTPUT__START_SEQUENCE != $SML_START_SEQUENCE ];
then
echo "missed start and trying again..."
#exit 1
fi
done
echo "Content-Type: text/html; charset=utf-8"
echo ""
echo "<html>"
echo " <head>"
echo " <title>Zaeherauswertung</title>"
echo " </head>"
echo " <body>"
echo " <h1>Bezug</h1>"
let METER_180=0x${METER_OUTPUT:390:10}
VALUE=$(echo "scale=2; $METER_180 / 10000" |bc)
echo "Meter 1.8.0 (from plant): " $VALUE "kWh"
echo " <h1>Einspeisung</h1>"
let METER_180=0x${METER_OUTPUT:347:10}
VALUE=$(echo "scale=2; $METER_180 / 10000" |bc)
echo "Meter 2.8.0 (to plant): " $VALUE "kWh"
echo " <h1>Wirkleistung</h1>"
let METER_180=0x${METER_OUTPUT:519:10}
VALUE=$(echo "scale=2; $METER_180 / 10000" |bc)
echo "Total effective power (+/-): " $VALUE "W"
echo " </body>"
echo "</html>"
More information about the volkszaehler-users
mailing list