[vz-users] OBIS_Code Ignored reading

Reto reto.roelli at gmx.ch
Tue Feb 17 21:50:46 CET 2015


Dies hier sind alle Codes die gem. Landis und Gyr von diesem Zählertyp 
ausgegeben werden:

F.F       00
0.0
C.1.0
C.1.1
1.8.1     003400.447 kWh
1.8.2     005230.688 kWh
2.8.1     000000.000 kWh
2.8.2     000000.842 kWh
1.8.0     008631.135 kWh
2.8.0     000000.842 kWh
15.8.0    008631.122 kWh
16.7
C.7.0     0118
32.7      248 V
52.7      248 V
72.7      009 V
31.7      000.03 A
51.7      000.04 A
71.7      000.05 A
82.8.1    0001
82.8.2    0000
0.2.0     M23
C.5.0     0433

Wie komme ich dann am besten an den neuen Parser ran?

Vielen Dank für eure super Hilfe hier.

Gruss Reto

Am 17.02.2015 um 21:42 schrieb Matthias Behr:
> ok die sind gültig. DIe anderen Logger geben aber statt „31.7“ ein „1.31.7“ aus.
>
> Ich passe den Parser an.
>
>
>> Am 17.02.2015 um 21:30 schrieb Matthias Behr <mbehr at mcbehr.de>:
>>
>> Hmm. Das Problem ist, dass der Obis-Code „32.7“ nicht akzeptiert wird. Der muss (lt. akt. Implementierung) mit 0,1,2 oder C,F anfangen.
>>
>> Ist das ein gültiger Code?
>>
>>
>>
>> 				switch (obis_code[0]) { // let's check sanity of first char. we can't use isValid() as here we get incomplete obis_codes as well (e.g. 1.8.0 -> 255-255:1.8.0)
>> 				case '0': // nobreak;
>> 				case '1': // nobreak;
>> 				case '2': // nobreak;
>> 				case 'C': // nobreak;
>> 				case 'F':
>> 					print(log_debug, "Parsed reading (OBIS code=%s, value=%s, unit=%s)",
>> 									name().c_str(), obis_code, value, unit);
>> 					rds[number_of_tuples].value(strtod(value, NULL));
>>
>> 					try {
>> 						Obis obis(obis_code);
>> 						ReadingIdentifier *rid(new ObisIdentifier(obis));
>> 						rds[number_of_tuples].identifier(rid);
>> 						rds[number_of_tuples].time();
>> 						number_of_tuples++;
>> 					} catch (vz::VZException &e) {
>> 						print(log_error, "Failed to parse obis code (%s)", name().c_str(), obis_code);
>> 					}
>> 				break;
>> 				default:
>> 					print(log_debug, "Ignored reading (OBIS code=%s, value=%s, unit=%s)",
>> 									name().c_str(), obis_code, value, unit);
>>
>>
>>> Am 17.02.2015 um 16:35 schrieb Reto <reto.roelli at gmx.ch>:
>>>
>>> Hallo,
>>>
>>> Ich verwende ein aktuelles Raspi-Image für den volkszähler.
>>>
>>> Am Raspi ist der USB-Lesekopf von UDO mont.
>>>
>>> Ausgelesen wird ein E350 von Landis+Gyr per d0.
>>>
>>> Das Ganze funktioniert soweit, nur leider werden bei gewissen OBIS Codes im vzlogger.log "Ignored reading" angezeigt.
>>> Somit kann ich dann die Werte auch nicht für die weitere Verwendung gebrauchen.
>>>
>>> Hier ein ausschnitt aus dem vzlogger.log:
>>>
>>> [Feb 17 12:38:43][d0]   DEBUG OBIS_CODE byte
>>> hex= A
>>> [Feb 17 12:38:43][d0]   DEBUG OBIS_CODE byte 3 hex= 33
>>> [Feb 17 12:38:43][d0]   DEBUG OBIS_CODE byte 2 hex= 32
>>> [Feb 17 12:38:43][d0]   DEBUG OBIS_CODE byte . hex= 2E
>>> [Feb 17 12:38:43][d0]   DEBUG OBIS_CODE byte 7 hex= 37
>>> [Feb 17 12:38:43][d0]   DEBUG OBIS_CODE byte ( hex= 28
>>> [Feb 17 12:38:43][d0]   DEBUG VALUE byte= 2 hex= 32
>>> [Feb 17 12:38:43][d0]   DEBUG VALUE byte= 3 hex= 33
>>> [Feb 17 12:38:43][d0]   DEBUG VALUE byte= 1 hex= 31
>>> [Feb 17 12:38:43][d0]   DEBUG VALUE byte= * hex= 2a
>>> [Feb 17 12:38:43][d0]   Ignored reading (OBIS code=32.7, value=231, unit=V)
>>> [Feb 17 12:38:43][d0]   DEBUG OBIS_CODE byte
>>> hex= A
>>>
>>> Gerne würde ich die betreffenden Werte auch gerne loggen.
>>>
>>> Muss ich noch was einstellen damit alle Werte verarbeitet werden?
>>>
>>> Besten Dank für eure Hilfe / Tipps.
>>>
>>> Gruss Reto
>> Gruß
>>
>> Matthias
>>
> Gruß
>
> Matthias
>



More information about the volkszaehler-users mailing list