Auslesen eines kontinuierlichen seriellen Stirngs via USB

Begonnen von Labor018, 13 Juni 2018, 14:43:34

Vorheriges Thema - Nächstes Thema

Labor018

Hallo zusammen, dies ist mein erster Beitrag hier, also seh mir nach, wenn ich etwas vergesse :)
Mein FHEM läuft auf einem Raspberry Pi 3+
Die Modul Versionen sind:66_ECMD.pm 16372 2018-03-10 13:09:24Z neubert
67_ECMDDevice.pm 12877 2016-12-26 09:15:55Z neubert


Ich habe hier einen Wechselrichter einer PV Anlage, der mir per USB (@19200 Baud) folgenden String alle 0,75 sec übermittelt, ohne das ich ihn anfordern muss:

# 94Vdc 14Adc 239Vac 1200Wac 005731Wh1001259Wh 07h70$Der String hat immer genau diese Form, lediglich die Zahlenwerte ändern sich. Die werte bedeuten:Bezeichnung - Einheit
MPP Spannung - V DC
MPP Strom  - A DC
Netzspannung - V AC
Erzeugungsleistung - W AC
Ertrag aktueller Tag - Wh
Ertrag Total - Wh
Betriebsstunden aktueller Tag - HH:MM

Lese ich über die console vom pi (nicht die in fhem) die serielle Schnittstelle aus, bekomme ich genau dieses String auch schön brav übermittel.
Nun ist mein Vorhaben, über ECMD das Auslesen des Geräts möglich zu machen.Dazu ist bisher folgendes geschehen:
defmod Wechselrichter ECMD serial /dev/ttyUSB0attr Wechselrichter classdefs DCAC=/opt/fhem/Wechselrichter.classdef
attr Wechselrichter icon measure_photovoltaic_inst
attr Wechselrichter logTraffic 5
attr Wechselrichter room PV_Anlage

Die classdef hat den Inhalt:#classdef fuer den Wechselrichter
params MPP_Spannung MPP_Strom Netzspannung Erzeugungsleistung Ertrag_Tag Ertrag_Total Betriebsstunden
reading MPP_Spannung match "\dVdc"
reading MPP_Strom match ""
reading Netzspannung match ""
reading Erzeugungsleistung match ""
reading Ertrag_Tag match ""
reading Ertrag_Total match ""
reading Betriebsstunden match ""

Mein WechselrichterLogic Device:defmod WechselrichterLogic ECMDDevice DCAC MPP_Spannung MPP_Strom Netzspannung Erzeugungsleistung Ertrag_Tag Ertrag_Total Betriebsstunden
attr WechselrichterLogic IODev Wechselrichter
attr WechselrichterLogic room PV_Anlage

Mein ECMDDevice ist nach wie vor im State "dreiFragezeichen"

Mein größtes Problem ist, wie ich die matches deklariere.
DArüber hinaus bin ich nicht sicher, wie fhem die Daten aus dem Seriellen Datenstrom herausholt. In meiner fhem.log steht eine riesiege Menger folgender Einträge, mit denen ich nicht viel anfangen kann:
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\376)
2018.06.13 14:37:55 5: Wechselrichter: read   (\375)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\375)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\375)
2018.06.13 14:37:55 5: Wechselrichter: read   (\372)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\372)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\372)
2018.06.13 14:37:55 5: Wechselrichter: read   (\364)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\364)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\364)
2018.06.13 14:37:55 5: Wechselrichter: read   (\366)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\366)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\366)
2018.06.13 14:37:55 5: Wechselrichter: read   (\361)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\361)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\361)
2018.06.13 14:37:55 5: Wechselrichter: read   (\366)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\366)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\366)
2018.06.13 14:37:55 5: Wechselrichter: read   (\364)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\364)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\364)
2018.06.13 14:37:55 5: Wechselrichter: read   (\364)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\364)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\364)
2018.06.13 14:37:55 5: Wechselrichter: read    (\366\366)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received    (\366\366)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message    (\366\366)
2018.06.13 14:37:55 5: Wechselrichter: read   (\365)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\365)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\365)
2018.06.13 14:37:55 5: Wechselrichter: read   (\364)
2018.06.13 14:37:55 5: Wechselrichter: Spontaneously received   (\364)
2018.06.13 14:37:55 5: Wechselrichter: dispatch
2018.06.13 14:37:55 5: Wechselrichter: trying to match message   (\364)

