Servus nochmal,

habe den Fehler gefunden. Aber leider noch keine Lösung dafür :)

2. Beispiel: Zähler zeigt 130 W Lieferung (A-), also -130W an: Im empfangenen 
SML Protokoll wird aber +130W ausgegeben. Logdatei 130W A-.log'.

http://bildhost.unter-limit.de/archiv.php?bild=367&bild_name=130alog061K2.jpg

77              => 7x = Liste, x7 = Liste mit 7 Einträgen
070100100700FF  => 07 = Länge in Bytes,  0100100700FF OBIS Kennzahl => 16.7.0 = 
Gesamtwirkleistung
01             => Status: ohne Wert bzw. 01=optional
01             => ValTime: ohne Wert bzw. 01=optional
62 1B           => 6x xx = unsigned Integer, x2 xx = Länge 2 Byte, xx 1B = 
Unit: 1B = 27dez = Watt
52 00           => 5x xx = Integer, x2 xx = Länge 2 Byte, xx 00 = Scaler: 0 --> 
10^0 = 1
52 82           => Value: 5x xx = Integer, x2 xx = Länge 2 Byte, Value 82 hex = 
130 dez (entspricht +130 Watt)

01                         => ValueSignature: ohne Werte bzw. 01=optional

Man darf den Wert nicht einfach von hex auf dez umrechnen, sondern man muss das 
2er Komplement verwenden.

7 6 5 4 3 2 1 0 Bitwertigkeit
1 0 0 0 0 0 1 0 (82hex in Binärdarstellung)
-128+0+0+0+0+0+2+0= -126 Watt

Wie habt ihr das beim Volkszähler gelöst. Bei meinem Skript wird es momentan so 
umgerechnet.

case '5x': # Integer
                $temp = hexdec($this->read($LEN-1));
                $this->debug('Value: ('.$temp.')');
                if($temp>32768){
                    return $temp -= 65536;
                }
                else{
                    return $temp;
                }
                break;
So einfach darf man es sich aber nicht machen. Ich kann leider nicht so gut PHP 
programmieren. Habt ihr einen Vorschlag oder einen Tipp?

Vielen Dank.

Gruß
Michael


Von: Michael Kaufmann
Gesendet: Sonntag, 24. Februar 2019 15:41
An: [email protected]
Betreff: WG: Zählerwechsel (optische Schnittstelle)

Hallo zusammen,

ich habe gerade die Email an das bayerwerk geschickt, da die ich folgendes 
Problem mit der übertragenen Leistung über die Info Schnittstelle habe.

Habe ich irgendwo einen Denkfehler? Auch wenn das PHP Skript nicht von 
volkszähler.org ist, der SML Datenstrom ist doch das selbe. Interpretiere ich 
den SML Datenstrom falsch?

Wenn ich über die PV Einspeise, sollte die Leistung negativ übertragen werden. 
Wenn ich beziehe, wird die Leistung positiv übertragen. Im Prinzip funktioniert 
dies schon, allerdings wird die Leistung positiv übertragen, wenn sich die 
Leistung in einem Bereich von 0W bis ca. -135W. Ab -140W (also A- Lieferung) 
wird auch -140W übertragen, bzw. ein Wert mit Vorzeichen. 140W Toleranz kann 
doch auch nicht sein oder?

Auszug aus der Email ans Bayernwerk:
wie besprochen hier die verschiedenen Beispiele SML Log <-> tatsächliche 
Anzeige der Leistung am Iskra MT691. Die Obis Kennzahlen 1.8.0 und 2.8.0 in kWh 
werden korrekt übermittelt. Nur die übertragene Leistung macht Probleme.
Die Logdateien können z. B. mit Notepad++ geöffnet werden. Notepad++ stellt die 
Zeilenumbrüche korrekt dar.

Die SML Protokollbeschreibung ist zu finden unter 
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03109/TR-03109-1_Anlage_Feinspezifikation_Drahtgebundene_LMN-Schnittstelle_Teilb.pdf?__blob=publicationFile&v=2.
 Die Methode "GetListResponse" ist auf Seite 36 beschrieben.

Übersicht:
1. Beispiel, fehlerhaft. Zähler zeigt 90W Lieferung (A-) an: Im empfangenen SML 
Protokoll wird aber +164W ausgegeben. Logdatei 90W A-.log'.
2. Beispiel, fehlerhaft. Zähler zeigt 130 W Lieferung (A-), also -130W an: Im 
empfangenen SML Protokoll wird aber +130W ausgegeben. Logdatei 130W A-.log'.
3. Beispiel, okay. Zähler zeigt 140 W Lieferung (A-), also -140W an: Im 
empfangenen SML Protokoll wird -140  ausgegeben. Logdatei 140W A-.log'.
4. Beispiel, okay. Zähler zeigt 28W Bezug (A+), also +28 W an: Im empfangenen 
SML Protokoll wird auch 28W ausgegeben. Logdatei 30 W A+.log'.

Fazit: Zähler überträgt bis ca. -130W Lieferung positive Werte. Ab ca. -140W 
Lieferung, werden die korrekten Werte übertragen. Positive Leistung (A+) wird 
aber auch im niedrigerem Leistungsbereich <100W korrekt übertragen. Siehe dazu 
Beispiel 4.

1. Beispiel: Zähler zeigt 90W Lieferung (A-) an: Im empfangenen SML Protokoll 
wird aber +164W ausgegeben. Logdatei 90W A-.log'.

