FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: hypetsch am 27 Mai 2016, 21:57:50

Titel: 47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: hypetsch am 27 Mai 2016, 21:57:50
Hallo,

dies ist mein erster Post - hoffe ich bin hier am richtigen Ort dafür:

Habe das Modul OBIS zusammen mit meinem Stromzähler von Landis+Gyr E650 getestet. Das define sieht folgendermaßen aus:


define powermeter OBIS /dev/ttyUSB0@300,7,E,1 E110


Prinzipiell funktioniert es auch, es sind allerdings 2 Punkte aufgetaucht. Eventuell kann mir damit jemand weiterhelfen:

1) Ein kompletter Auslesezyklus über 3 Minuten
Das Auslesen funktioniert scheinbar nur mit 300 Baud. Stellt man im define auf 9600 werden keine Daten mehr empfangen. Soweit ich weiß sollte der Zähler auch ein Auslesen mit 9600 Baud unterstützen. Eventuell liegt es daran, dass die "Initialisierungskommandos" immer mit 300 Baud geschickt werden müssen. Sobald man auf 9600 stellt läuft aber die gesamte Kommunikation mit 9600 nicht nur das Empfangen der eigentlichen Daten. Zumindest würde darauf ein Post in diesem Forum hindeuten: http://www.photovoltaikforum.com/solarview-f104/d0-fb-mit-landis-gyr-e560-auf-rpi--t97944-s10.html

2) Gelesene Daten nicht vollständig
Einige Readings werden während einem Auslesevorgang mehrfach aktualisiert (bzw überschrieben). Eine Folge: es wird nicht für alle Werte ein Reading erzeugt.

Hier die gesamten Daten die vom Zähler empfangen wurden (Auszug aus dem Log):