Ich würde mich sehr freuen, wenn jemand einem FHEM Anfänger helfen könnteMfG
Felix

Dr. Boris Neubert

Hallo,

Danke für die Befolgung der Hinweise, was an Informationen gebraucht wird. Damit kann ich Dir gut und gerne helfen.

Hier mal der grobe Weg, wie ich rangehen würde:

Es sieht so aus, als ob die Aussendung in Bruchstücken kommt. Du musst diese mit partial zusammensetzen.

attr Wechselrichter partial 1

Den Splitter auf ein Blank setzen via

attr Wechselrichter split \040

Das zerlegt die Aussendung # 94Vdc 14Adc 239Vac 1200Wac 005731Wh1001259Wh 07h70$ in die Stücke

#
94Vdc
14Adc
...
07h70$


wobei bis auf das letzte Stück alle Stücke ein Blank am Ende haben, weil der Splitter nämlich nicht weggeschmissen wird.

Dann müssen die regulären Ausdrücke jeweils die Stücke komplett matchen. Am besten mal erst nur mit Vdc probieren:

reading MPP_Spannung match "\d+Vdc "

Schließlich muss der Postprozessor ran und alles hinter der Zahl wegschneiden:

reading MPP_Spannung postproc { s/(\d+)Vdc /$1/ }

Probiere es damit bitte erstmal aus. Wenn Du steckenbleibst, bitte wieder Log anfügen von der Verarbeitung einer Aussendung.

Aussendungen alle 3/4 Sekunde sind übrigens eine brutale Last für FHEM. Kannst Du das runterstellen?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Labor018

Hallo Boris,
erst einmal Danke für deine bisherige Mühe.
Ich bin mir nicht ganz sicher, was du mit Bruchstücken meinst. Ich sehe das eher so, das eine Nachricht der komplette o.g. String ist. So bekomme ich ihn auch angezeigt, wenn ich den USB anderweitig seriell auslese. Wird in egal welchem Terminal immer also so eine komplette Zeile angezeigt und der nächste String kommt dann in die neue Zeile. Daher war jetzt meine Überlegung, ob der Split dann nicht eher ein Leerzeichen ist (\s ist das dann oder?).
Bin mir auch nicht ganz sicher, ob ich den das partial Attribut dann überhaupt brauche?

Eine Umstellung der Sendeintervalle ist meines Wissens nach momentan nicht möglich leider...

Sollte so ein Reading denn dann mal erfolgreich funktionieren, wo finde ich das dann? Im EMCD (Wechselrichter) oder im ECMDDevice (WechselrichterLogic).

MfG

Felix

Dr. Boris Neubert

Zitat von: Labor018 am 18 Juni 2018, 12:11:44
Ich bin mir nicht ganz sicher, was du mit Bruchstücken meinst. Ich sehe das eher so, das eine Nachricht der komplette o.g. String ist. So bekomme ich ihn auch angezeigt, wenn ich den USB anderweitig seriell auslese. Wird in egal welchem Terminal immer also so eine komplette Zeile angezeigt und der nächste String kommt dann in die neue Zeile.

Das ist das, was Dir angezeigt wird. Das Log zeigt mir aber, dass der String in Häppchen kommt. Daher bitte partial einsetzen.

Zitat
Daher war jetzt meine Überlegung, ob der Split dann nicht eher ein Leerzeichen ist (\s ist das dann oder?).