http://bildhost.unter-limit.de/archiv.php?bild=366&bild_name=90alogI6SFT.jpg

77              => 7x = Liste, x7 = Liste mit 7 Einträgen
070100100700FF  => 07 = Länge in Bytes,  0100100700FF OBIS Kennzahl => 16.7.0 = 
Gesamtwirkleistung
01             => Status: ohne Wert bzw. 01=optional
01             => ValTime: ohne Wert bzw. 01=optional
62 1B           => 6x xx = unsigned Integer, x2 xx = Länge 2 Byte, xx 1B = 
Unit: 1B = 27dez = Watt
52 00           => 5x xx = Integer, x2 xx = Länge 2 Byte, xx 00 = Scaler: 0 --> 
10^0 = 1
52 A4           => Value: 5x xx = Integer, x2 xx = Länge 2 Byte, Value A4 hex = 
164 dez (entspricht +164 Watt)
01             => ValueSignature: ohne Werte bzw. 01=optional

Obwohl der Zähler 90W Lieferung (A-) anzeigt, wird über das SML Protokoll +164 
Watt vom Zähler geschickt.

http://bildhost.unter-limit.de/archiv.php?bild=361&bild_name=90wa10X6A.jpg


2. Beispiel: Zähler zeigt 130 W Lieferung (A-), also -130W an: Im empfangenen 
SML Protokoll wird aber +130W ausgegeben. Logdatei 130W A-.log'.

http://bildhost.unter-limit.de/archiv.php?bild=367&bild_name=130alog061K2.jpg

77              => 7x = Liste, x7 = Liste mit 7 Einträgen
070100100700FF  => 07 = Länge in Bytes,  0100100700FF OBIS Kennzahl => 16.7.0 = 
Gesamtwirkleistung
01             => Status: ohne Wert bzw. 01=optional
01             => ValTime: ohne Wert bzw. 01=optional
62 1B           => 6x xx = unsigned Integer, x2 xx = Länge 2 Byte, xx 1B = 
Unit: 1B = 27dez = Watt
52 00           => 5x xx = Integer, x2 xx = Länge 2 Byte, xx 00 = Scaler: 0 --> 
10^0 = 1
52 82           => Value: 5x xx = Integer, x2 xx = Länge 2 Byte, Value 84 hex = 
130 dez (entspricht +130 Watt)

01                         => ValueSignature: ohne Werte bzw. 01=optional

http://bildhost.unter-limit.de/archiv.php?bild=362&bild_name=130waEBVR7.jpg


3. Beispiel: Zähler zeigt 140 W Lieferung (A-), also -140W an: Im empfangenen 
SML Protokoll wird -140  ausgegeben. Logdatei 140W A-.log'.

http://bildhost.unter-limit.de/archiv.php?bild=368&bild_name=140alogBYTTI.jpg

77              => 7x = Liste, x7 = Liste mit 7 Einträgen
070100100700FF  => 07 = Länge in Bytes,  0100100700FF OBIS Kennzahl => 16.7.0 = 
Gesamtwirkleistung
01             => Status: ohne Wert bzw. 01=optional
01             => ValTime: ohne Wert bzw. 01=optional
62 1B           => 6x xx = unsigned Integer, x2 xx = Länge 2 Byte, xx 1B = 
Unit: 1B = 27dez = Watt
52 00           => 5x xx = Integer, x2 xx = Länge 2 Byte, xx 00 = Scaler: 0 --> 
10^0 = 1
53 FF 74        => Value: 5x xx xx = Integer, x3 xx xx = Länge 3 Byte, Value FF 
74 hex = 65396 dez (16bit entsprechen 65536, 65396 - 65536 = -140 Watt)
01              => ValueSignature: ohne Werte bzw. 01=optional

http://bildhost.unter-limit.de/archiv.php?bild=363&bild_name=140waLS9OG.jpg


4. Beispiel: Zähler zeigt 28W Bezug (A+), also +28 W an: Im empfangenen SML 
Protokoll wird auch 28W ausgegeben. Logdatei 30 W A+.log'.

http://bildhost.unter-limit.de/archiv.php?bild=365&bild_name=30alogSA09T.jpg

77              => 7x = Liste, x7 = Liste mit 7 Einträgen
070100100700FF  => 07 = Länge in Bytes,  0100100700FF OBIS Kennzahl => 16.7.0 = 
Gesamtwirkleistung
01             => Status: ohne Wert bzw. 01=optional
01             => ValTime: ohne Wert bzw. 01=optional
62 1B           => 6x xx = unsigned Integer, x2 xx = Länge 2 Byte, xx 1B = 
Unit: 1B = 27dez = Watt
52 00           => 5x xx = Integer, x2 xx = Länge 2 Byte, xx 00 = Scaler: 0 --> 
10^0 = 1
52 1C           => Value: 5x xx = Integer, x2 xx xx = Länge 2 Byte, Value 1C 
hex = 28 dez (entspricht +28 Watt)
01              => ValueSignature: ohne Werte bzw. 01=optional

http://bildhost.unter-limit.de/archiv.php?bild=364&bild_name=30waHMPKM.jpg



Attachment: 90W A-.log'
Description: 90W A-.log'

Attachment: 130W A-.log'
Description: 130W A-.log'

Attachment: 140W A-.log'
Description: 140W A-.log'

Attachment: 30W A+.log'
Description: 30W A+.log'

Antwort per Email an