[vz-users] Sonderzeichen beim Auslesen vom Itron ACE3000

Oliver Regehr oliver at regehr.net
Tue Jul 29 19:34:28 CEST 2014


Hallo,

nachdem ich mal „ein wenig“ gedebugged habe (Oszillographen in den Keller schlüren, testen, andere Schaltung mit TTL-Ausgang an das Erweiterungsboard anschliessen, ratlos aus der Wäsche gucken, …) habe ich schonmal einen Fehler gefunden:

Der serielle Port vom Raspi ist kaputt! Mit einem anderen Raspi werden die Daten problemlos gelesen. Gnargh.


Trotzdem habe ich noch ein paar Schwierigkeiten:

Wenn ich mit echo die Initialisierungssequenz schicke und parallel mit minicom „lausche“ kommen alle Daten vollkommen richtig und heile an.

Mit dem vzlogger wird nichts gelesen - auch nicht mit der passenden Initialisierungssequenz.



Bei meinem Script werden die Daten abgehackt, und zwar bei folgender Schleife:

until [[ $EOL -eq 1 ]]; do
  read -t8 LINE < /dev/ttyAMA0
  EOL=$?

  echo $LINE
  [[ "$LINE" =~ ^1.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && BEZUG="${BASH_REMATCH[1]}"
  [[ "$LINE" =~ ^2.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && EINSPEISUNG="${BASH_REMATCH[1]}"

done


Während ich bei folgendem Programmteil alles ohne Probleme auslesen kann:

while read -t8 LINE
do
  echo $LINE
  [[ "$LINE" =~ ^1.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && BEZUG="${BASH_REMATCH[1]}"
  [[ "$LINE" =~ ^2.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && EINSPEISUNG="${BASH_REMATCH[1]}"
done < /dev/ttyAMA0


Kann mir jemand vielleicht erklären, warum das eine funktioniert und das andere nicht?!

(Ich hatte das bei meinen Script mit $EOL implementiert, dass das Lesen abgebrochen wird, sobald alle notwendigen Daten vorhanden sind, damit das Script ein bisschen schneller läuft)


Gruss,

Olli


More information about the volkszaehler-users mailing list