/LGZ5\2ZMD3104407.B32
F.F(00000000)
0.0.0(50724832)
0.0.1(50724832)
0.1.0(20)
0.1.0*20(16-05-01 00:00)
0.1.0*19(16-04-01 00:00)
0.1.0*18(16-03-01 00:02)
0.1.0*17(16-02-01 00:00)
0.1.0*16(16-01-01 00:00)
0.1.0*15(15-12-01 00:00)
0.1.0*14(15-11-01 00:00)
0.1.0*13(15-10-01 00:00)
0.1.0*12(15-09-01 00:00)
0.1.0*11(15-08-01 00:00)
0.1.0*10(15-07-01 00:00)
0.1.0*09(15-06-01 00:00)
0.1.0*08(15-05-01 00:00)
0.1.0*07(15-04-01 00:00)
0.1.0*06(15-03-01 00:00)
0.9.1(20:35:32)
0.9.2(16-05-27)
1.4.0(05)(00.56*kW)
2.4.0(05)(00.00*kW)
9.4.0(05)(00.61*kVA)
10.4.0(05)(00.00*kVA)
1.6.0(10.55*kW)(16-05-02 19:30)
1.6.0*20(11.11)(16-04-29 19:30)
1.6.0*19(12.63)(16-03-05 19:45)
1.6.0*18(12.08)(16-02-22 15:15)
1.6.0*17(10.51)(16-01-23 08:45)
1.6.0*16(11.21)(15-12-14 16:30)
1.6.0*15(11.49)(15-11-13 09:15)
1.6.0*14(10.36)(15-10-23 08:45)
1.6.0*13(10.45)(15-09-24 08:45)
1.6.0*12(05.13)(15-08-10 21:15)
1.6.0*11(05.30)(15-07-22 20:45)
1.6.0*10(03.83)(15-06-02 19:00)
1.6.0*09(10.37)(15-05-02 19:00)
1.6.0*08(11.75)(15-04-02 19:30)
1.6.0*07(11.06)(15-03-15 08:15)
1.6.0*06(11.41)(15-02-24 20:00)
2.6.0(04.09*kW)(16-05-26 14:30)
2.6.0*20(03.87)(16-04-24 13:30)
2.6.0*19(03.86)(16-03-05 11:45)
2.6.0*18(03.11)(16-02-26 12:45)
2.6.0*17(02.53)(16-01-28 12:15)
2.6.0*16(02.22)(15-12-04 12:15)
2.6.0*15(02.64)(15-11-02 12:30)
2.6.0*14(03.10)(15-10-03 15:15)
2.6.0*13(03.48)(15-09-16 13:15)
2.6.0*12(03.49)(15-08-21 12:00)
2.6.0*11(03.59)(15-07-27 14:30)
2.6.0*10(04.04)(15-06-24 14:00)
2.6.0*09(03.96)(15-05-16 15:00)
2.6.0*08(04.05)(15-04-05 14:15)
2.6.0*07(03.84)(15-03-16 12:45)
2.6.0*06(03.13)(15-02-15 13:30)
9.6.0(11.34*kVA)(16-05-02 19:30)
9.6.0*20(11.87)(16-04-29 19:30)
9.6.0*19(13.40)(16-03-05 19:45)
9.6.0*18(12.88)(16-02-22 15:15)
9.6.0*17(11.39)(16-01-23 08:45)
9.6.0*16(12.09)(15-12-14 16:30)
9.6.0*15(12.31)(15-11-13 09:15)
9.6.0*14(11.14)(15-10-23 08:45)
9.6.0*13(11.27)(15-09-24 08:45)
9.6.0*12(05.44)(15-08-10 21:15)
9.6.0*11(05.64)(15-07-22 20:45)
9.6.0*10(04.31)(15-06-02 19:00)
9.6.0*09(11.15)(15-05-02 19:00)
9.6.0*08(12.39)(15-04-02 19:30)
9.6.0*07(11.71)(15-03-15 08:15)
9.6.0*06(12.06)(15-02-24 20:00)
10.6.0(04.10*kVA)(16-05-26 14:30)
10.6.0*20(03.88)(16-04-24 13:30)
10.6.0*19(03.87)(16-03-05 11:45)
10.6.0*18(03.12)(16-02-26 12:45)
10.6.0*17(02.54)(16-01-28 12:15)
10.6.0*16(02.23)(15-12-04 12:15)
10.6.0*15(02.65)(15-11-02 12:30)
10.6.0*14(03.15)(15-10-03 15:30)
10.6.0*13(03.52)(15-09-16 13:15)
10.6.0*12(03.49)(15-08-21 12:00)
10.6.0*11(03.60)(15-07-27 14:30)
10.6.0*10(04.06)(15-06-24 14:00)
10.6.0*09(03.97)(15-05-16 15:00)
10.6.0*08(04.07)(15-04-05 14:15)
10.6.0*07(03.85)(15-03-16 12:45)
10.6.0*06(03.28)(15-02-26 13:45)
1.8.1(007111.1*kWh)
1.8.1*20(006926.3)
1.8.1*19(006648.2)
1.8.1*18(006326.4)
1.8.1*17(005896.9)
1.8.1*16(004992.7)
1.8.1*15(004301.2)
1.8.1*14(003773.9)
1.8.1*13(003485.1)
1.8.1*12(003353.0)
1.8.1*11(003245.0)
1.8.1*10(003144.3)
1.8.1*09(003050.6)
1.8.1*08(002865.3)
1.8.1*07(002600.2)
1.8.1*06(002128.0)
1.8.2(000773.2*kWh)
1.8.2*20(000734.2)
1.8.2*19(000689.4)
1.8.2*18(000645.8)
1.8.2*17(000602.7)
1.8.2*16(000558.3)
1.8.2*15(000509.8)
1.8.2*14(000465.0)
1.8.2*13(000418.9)
1.8.2*12(000369.2)
1.8.2*11(000309.0)
1.8.2*10(000249.0)
1.8.2*09(000199.6)
1.8.2*08(000155.2)
1.8.2*07(000114.0)
1.8.2*06(000073.8)
2.8.1(005522.7*kWh)
2.8.1*20(005148.3)
2.8.1*19(004756.4)
2.8.1*18(004389.0)
2.8.1*17(004231.0)
2.8.1*16(004176.7)
2.8.1*15(004043.6)
2.8.1*14(003871.2)
2.8.1*13(003585.6)
2.8.1*12(003252.3)
2.8.1*11(002763.8)
2.8.1*10(002190.3)
2.8.1*09(001646.4)
2.8.1*08(001206.1)
2.8.1*07(000720.6)
2.8.1*06(000350.6)
2.8.2(000003.4*kWh)
2.8.2*20(000003.4)
2.8.2*19(000003.4)
2.8.2*18(000003.4)
2.8.2*17(000003.4)
2.8.2*16(000003.4)
2.8.2*15(000003.4)
2.8.2*14(000003.4)
2.8.2*13(000003.4)
2.8.2*12(000003.4)
2.8.2*11(000003.4)
2.8.2*10(000003.4)
2.8.2*09(000003.4)
2.8.2*08(000003.4)
2.8.2*07(000003.4)
2.8.2*06(000003.4)
5.8.0(001789.7*kvarh)
5.8.0*20(001731.1)
5.8.0*19(001641.7)
5.8.0*18(001536.6)
5.8.0*17(001390.8)
5.8.0*16(001222.9)
5.8.0*15(001013.4)
5.8.0*14(000858.8)
5.8.0*13(000779.3)
5.8.0*12(000740.0)
5.8.0*11(000703.9)
5.8.0*10(000667.8)
5.8.0*09(000629.4)
5.8.0*08(000570.3)
5.8.0*07(000492.8)
5.8.0*06(000400.2)
6.8.0(000104.1*kvarh)
6.8.0*20(000101.1)
6.8.0*19(000095.3)
6.8.0*18(000086.4)
6.8.0*17(000082.6)
6.8.0*16(000080.5)
6.8.0*15(000071.0)
6.8.0*14(000067.2)
6.8.0*13(000063.2)
6.8.0*12(000059.6)
6.8.0*11(000055.0)
6.8.0*10(000051.5)
6.8.0*09(000045.7)
6.8.0*08(000041.2)
6.8.0*07(000032.1)
6.8.0*06(000025.6)
7.8.0(000138.9*kvarh)
7.8.0*20(000128.8)
7.8.0*19(000119.3)
7.8.0*18(000111.3)
7.8.0*17(000106.3)
7.8.0*16(000103.9)
7.8.0*15(000099.2)
7.8.0*14(000094.1)
7.8.0*13(000087.5)
7.8.0*12(000080.2)
7.8.0*11(000071.4)
7.8.0*10(000065.7)
7.8.0*09(000060.0)
7.8.0*08(000047.5)
7.8.0*07(000029.2)
7.8.0*06(000013.3)
8.8.0(000383.8*kvarh)
8.8.0*20(000369.3)
8.8.0*19(000351.8)
8.8.0*18(000331.1)
8.8.0*17(000307.6)
8.8.0*16(000280.5)
8.8.0*15(000256.7)
8.8.0*14(000235.6)
8.8.0*13(000215.7)
8.8.0*12(000198.7)
8.8.0*11(000179.6)
8.8.0*10(000168.5)
8.8.0*09(000158.8)
8.8.0*08(000138.5)
8.8.0*07(000108.2)
8.8.0*06(000070.6)
C.7.0(00000004)
C.7.1(00000005)
C.7.2(00000003)
C.7.3(00000002)
32.32.0(0000)(00-00-00 00:00)
52.32.0(0000)(00-00-00 00:00)
72.32.0(0000)(00-00-00 00:00)
32.36.0(0001)(14-03-03 12:01)
52.36.0(0001)(14-03-03 12:01)
72.36.0(0001)(14-03-03 12:01)
32.7(232.4*V)
52.7(232.9*V)
72.7(230.4*V)
0.2.0(B32)
0.2.1(0DG61)
0.2.2(405)
0.2.8(F84F)
C.2.1(14-02-18 09:54)
C.8.1(00000000*min)
C.8.2(00808359*min)
C.90.1(50724832)
!
#


