[vz-dev] Siemens TD3511 mit Protokoll D0

Sebastian Michel Sebastian_Michel at gmx.de
Sat Dec 14 18:40:28 CET 2013


Hallo zusammen,

also es funktioniert nun sowohl mit dem ISKRAemeco MT174 als auch dem 
Siemens TD3511. Anbei findet ihr den Patch. Ich hab versucht sowenig 
Änderungen zu machen wie es geht. Hier nochmal die Zusammenfassungen:

1) Das Device wird im blocking mode geöffnet. Das führte bei mir dazu, 
dass die read() Funktion mit 0 zurückkehrt. Das heißt normalerweise ein 
eof oder derartiges. Sowas sollte bei einem seriellen Device niemals 
passieren. Ich weiß auch nicht warum das der Fall ist.

-> Ich hab den Code dahingehend geändert, dass das Device im 
non-blocking mode geöffnet wird. Damit funktioniert's nun.

2) Die Statemachine sollte niemals unendlich warten und irgendwo hängen 
bleiben.

-> Ich hab ein Timeout von 10s eingebaut. Also wenn innerhalb 10s keine 
Daten empfangen werden bzw. beim Start kein Sync-byte kommt, wird dieser 
Lesevorgang abgebrochen.

3) Die Statemaching wird immer beim Empfang eines '/' zurückgesetzt. Da 
mein Zähler ein '/' im Identification String sendet, hängt sich die 
Statemachine auf.

-> Das habe ich rausgenommen.

4) Mein Zähler sendet ca. 330 obis-codes. Da ist dann sowas dabei wie 
2.8.1*16, 2.8.1*15 usw. Ich interessiere mich eigentlich nur für die 
Einträge von 2.8.0. Das ist insofern ein Problem, dass der D0-Meter nur 
maximal 32 Einträge zulässt. Das heißt bis die interessanten codes 
ankommen, sind die 32 Einträge schon längst belegt.

-> Ich filtere jetzt nur noch obis-codes heraus die ein value und eine 
Einheit besitzen. Damit kommen bei meinem Zähler genau 32 zusammen.

5) Der Zähler sendet ungültige Obis-Codes. Zumindest ist der string für 
die Klasse Obis.cpp nicht auswertbar. Das führt dazu, dass vzlogger 
abstürzt. Vermutlich sind es die obis-codes die unter anderem Buchstaben 
statt Zahlen haben.

-> Ich hab die Stellen mit einem try-except Block abgefangen und 
überspringe die betroffenen obis-codes.

6) Fehler beim Setzen der Parity

-> Das hab ich korrigiert.



Weiterhin habe ich mal die Ausgaben der beiden Zähler angehangen, mit 
denen das getestet wurde.

Gruß
Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ISKRAemeco_MT174.txt
Type: application/octet-stream
Size: 3905 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20131214/af1975b5/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Siemens_TD-3511.txt
Type: application/octet-stream
Size: 7896 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20131214/af1975b5/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vzlogger_d0_v2.diff
Type: text/x-diff
Size: 6019 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20131214/af1975b5/attachment.diff>


More information about the volkszaehler-dev mailing list