[vz-dev] seltsame Momentanwerte bei Einspeisung

devzero at web.de devzero at web.de
Sun Jan 4 22:01:09 CET 2015


also wenn mich nicht alles täuscht, müsste vzlogger mit Deinem smartmeter für obis 10.7.0 null-werte liefern...

 if (obis.isValid() && entry->value != NULL){
// some entries might contain a string so check type and use proper rd->value(...) call
// if the entry does contain a string we can either throw it away or try to convert it to
// a value. We throw it away for now as its octet encoded and would need some conversion
if (entry->value->type == SML_TYPE_OCTET_STRING){
// ignore value for now (entry->value->data.bytes points to something like "3032323830383136"
// we don't even create a reading for this:
return false;
}else{
rd->value(sml_value_to_double(entry->value) * pow(10, scaler));
 
Ich habe übrigens kürzlich die idee gehabt, daß man mal eine sml Protokollschnipsel-Sammlung aufbauen könnte, also binär und hexdumps von SML/Obis-Telegrammen aller möglicher Zähler die SML sprechen. Für SML-Parser Kompatibilitätstests und Dokumentation ungemein hilfreich. Könnte man hier hinpacken: http://wiki.volkszaehler.org/software/sml

Dieser "Matzefisi" aus dem FEHM Projekt hat in  https://github.com/matzefisi/fhem-modules/blob/master/70_SMLUSB_parsertest.pl z.B. so ein paar Real-Life Telegramme als Variable deklariert.

Irgendwelche Fürsprecher? 

grüsse
roland

 
 
 
 
 
 
 
 
 
Hallo Stefan,
 
Was nutzt Du für ein "Script"?  Ich programmier nämlich gerad an einem SML Commandline Parser rum und bin neben vzlogger interessiert an jeglichen bereits existierenden Lösungen...
 
Wenn Du vzlogger nutzt, was steht im Log?
 

Ansonsten kann ich dazu folgendes sagen:
 

Lt.
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03109/TR-03109-1_Anlage_Feinspezifikation_Drahtgebundene_LMN-Schnittstelle_Teilb.pdf
und
http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/emh-ehz-h1[http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/emh-ehz-h1]
 
ist der zu interpretierende Wert hinter der "0x55" ein "Integer32"
 
77070100100700FF 01 01 621B 52FF 55 FFFFFF47  0177078181C78
 
rechnen wir mal Hex nach nach int32 um:
 
http://www.binaryconvert.com/result_signed_int.html?hexadecimal=FFFFFF47[http://www.binaryconvert.com/result_signed_int.html?hexadecimal=FFFFFF47]  (netter converter, btw)
 
Ergebnis:
-185 !
 
Dein Parser arbeitet also offenbar nicht korrekt.
 
Selber stutzig macht mich allerdings gerade Folgendes:
 
https://github.com/dailab/libsml/blob/master/sml/src/sml_value.c[https://github.com/dailab/libsml/blob/master/sml/src/sml_value.c]
 
double sml_value_to_double(sml_value *value) {
switch (value->type) {
case 0x51: return *value->data.int8; break;
case 0x52: return *value->data.int16; break;
case 0x54: return *value->data.int32; break;
case 0x58: return *value->data.int64; break;
case 0x61: return *value->data.uint8; break;
case 0x62: return *value->data.uint16; break;
case 0x64: return *value->data.uint32; break;
case 0x68: return *value->data.uint64; break;
 
sowie http://knx-user-forum.de/201949-post60.html[http://knx-user-forum.de/201949-post60.html]
Kein "case" 0x55    return ...int32   ?
 
Grüsse
Roland
 

Gesendet: Sonntag, 04. Januar 2015 um 19:44 Uhr
Von: "Stefan Dieler" <praios2000 at gmail.com>
An: volkszaehler-dev at demo.volkszaehler.org
Betreff: [vz-dev] seltsame Momentanwerte bei Einspeisung

Hallo zusammen,
 
einen guten Rutsch ins Neue Jahr wünsche ich euch.
 
Ich habe gestern zwei USB-Leseköpfe bekommen und habe meine eigenen Script zum Auslesen und Weiterverarbeiten erstellt. Alles läuft über einen Raspberry PI.
 
Die SML des Haushaltsstrom-Zählers liefert die Werte:
1.8.0
2.8.0
1.8.1
2.8.1
1.8.2
2.8.2
10.7.0
 
Die SML des PV-Zähler liefert:
2.8.0
2.8.1
2.8.2
10.7.0
 
Das Auslesen der Werte von beiden Zählen außer 10.7.0 funktioniert generell problemlos.
Die Kennzahlen 10.7.0 funktionieren auch, wenn ich einen Strombezug vom Netz habe.
Wenn aber eine Einspeisung ins Netz erfolgt, dann werden mir seltsame, utopische Werte in 10.7.0 angezeigt.
 
 
Hier ein seltsamer, ermittelter Momentanwert (10.7.1) vom PV-Zähler bei Einspeisung:
429.496.711,100 W (= Hexwert aus SML: FFFFFF47)
 
Der Auszug aus dem SML-Datenstrom dazu ist:
77070100100700FF0101621B52FF55FFFFFF470177078181C78
 
 
Zum Vergleich mal ein SML-Datenstrom, wenn die Einspeisung 0 ist (z.B. nachts).
0 W (=Hexwert aus SML: 00000000)
 
Der Auszug aus dem SML-Datenstrom dazu ist:
77070100100700FF0101621B52FF55000000000177078181C78
 
 
Haushaltsstromzähler: seltsamer Wert bei Einspeisung
429496673,5 W (= Hexwert aus SML: FFFFFDCF)
Der Auszug aus dem SML-Datenstrom dazu ist:
77070100100700FF0101621B52FF55FFFFFDCF0177078181C78
 
Haushaltsstromzähler: korrekter Wert bei Bezug
9,5 W (= Hexwert aus SML: 0000005F)
 
Der Auszug aus dem SML-Datenstrom dazu ist:
77070100100700FF0101621B52FF550000005F0177078181C78

 
Beim PV-Zähler habe ich beobachtet, dass sich der Wert über Tag hauptsächlich in den letzten 3 Stellen und der ersten Kommastalle (mal hoch, mal runter) verändert. Gegen Abend hin geht's runter. Das deutet für mich schon auf die momentane Einspeiseleistung hin, die gegen Abend natürlich sinkt.
Ich habe den ganzen Tag getestet und programmiert und sehe wahrscheinlich den Wald vor lauter Bäumen nicht mehr. :-/
Lese ich vielleicht die falsche Stelle, aber dann dürfte der Bezugswert ja ebenfalls nicht stimmen oder muss ich da noch etwas umrechnen? 
 
Könnt ihr mir da weiterhelfen?
 
Danke und viele Grüße,
Stefan


More information about the volkszaehler-dev mailing list