Ja, ein Leerzeichen (Blank). Das schrieb ich auch. Allerdings ist \s nicht das Zeichen für ein Leerzeichen (sondern für ein Whitespace in einer Regex). \040 ist die oktale Kodierung von 32 (dezimal) für ein Leerzeichen.

Zitat
Sollte so ein Reading denn dann mal erfolgreich funktionieren, wo finde ich das dann? Im EMCD (Wechselrichter) oder im ECMDDevice (WechselrichterLogic).

Am ECMDDevice. ECMD ist die physische Schnittstelle, ECMDDevice das davon abgeleitete Gerät.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Labor018

Hallo Boris,
leider tut sich bis jetzt noch nichts.
Ich habe jetzt folgendes Setup:

Das IODevice Wechselrichter:
defmod Wechselrichter ECMD serial /dev/ttyUSB0
attr Wechselrichter classdefs DCAC=/opt/fhem/Wechselrichter.classdef
attr Wechselrichter icon measure_photovoltaic_inst
attr Wechselrichter logTraffic 5
attr Wechselrichter partial 1
attr Wechselrichter room PV_Anlage
attr Wechselrichter split \040
attr Wechselrichter verbose 5

setstate Wechselrichter opened
setstate Wechselrichter 2018-06-19 10:18:56 state opened


Das Logic Device WechselrichterLogic:
defmod WechselrichterLogic ECMDDevice DCAC MPP_Spannung
attr WechselrichterLogic IODev Wechselrichter
attr WechselrichterLogic room PV_Anlage
attr WechselrichterLogic verbose 5


Meine Classdef habe ich wie von die Vorgeschlagen nur auf MPP_Spannung reduziert. Das Device dementsprechend geändert (s.o.):
#classdef fuer den Wechselrichter
params MPP_Spannung
reading MPP_Spannung match "\d+Vdc "
reading MPP_Spannung postproc { s/(\d+)Vdc /$1/ }