Anbei noch noch ein Screenshot der erzeugten Readings.

Vielleicht hat da ja noch jemand eine Idee oder kann eventuell sogar das Modul anpassen?
Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: KölnSolar am 29 Mai 2016, 13:29:18
Hi, ich verstehe Deine Frage nicht ganz:
ZitatEinige Readings werden während einem Auslesevorgang mehrfach aktualisiert (bzw überschrieben).
Überschrieben ? Ja und, wenn der Zähler aktuellere Daten liefert.
ZitatEine Folge: es wird nicht für alle Werte ein Reading erzeugt.
Wie kommst Du darauf, dass aus Deiner Sicht fehlende Readings eine Folge wären ? Welche Readings fehlen Dir denn bzw. wäre für Dich wichtig ? Die 4 Werte zu consumption/feed sind aber OK ?
Ggfs. das interval höher setzen, um alle Daten zu bekommen ?
Grüße, Markus

Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: hypetsch am 29 Mai 2016, 14:13:47
Hallo,

zuerst mal danke für deine Antwort. Ist etwas missverständlich formuliert.

@überschreiben/fehlende Readings: Nur als Beispiel (unabhängig davon ob die Werte später als Reading gebraucht werden) - der Zähler liefert unter "10.6.0" diese Werte:


10.6.0(04.10*kVA)(16-05-26 14:30)
10.6.0*20(03.88)(16-04-24 13:30)
10.6.0*19(03.87)(16-03-05 11:45)
10.6.0*18(03.12)(16-02-26 12:45)
10.6.0*17(02.54)(16-01-28 12:15)
10.6.0*16(02.23)(15-12-04 12:15)
10.6.0*15(02.65)(15-11-02 12:30)
10.6.0*14(03.15)(15-10-03 15:30)
10.6.0*13(03.52)(15-09-16 13:15)
10.6.0*12(03.49)(15-08-21 12:00)
10.6.0*11(03.60)(15-07-27 14:30)
10.6.0*10(04.06)(15-06-24 14:00)
10.6.0*09(03.97)(15-05-16 15:00)
10.6.0*08(04.07)(15-04-05 14:15)
10.6.0*07(03.85)(15-03-16 12:45)
10.6.0*06(03.28)(15-02-26 13:45)


