[vz-users] Timing Baudratenumstellung [was: vzlogger: Wie alte Zählerstände unterdrücken]

Martin Heinze martin-heinze at gmx.net
Tue Dec 23 19:26:28 CET 2014


Ich habe ein ähnliches Problem mit meinem ISKRA MT171 ... da kommt auch nix, wenn ich versuche im vzlogger die Baudrate umzustellen ...

Mit ein bissl Probieren mit anderen (Python-)Skripten und einer Wartezeit von 0.3 Sekunden klappt das aber ...

Haben wir da eine Möglichkeit, das Timing in die Config einzubauen?

-----Original Message-----
From: Elias <saile at gmx.de>
Sender: "volkszaehler-users" <volkszaehler-users-bounces at demo.volkszaehler.org>Date: Tue, 23 Dec 2014 16:25:27 
To: volkszaehler.org - users<volkszaehler-users at demo.volkszaehler.org>
Reply-To: "volkszaehler.org - users" <volkszaehler-users at demo.volkszaehler.org>
Subject: Re: [vz-users]
 vzlogger: Wie alte Zählerstände unterdrücken

Wow ich bin überwältigt von den vielen flotten Antworten! Vielen Dank!

Also Udo’s Tipp
> Ja, trag als identifier: 1.8.0*FF  ein
funktioniert. Vielen Dank!

@Thorben: Soll ich trotzdem deine Idee (Veränderung der Obis.cpp) testen? Wenn das für zukünftige Änderungen des Codes interessant wäre, dann mach ich das gerne! Das *255 gleichzeitig auch eine wildcard ist, ist tatsächlich verwirrend. Ich denke besser wäre es, nur ein Sternchen als wildcard zu verwenden, das erscheint mit etwas intuitiver.

Ein nice to have wäre jetzt noch die Baudraten-Umstellung. Da ist der DC3 leider recht zickig, er macht die Umstellung nur wenn ein genaues Timing zwischen seiner Antwort auf die Pullsequenz und der Anforderung zur Baudratenumstellung eingehalten wird. Deshalb funktioniert es aktuell nicht. Bei manuellen Tests klappte es am häufigsten mit etwa 4 Sekunden Pause.

In Zeile 407, der Datei protocols/MeterD0.cpp bin ich auf einen auskommentierten Delay gestoßen, der mir ungefähr an der richtigen Stelle zu sein schien. Den hab ich wieder einkommentiert und auf 4 Sekunden erhöht:

usleep (4000000);

Danach hat die Baudratenumstellung tatsächlich geklappt, der Zähler fängt auch an sinnvolle Daten auszugeben, leider bricht das ganze aber nach kurzer Zeit ab:

Der entsprechende Part des Logs zeigt dazu folgendes:

[Dec 23 11:59:07][d0]   Pull answer (vendor=SLB, baudrate=4, identification=\@DC341TMPBF2ZAK)
[Dec 23 11:59:11][d0]   Sending ack sequence send (len:6 is:6,041
).
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte  hex= 2
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte F hex= 46
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte F hex= 46
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Dec 23 11:59:11][d0]   Parsed reading (OBIS code=F.F, value=00000000, unit=)
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte
 hex= A
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Dec 23 11:59:11][d0]   Parsed reading (OBIS code=0.0.0, value=02538883, unit=)
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte
 hex= A
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 1 hex= 31
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Dec 23 11:59:11][d0]   Parsed reading (OBIS code=0.0.1, value=49660939, unit=)
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte
 hex= A
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 2 hex= 32
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Dec 23 11:59:11][d0]   Parsed reading (OBIS code=0.0.2, value=20052005, unit=)
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte
 hex= A
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte 3 hex= 33
[Dec 23 11:59:11][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Dec 23 11:59:12][d0]   nothing received for more than 10 seconds
[Dec 23 11:59:12][d0]   read timed out!, context: 7, bytes read: 50, last byte 0x0
[Dec 23 11:59:12][mtr0] Got 0 new readings from meter:
[Dec 23 11:59:12][chn0] ==> number of tuples: 0
[Dec 23 11:59:12][chn0] JSON request body is null. Nothing to send now.


Wie könnte so ein Timing besser eingebaut werden und was kann der Grund für das Abbrechen sein?

Lieben Gruß,
Elias






More information about the volkszaehler-users mailing list