Wenn ich nun beim IODevice Wechselrichter den verbose auf 5 setzte flippt der log-File total aus :D
2018.06.19 10:27:49 5: Wechselrichter: Spontaneously received ����������������������������������������������� (\372\364\364\373\373\361\364\372\364\364\365\360\364\365\364\365\365\364\361\372\372\364\364\365\364\364\371\372\364\364\364\$
2018.06.19 10:27:49 5: Wechselrichter: dispatch �����������������������������������������������
2018.06.19 10:27:49 5: Wechselrichter: merging partial message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:50 5: Wechselrichter: trying to match message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:50 5: Wechselrichter: partial message �������������������������������������������������������������������������������������������������������������������������������������z�����������������������������������������������$
2018.06.19 10:27:50 5: Wechselrichter: Spontaneously received �������� (\364\366\365\364\363\362\372\364)
2018.06.19 10:27:50 5: Wechselrichter: dispatch ��������
2018.06.19 10:27:50 5: Wechselrichter: merging partial message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:50 5: Wechselrichter: trying to match message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:50 5: Wechselrichter: partial message �������������������������������������������������������������������������������������������������������������������������������������z�����������������������������������������������$
2018.06.19 10:27:50 5: Wechselrichter: Spontaneously received ��������������������������������������������������� (\364\373\373\361\364\377\364\364\365\360\364\365\364\365\365\364\361\372\372\364\364\365\364\364\371\372\364\364\364\364\$
2018.06.19 10:27:50 5: Wechselrichter: dispatch ���������������������������������������������������
2018.06.19 10:27:50 5: Wechselrichter: merging partial message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:51 5: Wechselrichter: trying to match message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:51 5: Wechselrichter: partial message �������������������������������������������������������������������������������������������������������������������������������������z�����������������������������������������������$
2018.06.19 10:27:51 5: Wechselrichter: Spontaneously received ����������������������������������������������������� (\372\364\372\364\364\361\364\372\364\364\365\360\364\365\364\365\365\364\361\372\372\364\364\365\364\364\372\372\364\36$
2018.06.19 10:27:51 5: Wechselrichter: dispatch �����������������������������������������������������
2018.06.19 10:27:51 5: Wechselrichter: merging partial message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:51 5: Wechselrichter: trying to match message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:51 5: Wechselrichter: partial message �������������������������������������������������������������������������������������������������������������������������������������z�����������������������������������������������$
2018.06.19 10:27:51 5: Wechselrichter: Spontaneously received ��������������������������������������:������������� (\372\364\364\373\373\361\364\377\364\364\365\360\364\365\364\365\365\373\361\372\372\364\364\365\364\364\372\372\364\364$
2018.06.19 10:27:51 5: Wechselrichter: dispatch ��������������������������������������:�������������
2018.06.19 10:27:51 5: Wechselrichter: merging partial message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:52 5: Wechselrichter: trying to match message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:52 5: Wechselrichter: partial message �������������������������������������������������������������������������������������������������������������������������������������z�����������������������������������������������$
2018.06.19 10:27:52 5: Wechselrichter: Spontaneously received �����q�������u�������4��������������������� (\372\364\364\373\366\161\377\372\364\364\365\360\364\165\374\365\365\373\361\372\372\064\377\365\364\364\372\372\364\364\364\364\$
2018.06.19 10:27:52 5: Wechselrichter: dispatch �����q�������u�������4���������������������
2018.06.19 10:27:52 5: Wechselrichter: merging partial message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:52 5: Wechselrichter: trying to match message �������������������������������������������������������������������������������������������������������������������������������������z���������������������������������������$
2018.06.19 10:27:52 5: Wechselrichter: partial message �������������������������������������������������������������������������������������������������������������������������������������z�����������������������������������������������$
2018.06.19 10:27:52 5: Wechselrichter: Spontaneously received ���������� (\373\370\364\364\364\366\365\364\363\362)
2018.06.19 10:27:52 5: Wechselrichter: dispatch ����������

Was hier ein komisches Fragezeichen-Icon ist, ist in meiner Konsole einfach nur ein weißes Rechteck. die ganzen \nnn zahlen sehen für mich aus wie Octalzahlen, anfangen kann ich damit aber nicht wirklich was.
DIe Internals des Logic device sehen so aus (trotz verbose 5 taucht nie irgendwas im Log auf):

Internals:
   CFGFN     
   DEF        DCAC MPP_Spannung
   IODev      Wechselrichter
   NAME       WechselrichterLogic
   NR         1480
   STATE      ???
   TYPE       ECMDDevice
   fhem:
     classname  DCAC
     cache:
       readings:
         match:
           MPP_Spannung \d+Vdc
       specials:
         %MPP_Spannung MPP_Spannung
         %NAME      WechselrichterLogic
         %TYPE      ECMDDevice
     params:
       MPP_Spannung MPP_Spannung
Attributes:
   IODev      Wechselrichter
   room       PV_Anlage
   verbose    5


Schön ist ja, das offensichtlich eine Menge Daten ankommen. Wenn ich den logfile mit tail -f live betrachte, dann passt der Rythmus der riesen Datenklötze auch zu den 0,75 sec der Senderythmus.

Dr. Boris Neubert

Hallo Felix,

die Zeichen sind Bitmüll. Du kannst die Oktalkodes \abc mit 64a+8b+c nach Dezimal übersetzen. Dann siehst Du, dass es kein ASCII sondern Bitmüll ist.

Ich denke, dass es an der Konfiguration des Ports liegt. Benutze bitte mal

define Wechselrichter ECMD serial /dev/ttyUSB0@19200

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Labor018

Hallo Boris,

DAS war jetzt richtig dumm von mir, hatte ursprünglich die 19200 mal drin stehen gehabt, die sind aber scheinbar irgendwo verloren gegangen.

Bekomme jetzt vernünftige Werte:

2018.06.19 11:49:20 5: Wechselrichter: trying to match message # 104Vdc  3Adc 230Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 103Vdc                                                                                                             3Adc 232Vac 0290Wac 000784Wh4512345Wh 05h50\n\r# 102Vdc  3Adc 231Vac 0290Wac 000784Wh4512345Wh 05h50\n\r (\043\040\061\060\064\126                                                                                                           \144\143\040\040\063\101\144\143\040\062\063\060\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\0                                                                                                           64\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\060\063\126\144\143\040\040\063\101\144\143\040\062                                                                                                           \063\062\126\141\143\040\060\062\071\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\0                                                                                                           60\065\150\065\060\012\015\043\040\061\060\062\126\144\143\040\040\063\101\144\143\040\062\063\061\126\141\143\040\060\062\071\060                                                                                                           \127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015)
2018.06.19 11:49:20 5: Wechselrichter: partial message # 104Vdc  3Adc 230Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 103Vdc  3Adc 232                                                                                                           Vac 0290Wac 000784Wh4512345Wh 05h50\n\r# 102Vdc  3Adc 231Vac 0290Wac 000784Wh4512345Wh 05h50\n\r (\043\040\061\060\064\126\144\143                                                                                                           \040\040\063\101\144\143\040\062\063\060\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\0                                                                                                           61\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\060\063\126\144\143\040\040\063\101\144\143\040\062\063\062                                                                                                           \126\141\143\040\060\062\071\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\1                                                                                                           50\065\060\012\015\043\040\061\060\062\126\144\143\040\040\063\101\144\143\040\062\063\061\126\141\143\040\060\062\071\060\127\141                                                                                                           \143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015) kept
2018.06.19 11:49:25 5: Wechselrichter: Spontaneously received # 103Vdc  3Adc 230Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 102Vdc  3                                                                                                           Adc 231Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 100Vdc  3Adc 227Vac 0300W                                                                                                           ac 000784Wh4512345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 00078 (\043\040\061\060\063\126\144\143\040\040\063\101\144\143\040\06                                                                                                           2\063\060\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\                                                                                                           060\065\150\065\060\012\015\043\040\061\060\062\126\144\143\040\040\063\101\144\143\040\062\063\061\126\141\143\040\060\063\060\06                                                                                                           0\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\                                                                                                           060\061\126\144\143\040\040\063\101\144\143\040\062\062\071\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\06                                                                                                           4\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\060\060\126\144\143\040\040\063\101\144\                                                                                                           143\040\062\062\067\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\12                                                                                                           7\150\040\060\065\150\065\060\012\015\043\040\061\060\061\126\144\143\040\040\063\101\144\143\040\062\062\071\126\141\143\040\060\                                                                                                           063\060\060\127\141\143\040\060\060\060\067\070)
2018.06.19 11:49:25 5: Wechselrichter: dispatch # 103Vdc  3Adc 230Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 102Vdc  3Adc 231Vac 030                                                                                                           0Wac 000784Wh4512345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 100Vdc  3Adc 227Vac 0300Wac 000784Wh451                                                                                                           2345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 00078
2018.06.19 11:49:25 5: Wechselrichter: partial message # 104Vdc  3Adc 230Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 103Vdc  3Adc 232                                                                                                           Vac 0290Wac 000784Wh4512345Wh 05h50\n\r# 102Vdc  3Adc 231Vac 0290Wac 000784Wh4512345Wh 05h50\n\r (\043\040\061\060\064\126\144\143                                                                                                           \040\040\063\101\144\143\040\062\063\060\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\0                                                                                                           61\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\060\063\126\144\143\040\040\063\101\144\143\040\062\063\062                                                                                                           \126\141\143\040\060\062\071\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\1                                                                                                           50\065\060\012\015\043\040\061\060\062\126\144\143\040\040\063\101\144\143\040\062\063\061\126\141\143\040\060\062\071\060\127\141                                                                                                           \143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015) expired.
2018.06.19 11:49:25 5: Wechselrichter: trying to match message # 103Vdc  3Adc 230Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 102Vdc                                                                                                             3Adc 231Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 100Vdc  3Adc 227Vac 0300                                                                                                           Wac 000784Wh4512345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 00078 (\043\040\061\060\063\126\144\143\040\040\063\101\144\143\040\0                                                                                                           62\063\060\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040                                                                                                           \060\065\150\065\060\012\015\043\040\061\060\062\126\144\143\040\040\063\101\144\143\040\062\063\061\126\141\143\040\060\063\060\0                                                                                                           60\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061                                                                                                           \060\061\126\144\143\040\040\063\101\144\143\040\062\062\071\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\0                                                                                                           64\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\060\060\126\144\143\040\040\063\101\144                                                                                                           \143\040\062\062\067\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\1                                                                                                           27\150\040\060\065\150\065\060\012\015\043\040\061\060\061\126\144\143\040\040\063\101\144\143\040\062\062\071\126\141\143\040\060                                                                                                           \063\060\060\127\141\143\040\060\060\060\067\070)
2018.06.19 11:49:25 5: Wechselrichter: partial message # 103Vdc  3Adc 230Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 102Vdc  3Adc 231                                                                                                           Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 000784Wh4512345Wh 05h50\n\r# 100Vdc  3Adc 227Vac 0300Wac 0007                                                                                                           84Wh4512345Wh 05h50\n\r# 101Vdc  3Adc 229Vac 0300Wac 00078 (\043\040\061\060\063\126\144\143\040\040\063\101\144\143\040\062\063\0                                                                                                           60\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065                                                                                                           \150\065\060\012\015\043\040\061\060\062\126\144\143\040\040\063\101\144\143\040\062\063\061\126\141\143\040\060\063\060\060\127\1                                                                                                           41\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\060\061                                                                                                           \126\144\143\040\040\063\101\144\143\040\062\062\071\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\1                                                                                                           50\064\065\061\062\063\064\065\127\150\040\060\065\150\065\060\012\015\043\040\061\060\060\126\144\143\040\040\063\101\144\143\040                                                                                                           \062\062\067\126\141\143\040\060\063\060\060\127\141\143\040\060\060\060\067\070\064\127\150\064\065\061\062\063\064\065\127\150\0                                                                                                           40\060\065\150\065\060\012\015\043\040\061\060\061\126\144\143\040\040\063\101\144\143\040\062\062\071\126\141\143\040\060\063\060                                                                                                           \060\127\141\143\040\060\060\060\067\070) kept


Allerdings taucht im logic Device immer noch nichts auf...
Alle anderen Definitionen sind so geblieben.

LG

Felix

Dr. Boris Neubert

Hallo Felix,

ich muss mir das über eine Teststellung selbst vor Augen führen. Dazu bin ich dieses Wochenende nicht gekommen. Ich bitte Dich um Geduld.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Hallo Felix,

folgendermaßen geht es:

1) Du hast keine Parameter, deswegen darfst Du auch keine angeben. Parameter parametrieren Devices (z.B. selbe Classdef mit unterschiedlichen Pins).
2) Postproc muss den Zahlenwert zurückliefern.

Konfiguration:
define Wechselrichter ECMD serial /dev/ttyUSB0@19200
attr Wechselrichter classdefs DCAC=Wechselrichter.classdef
attr Wechselrichter split \040
define WechselrichterLogic ECMDDevice DCAC


Wechselrichter.classdef:
reading MPP_Spannung match "\d+Vdc "
reading MPP_Spannung postproc { /(\d+)/; $1 }
reading MPP_Strom match "\d+Adc "
reading MPP_Strom postproc { /(\d+)/; $1 }
usw.


Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!