Als Reading wird aber nur

10.6.0   15-02-26 13:45

angelegt - also die letzte empfange Zeile mit "10.6.0". Während dem Auslesen sieht man, dass die anderen Zeilen auch verarbeitet werden, aber eben das "10.6.0" Reading überschrieben wird.
Hoffe es ist jetzt klarer was ich gemeint habe.

Anderes Beispiel: Unter 9.6.0 liefert der Zähler laut Stromnetzbetreiber: "Lieferung (aus sicht des Betreibers) Wirkleistung aktuelles Monat".
Der Wert vom Reading ist aber nur ein Datum (Wert der letzten 9.6.0 Zeile).

@Die 4 Werte zu consumption/feed sind aber OK?
Habe ich ehrlich gesagt noch nicht geprüft - hoffe das geht sich bald mal aus. Zz ist es etwas stressig. Das ganze war nur mal ein schneller Test.

@Interval höher setzen: zZ hab ich es auf 10min. Nachdem die Abfrage 3 Minuten dauert - reicht es soweit ja. War nur eine Anmerkung, dass es eigentlich ja auch schneller gehen müsste wenn man die 9600 nutzen kann.

Noch einen schönen Sonntag.
LG Peter
Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: KölnSolar am 29 Mai 2016, 16:41:08
Hallo Peter, jetzt habe ich den Datensalat schon etwas besser verstanden ;)
Der Zähler liefert also x-fach historische Daten( zu einer OBIS-Kennzahl: x.y.z*ab) und die aktuellen Daten mit x.y.z und nur diese sollten dann im Reading landen(historische Daten machen wir uns in fhem ja selber ;)) Meinst Du das so ? Das könnte man Stefan zur Lichtung des Datensalats mal vorschlagen zu implementieren, vielleicht mit extra metertype, wenn es sich nicht anders lösen löst.
Grüße, Markus
Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: hypetsch am 29 Mai 2016, 16:44:39
Ja genau, das dürfen wohl historische Daten sein, bzw. Daten in der ersten Klammer und der Timestamp in der Zweiten.
Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: Icinger am 29 Mai 2016, 19:20:43
Hmm, das ist der erste Zähler, den ich sehe, der die hostorischen Daten mitschickt.

Workaround, da ich momentan nicht an meinen Laptop rankann:
Ändere die Zeile
if($rmsg=~/\/.*|^((?:\d{1,3}-\d{1,3}:)?\d{1,3}.\d{1,3}.\d{1,3})(?:\*\d{1,3})?(?:\(.*?\))?\(.*?\)|!/) { # old regex: \/.*|\d-\d{1,3}:\d{1,3}.\d{1,3}.\d{1,3}\*\d{1,3}\(.*?\)|!
auf
if($rmsg=~/\/.*|^((?:\d{1,3}-\d{1,3}:)?\d{1,3}.\d{1,3}.\d{1,3}(?:\*\d{1,3})?)(?:\(.*?\))?\(.*?\)|!/) { # old regex: \/.*|\d-\d{1,3}:\d{1,3}.\d{1,3}.\d{1,3}\*\d{1,3}\(.*?\)|!

Damit bekommst du für jede Zeile ein extra reading.

Um die Werte aus der ersten Klammer auszulesen, muss ich mir was einfallen lassen.
Da werde ich vmtl. um einen neuen MeterTyp nicht herumkommen, da es andere Meter gibt, die in der ERSTEN Klammer den Timestamp schicken und erst in der ZWEITEN Klammer dann den Wert.
Aktuell ist es so, dass der Inhalt der ersten Klammer einfach "vergessen" wird.

Ab Dienstag hab ich wieder zugang zu meiner Entwicklungsumgebung, da schau ich mal, was sich machen lässt.

lg, Stefan
Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: hypetsch am 30 Mai 2016, 18:14:02
Hallo Stefan,

klingt super, falls dann schon eine aktualisierte Version hast und ich dir diese testen soll, am Mittwoch Abend hab ich voraussichtlich Zeit.

LG Peter
Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: hypetsch am 08 Juni 2016, 20:06:33
Hallo,

mit der aktuellen Version bisher keine Probleme mehr. Danke für die schnelle Hilfe.

Nur der Vollständigkeit halber:

lg Peter

Titel: Antw:47_OBIS zusammen mit Landis+Gyr E650
Beitrag von: Icinger am 08 Juni 2016, 20:52:13
Hi Peter,

ok, muss mir das mit den Readings nochmal anschaun.
Hab morgen eh frei, und da es (voraussichtlich) regnen soll, evtl. auch Zeit :D

lg, Stefan