Ich habe mit einem Zähler ED300L dieses Problem:
Die Kommunikation scheint zu tun: Startsequenz, public key und Schlüsselworte, aber die Messwerte vom Zähler passen leider gar nicht. Das was ich da aus dem Dump herauslese, hat nichts mit dem Zählerstand zu tun.
Der Momentanverbrauch steht auch nicht im dump. => Der Zähler ist natürlich entsperrt, zeigt also auch die "privaten" Daten wie Momentanverbrauch am Display an.
Der Dump
1B1B1B1B010101017607000C04D03B1D620062007263010176010107000C0531BE5F0B0901454D4800003F69260101638338007607000C04D03B1E620062007263070177010B0901454D4800003F6926070100620AFFFF7262016505316C237A77078181C78203FF0101010104454D480177070100000009FF010101010B0901454D4800003F69260177070100010800FF6401028201621E52FF560006583FD70177070100020800FF6401028201621E52FF5600028A7D2F0177070100010801FF0101621E52FF5600000000000177070100020801FF0101621E52FF5600028A7D2F0177070100010802FF0101621E52FF560006583FD70177070100020802FF0101621E52FF5600000000000177070100100700FF0101621B52FF550000291B0177078181C78205FF017262016505316C2301018302772301DA2EC6CE4DD7806B4483CF7B540F13DD15AA09E138457CFA51024E60223749996E0417C824917BA8DE7FDD60E601010163F903007607000C04D03B216200620072630201710163566F00001B1B1B1B1A01DD901B1B1B1B010101017607000C04D03B23620062007263010176010107000C0531BE610B0901454D4800003F692601016362E0007607000C04D03B246200620072
Merkwürdig finde ich auch, dass 1.8.0 und 1.8.2 bzw. 2.8.0 und 2.8.1 die gleichen Werte beinhalten
Noch 2 Worte zum Aufbau:
Der Lesekopf ist mit einem Pi per USB verbunden. Auf dem Pi rufe ich per putty dieses skript auf. Ich kann auf den Pi nicht die komplette VZ Umgebung installieren, da ich ihn für andere Aufgaben brauche - aber da der dump nicht funktioniert, sollte das auch nichts ändern...
Das Skript:
#!/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 "dump: " $METER_OUTPUT
Alles anzeigen
Hat da jemand eine Idee was hier schief läuft