[vz-dev] [vz-users] vzlogger MeterD0 mit L&G
Reinhard Wilzeck
reinhard at wilzeck.de
Tue Apr 29 00:00:48 CEST 2014
Karlheinz,
brauche ich nicht probieren. Kann bei mir (und wahrscheinlich auch Dir) nicht gehen.
1. Der alte Fehler beim parity 7e1 ist immer noch drin. Vielleicht findest du meinen beitrag. (Man setzt nicht mit |=~ sondern mit |=)
2. Die Version kann kein Acknowledge
senden. Mein Landis&Gyr verlangt aber
nach identificaton zwingend eine Antwort bevor er sendet.
Ich sende Dir mal am Sonntag meine Version, vielleicht hilft Dir die.
Mfg. Reinhard Wilzeck
-------- Ursprüngliche Nachricht --------
Von: Karlheinz <karlheinz.es at gmx.de>
Datum: 28.04.2014 22:07 (GMT+01:00)
An: volkszaehler-dev at demo.volkszaehler.org
Betreff: Re: [vz-dev] [vz-users] vzlogger MeterD0 mit L&G
Hallo Reinhard,
die print Anweisung hab ich aus vorherigen Code-Stellen kopiert - es sollte funktionieren. Probier doch bitte mal aus, ob die MeterD0.cpp (Anhang) bei dir geht.
Gruß
Karlheinz
------- Original Nachricht --------
Betreff: Re: [vz-dev] [vz-users] vzlogger MeterD0 mit L&G
Von: Reinhard Wilzeck <reinhard at wilzeck.de>
An: volkszaehler.org <volkszaehler-dev at demo.volkszaehler.org>
Datum: Freitag, 25. April 2014 19:16:34
Noch eine blöde Frage( auf die Gefahr mich ohne meinen PC zu blamieren):
Ist die printanweisung richtig?
Vielleich noch ein %s ? 2 Argumente nach dem " aber nur ein Platzhalter.
Mfg. Reinhard Wilzeck
-------- Ursprüngliche Nachricht --------
Von: Karlheinz <karlheinz.es at gmx.de>
Datum: 25.04.2014 12:15 (GMT+01:00)
An: volkszaehler-dev at demo.volkszaehler.org
Betreff: Re: [vz-dev] [vz-users] vzlogger MeterD0 mit L&G
Hallo Reinhard,
Danke für den Hinweis.
Bei mir bricht vzlogger schon früher ab. Ich habe eine print-Anweisung nach "case OBIS_CODE:" drin, die nach dem CRLF nicht mehr durchlaufen wird.
case OBIS_CODE:
print(log_debug, "DEBUG OBIS_CODE byte hex= %X ",name().c_str(), byte);
=-O ssl ratlos! Hast du einen Tipp für Anfänger wie ich das debuggen kann?
Dein Problem mit '*' war schon im MeterD0 drin.
Gruß
Karlheinz
------- Original Nachricht --------
Betreff: Re: [vz-dev] [vz-users] vzlogger MeterD0 mit L&G
Von: Reinhard Wilzeck <reinhard at wilzeck.de>
An: volkszaehler.org <volkszaehler-dev at demo.volkszaehler.org>
Datum: Donnerstag, 24. April 2014 22:28:45
Hallo,
ich hatte damals das gleiche Problem und habe es auf die brutale Art gelöst.
"Illegale" Zeichen werden unterdrückt, bevor der OBIS Parser dadurch abstürzen kann.
Wir müssen den STX (0x02) ausblenden. (ordentlicher wäre auf den STX zu warten, aber davon haben wir nix. Und wenn der STX richtig ausgewertet wird, dann müßten wir konsequenterweise das Telgramm bis zum Ende auswerten, damit wir Fehler erkennen)
Ich hatte auch ein Problem mit "*" vor der Einheit. Da die Einheit auch nicht wirklich verwendet wird kann man auch bei dem "*" schon Schluss machen)
Nachstehende Modifikation sollte die Probleme auch für Deinen Fall lösen.
case OBIS_CODE:
if ((byte != '\n') && (byte != '\r')&& (byte != 0x02)&& (byte != 0x1F))// STX und US ausklammern
{
if (byte == '(') {
obis_code[byte_iterator] = '\0';
byte_iterator = 0;
context = VALUE;
}
else obis_code[byte_iterator++] = byte;
}
break;
case VALUE:
if (byte == '*' || byte == ')') {
value[byte_iterator] = '\0';
byte_iterator = 0;
if (byte == ')') {
unit[0] = '\0';
context = END_LINE;
}
else {
context = UNIT;
}
}
else value[byte_iterator++] = byte;
break;
Gruß
Reinhard
Am 23.04.2014 23:48, schrieb Karlheinz:
Hallo Stefan,
es gibt einige Beiträge mit diesem D0-Problem. Shell-Scripts gibts es auch schon im Wiki. Besser wäre es wenn vzlogger das von Haus aus unterstützt.
Aber ohne Debug-Unterstützung komme ich leider nicht weiter.
Wie erzeuge ich eine debug-fähige vzlogger version, die ich mit ddd debuggen kann?
Vielleicht verirrt sich mal ein Programmierer in den Chat und leistet etwas Entwicklungshilfe :-)
Gruß
Karlheinz
------- Original Nachricht --------
Betreff: Re: [vz-users] vzlogger MeterD0 mit L&G
Von: Stefan Klammer <klammerstefan85 at gmail.com>
An: volkszaehler.org - users <volkszaehler-users at demo.volkszaehler.org>
Datum: Mittwoch, 23. April 2014 08:26:47
Hallo Karlheinz,
ich habe ein ähnliches Problem mit meinem (Landis & Gyr ZMD120AR), dieser sendet am Schluss der Übertragung ein Zeichen das dem vzlogger bzw. d0 Parser nicht passt und der logger somit aussteigt. Ich wollte denn D0 Parser auch schon anpassen das er wirklich nur die geforderten OBIS Codes ausliest (z.B.: 1.8.1) und alles andere was er nicht kennt einfach ignoriert. Leider bin ich bis jetzt nicht dazugekommen. Vielleicht kannst du das mal ausprobieren wäre super wenn da endlich mal was Zustande kommt.
Vielleicht schaust du dir das hier mal an: http://www.mail-archive.com/volkszaehler-dev%40lists.volkszaehler.org/msg02150.html
Hört sich nach einem ähnlichen Problem an.
Oder hier: http://www.mail-archive.com/volkszaehler-dev%40lists.volkszaehler.org/msg01732.html
Da kannst du meine Ausgaben vom Zähler sehen.
Hoffe du kriegst noch was raus. Wäre schön zu hören wenns klappt.
Gruß Stefan
Am 18. April 2014 17:17 schrieb Karlheinz <karlheinz.es at gmx.de>:
Hallo Leute,
seit Tagen versuche ich den vzlogger (MeterD0.cpp) auch für meinen Stromzähler (Landys & Gir ZMD120 ...) anzupassen. Über die ersten Stolpersteine bin ich mittlerweile drüber, aber nun steigt das Programm bei der while Schleife "while (::read(_fd, &byte, 1)) { " beim Zeichen 0x1F immer aus. Wenn ich das richtig sehe wird das Zeichen 0x1F und dann 0x02 gesendet, bevor es bei F.F usw. weiter geht.
/LGZ52ZMD120APt.G03
..F.F(00000000)
0.0.0( 26700)
1.8.1(012334.7*kWh)
...
Hat jemand eine Idee?
Gruß
Karlheinz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20140429/dc0fb515/attachment-0001.html>
More information about the volkszaehler-dev
mailing list