Hauptmenü

HTTPMOD und CSV Dateien

Begonnen von Parador, 23 Mai 2020, 15:00:51

Vorheriges Thema - Nächstes Thema

Parador

Hallo Zusammen,
ich stehe mit HTTPMOD und REGEX noch auf Kriegsfuß, versuche mich aber am Einlesen eine CSV-Datei.
Dabei habe ich aktuell zwei Hürden zu meistern:


  • Der Abruf der Datei erfogt über einen String der den Abrufzeitraum enthalten muss (hier: heute und morgen)
    Beispiel: http:\\abruf.testserver.de\observation?start_date=20200523&end_date=20200524&id=123456
    Wie kann ich denn in die Defintion eine Variable mit einbauen?

  • Und die Verarbeitung der abgerufenen Daten bereitet mir auch noch Kopfschmerzen. Mit dem nachfolgenden Regex habe ich eine automatische Trennung hinbekommen... allerdings noch nicht ganz so wie ich mir das vorstelle:

(?:^|;)(\d+\.\d+)
Es trennt mir die Daten in einzelne Portionen.... davon recht viele und auch nicht wirklich hübsch.
Da in der Datei u.a. auch die Beschreibungen mitgeliefert werden, und auch Datum und Uhrzeit der jeweiligen Daten, wäre es klasse wenn man das nutzen könnte... aber ich habe noch keine Idee wie...

Hier ein Auszug der Datei (die Daten kommen alle 5 Minuten, bis 23:55):


Description;Max Precip Rate ;Precipitation;Relative Humidity ;Solar Radiation;Wind Speed
Parameter;null;null;null;null;null
Unit;Millimeter per hour;Millimeter;Percent;Watt per square meter and second;meter per second
Location;null;null;null;null;null
Device;null;null;null;null;null
2020-05-23 00:00:00;1.0212766;0.05106383;69.9;0.0;0.76
2020-05-23 00:05:00;1.0212766;0.068085104;70.3;0.0;0.5
2020-05-23 00:10:00;1.0212766;0.05106383;71.0;0.0;0.5
2020-05-23 00:15:00;2.038298;0.08510638;70.9;0.0;0.43
2020-05-23 00:20:00;1.0212766;0.05106383;71.5;0.0;0.48


Wer kann mir da weiterhelfen? Wer hat Ideen?
Neben den aktuellen Daten interessiert mich auch die Summe des Niederschlags...

amenomade

#1
Zu 1: Siehe Abschnitt "Further replacements of URL, header or post data" in CommandRef oder im Wiki
https://wiki.fhem.de/wiki/HTTPMOD#Further_replacements_of_URL.2C_header_or_post_data

Zu 2: Welche Readings willst Du haben? Alle Werte und Timestamps? Nur die letzte?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Parador

Hallo amenomade,

danke für Deine Nachricht!

zu 1.) Ich habe es mir angesehen und mal gebastelt, kann es so klappen? und wenn ja wie krieg ich beim Enddatum noch ein +1 beim Tag hin?
Habe es noch nicht aktiv

defmod Wetter_test HTTPMOD http:\\abruf.testserver.de\observation?start_date=%%startdatum%%&end_date=%%enddatum%%&id=123456
attr Wetter_test replacement01Mode expression
attr Wetter_test replacement01Regex %%startdatum%%
attr Wetter_test replacement01Value { strftime '%Y%m%d', localtime }
attr Wetter_test replacement02Mode expression
attr Wetter_test replacement02Regex %%enddatum%%
attr Wetter_test replacement02Value { strftime '%Y%m%d', localtime }


zu 2.) Hauptsächlich interessiert mich die Summe des Niederschlags zum Abrufzeitpunkt
ansonsten wäre es toll von den anderen die jeweils aktuellen zu bekommen.

amenomade

#3
Ja, die Idee ist da.

Für day +1
{ strftime '%Y%m%d', localtime(time +86400) }

Wegen Readings:
(Achtung, bei Eingabe in Eingabefeld von Fhem oder in Rawdef, müssen alle Semikola verdoppelt werden.)


Z.B. letzte Einzelwerte:
reading10Regex (?s).*\n(?<lastDate>2[0-9-]+).(?<lastTime>[0-9:]+);(?<lastMaxPrecip>[0-9]+\.?[0-9]*);(?<lastPrecip>[0-9]+\.?[0-9]*);(?<lastHum>[0-9]+\.?[0-9]*);(?<lastSolar>[0-9]+\.?[0-9]*);(?<lastWind>[0-9]+\.?[0-9]*)
(kein reading10Name, die Namen sind in der Regex (named capture groups))

Für die Summe:
reading11Name sumPrecip
reading11Regex 2[0-9-]+.[0-9:]+;[0-9]+\.?[0-9]*;([0-9]+\.?[0-9]*)
reading11RegOpt gsm
reading11RecombineExpr {my $sum; for my $each (@matchlist) { $sum += $each; }; return $sum}



Alternativ, alles in einem "raw" Reading extrahieren, und dann mit userReadings einzelne Sachen parsen oder kalkulieren, insb. wenn Du eine Summe willst.

Aber Vorsicht mit der Performanz. Am Ende des Tages hast Du 280 Zeilen...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Parador

Cool, einfach spitze DANKE!!!!!

Parador

Hallo amenomade,

ich bräuchte nochmal Deine Unterstützung. Es gibt Tage das klappt alles perfekt, manchmal nicht... könntest Du nochmal drüberschauen?

Aktuell werden folgende Daten geliefert:
Description;Max Precip Rate ;Precipitation;Relative Humidity ;Solar Radiation;Wind Speed
Parameter;null;null;null;null;null
Unit;Millimeter per hour;Millimeter;Percent;Watt per square meter and second;meter per second
Location;null;null;null;null;null
Device;null;null;null;null;null
2020-07-29 00:00:00;0.0;0.0;47.7;0.0;0.19
2020-07-29 00:05:00;0.0;0.0;48.6;0.0;0.26
2020-07-29 00:10:00;0.0;0.0;49.1;0.0;0.34
2020-07-29 00:15:00;0.0;0.0;49.2;0.0;0.34
2020-07-29 00:20:00;0.0;0.0;49.9;0.0;0.22
2020-07-29 00:25:00;0.0;0.0;51.7;0.0;0.33
2020-07-29 00:30:00;0.0;0.0;51.0;0.0;0.17
2020-07-29 00:35:00;0.0;0.0;50.6;0.0;0.32
2020-07-29 00:40:00;0.0;0.0;50.4;0.0;0.26
2020-07-29 00:45:00;0.0;0.0;50.5;0.0;0.48
2020-07-29 00:50:00;0.0;0.0;51.0;0.0;0.59
2020-07-29 00:55:00;0.0;0.0;51.1;0.0;0.46
2020-07-29 01:00:00;0.0;0.0;51.7;0.0;0.45
2020-07-29 01:05:00;0.0;0.0;52.2;0.0;0.45
2020-07-29 01:10:00;0.0;0.0;52.4;0.0;0.48
2020-07-29 01:15:00;0.0;0.0;54.0;0.0;0.42
2020-07-29 01:20:00;0.0;0.0;54.6;0.0;0.61
2020-07-29 01:25:00;0.0;0.0;55.5;0.0;0.42
2020-07-29 01:30:00;0.0;0.0;56.5;0.0;0.45
2020-07-29 01:35:00;0.0;0.0;57.1;0.0;0.36
2020-07-29 01:40:00;0.0;0.0;57.9;0.0;0.29
2020-07-29 01:45:00;0.0;0.0;57.9;0.0;0.31
2020-07-29 01:50:00;0.0;0.0;57.8;0.0;0.54
2020-07-29 01:55:00;0.0;0.0;59.1;0.0;0.2
2020-07-29 02:00:00;0.0;0.0;59.7;0.0;0.18
2020-07-29 02:05:00;0.0;0.0;59.7;0.0;0.24
2020-07-29 02:10:00;0.0;0.0;60.2;0.0;0.34
2020-07-29 02:15:00;0.0;0.0;61.0;0.0;0.25
2020-07-29 02:20:00;0.0;0.0;60.7;0.0;0.26
2020-07-29 02:25:00;0.0;0.0;61.2;0.0;0.35
2020-07-29 02:30:00;0.0;0.0;62.0;0.0;0.34
2020-07-29 02:35:00;0.0;0.0;62.3;0.0;0.2
2020-07-29 02:40:00;0.0;0.0;61.6;0.0;0.21
2020-07-29 02:45:00;0.0;0.0;61.7;0.0;0.23
2020-07-29 02:50:00;0.0;0.0;63.2;0.0;0.17
2020-07-29 02:55:00;0.0;0.0;64.2;0.0;0.36
2020-07-29 03:00:00;0.0;0.0;64.8;0.0;0.34
2020-07-29 03:05:00;0.0;0.0;64.5;0.0;0.25
2020-07-29 03:10:00;0.0;0.0;64.6;0.0;0.28
2020-07-29 03:15:00;0.0;0.0;65.0;0.0;0.32
2020-07-29 03:20:00;0.0;0.0;65.0;0.0;0.14
2020-07-29 03:25:00;0.0;0.0;64.3;0.0;0.32
2020-07-29 03:30:00;0.0;0.0;64.7;0.0;0.18
2020-07-29 03:35:00;0.0;0.0;64.9;0.0;0.35
2020-07-29 03:40:00;0.0;0.0;65.3;0.0;0.32
2020-07-29 03:45:00;0.0;0.0;65.8;0.0;0.21
2020-07-29 03:50:00;0.0;0.0;65.7;0.0;0.21
2020-07-29 03:55:00;0.0;0.0;66.7;0.0;0.19
2020-07-29 04:00:00;0.0;0.0;67.1;0.0;0.34
2020-07-29 04:05:00;0.0;0.0;67.6;0.0;0.3
2020-07-29 04:10:00;0.0;0.0;68.3;0.0;0.35
2020-07-29 04:15:00;0.0;0.0;67.4;0.0;0.22
2020-07-29 04:20:00;0.0;0.0;67.9;0.0;0.23
2020-07-29 04:25:00;0.0;0.0;67.8;0.0;0.29
2020-07-29 04:30:00;0.0;0.0;67.7;1.0;0.29
2020-07-29 04:35:00;0.0;0.0;67.5;1.6;0.31
2020-07-29 04:40:00;0.0;0.0;67.4;2.8;0.23
2020-07-29 04:45:00;0.0;0.0;67.6;4.0;0.28
2020-07-29 04:50:00;0.0;0.0;67.6;5.4;0.35
2020-07-29 04:55:00;0.0;0.0;67.8;7.0;0.21
2020-07-29 05:00:00;0.0;0.0;67.5;8.8;0.23
2020-07-29 05:05:00;0.0;0.0;68.1;10.8;0.21
2020-07-29 05:10:00;0.0;0.0;68.6;13.2;0.18
2020-07-29 05:15:00;0.0;0.0;68.3;16.6;0.33
2020-07-29 05:20:00;0.0;0.0;68.5;28.8;0.17
2020-07-29 05:25:00;0.0;0.0;68.5;32.4;0.2
2020-07-29 05:30:00;0.0;0.0;68.4;28.6;0.2
2020-07-29 05:35:00;0.0;0.0;68.2;28.0;0.28
2020-07-29 05:40:00;0.0;0.0;68.2;29.2;0.27
2020-07-29 05:45:00;0.0;0.0;67.6;32.4;0.53
2020-07-29 05:50:00;0.0;0.0;67.8;71.0;0.37
2020-07-29 05:55:00;0.0;0.0;67.9;103.4;0.62
2020-07-29 06:00:00;0.0;0.0;68.1;116.4;0.53
2020-07-29 06:05:00;0.0;0.0;68.1;128.4;0.28
2020-07-29 06:10:00;0.0;0.0;67.8;139.0;0.51
2020-07-29 06:15:00;0.0;0.0;67.1;150.0;0.37
2020-07-29 06:20:00;0.0;0.0;67.1;161.6;0.3
2020-07-29 06:25:00;0.0;0.0;66.6;173.0;0.37
2020-07-29 06:30:00;0.0;0.0;66.2;184.4;0.28
2020-07-29 06:35:00;0.0;0.0;66.3;194.6;0.27
2020-07-29 06:40:00;0.0;0.0;66.6;203.6;0.3
2020-07-29 06:45:00;0.0;0.0;64.0;129.0;0.29
2020-07-29 06:50:00;0.0;0.0;61.9;47.0;0.34
2020-07-29 06:55:00;0.0;0.0;62.1;44.2;0.56
2020-07-29 07:00:00;0.0;0.0;61.7;45.0;0.72
2020-07-29 07:05:00;0.0;0.0;60.5;45.0;0.64
2020-07-29 07:10:00;0.0;0.0;60.0;45.0;0.77
2020-07-29 07:15:00;0.0;0.0;58.7;45.0;0.61
2020-07-29 07:20:00;0.0;0.0;57.7;45.0;0.72
2020-07-29 07:25:00;0.0;0.0;56.7;45.0;0.72
2020-07-29 07:30:00;0.0;0.0;55.9;46.0;0.61
2020-07-29 07:35:00;0.0;0.0;54.9;46.2;0.35
2020-07-29 07:40:00;0.0;0.0;55.2;47.0;0.77
2020-07-29 07:45:00;0.0;0.0;55.0;47.2;0.55
2020-07-29 07:50:00;0.0;0.0;54.8;48.4;0.59
2020-07-29 07:55:00;0.0;0.0;54.6;49.8;0.69
2020-07-29 08:00:00;0.0;0.0;53.8;134.6;0.52
2020-07-29 08:05:00;0.0;0.0;54.8;390.2;0.5
2020-07-29 08:10:00;0.0;0.0;53.9;435.8;0.67
2020-07-29 08:15:00;0.0;0.0;52.0;448.6;0.86
2020-07-29 08:20:00;0.0;0.0;50.4;441.8;0.96
2020-07-29 08:25:00;0.0;0.0;51.1;462.2;0.59
2020-07-29 08:30:00;0.0;0.0;50.5;483.2;0.96
2020-07-29 08:35:00;0.0;0.0;48.0;498.0;0.88
2020-07-29 08:40:00;0.0;0.0;46.5;505.2;0.87
2020-07-29 08:45:00;0.0;0.0;46.0;531.0;0.9
2020-07-29 08:50:00;0.0;0.0;45.8;544.4;1.0
2020-07-29 08:55:00;0.0;0.0;44.2;548.0;1.17
2020-07-29 09:00:00;0.0;0.0;44.0;495.4;0.93
2020-07-29 09:05:00;0.0;0.0;43.4;572.8;0.78
2020-07-29 09:10:00;0.0;0.0;43.8;463.6;1.14
2020-07-29 09:15:00;0.0;0.0;43.0;628.8;0.96
2020-07-29 09:20:00;0.0;0.0;42.4;647.4;0.82
2020-07-29 09:25:00;0.0;0.0;42.7;494.6;0.88
2020-07-29 09:30:00;0.0;0.0;42.0;562.0;0.88
2020-07-29 09:35:00;0.0;0.0;41.2;635.0;0.95
2020-07-29 09:40:00;0.0;0.0;40.6;661.6;0.76
2020-07-29 09:45:00;0.0;0.0;40.6;673.0;0.87
2020-07-29 09:50:00;0.0;0.0;40.1;692.2;1.07
2020-07-29 09:55:00;0.0;0.0;39.9;547.4;1.21
2020-07-29 10:00:00;0.0;0.0;39.0;728.2;1.06
2020-07-29 10:05:00;0.0;0.0;38.4;678.0;0.83
2020-07-29 10:10:00;0.0;0.0;38.5;623.2;1.24
2020-07-29 10:15:00;0.0;0.0;37.5;724.0;0.97
2020-07-29 10:20:00;0.0;0.0;38.1;697.4;1.0
2020-07-29 10:25:00;0.0;0.0;37.6;718.6;1.08
2020-07-29 10:30:00;0.0;0.0;37.7;714.0;1.29
2020-07-29 10:35:00;0.0;0.0;37.0;728.0;0.98
2020-07-29 10:40:00;0.0;0.0;37.0;728.2;1.01
2020-07-29 10:45:00;0.0;0.0;37.1;734.4;1.11
2020-07-29 10:50:00;0.0;0.0;36.0;739.6;1.34
2020-07-29 10:55:00;0.0;0.0;35.6;745.2;0.97
2020-07-29 11:00:00;0.0;0.0;34.8;743.4;1.18
2020-07-29 11:05:00;0.0;0.0;35.0;749.2;0.7
2020-07-29 11:10:00;0.0;0.0;34.5;746.8;1.11
2020-07-29 11:15:00;0.0;0.0;34.8;760.2;0.93
2020-07-29 11:20:00;0.0;0.0;35.1;760.6;1.15
2020-07-29 11:25:00;0.0;0.0;35.2;754.0;1.18
2020-07-29 11:30:00;0.0;0.0;35.1;741.2;0.75
2020-07-29 11:35:00;0.0;0.0;35.5;754.0;0.99
2020-07-29 11:40:00;0.0;0.0;35.0;780.4;1.33
2020-07-29 11:45:00;0.0;0.0;33.7;769.2;1.18
2020-07-29 11:50:00;0.0;0.0;34.2;777.4;1.11
2020-07-29 11:55:00;0.0;0.0;33.2;784.6;0.78
2020-07-29 12:00:00;0.0;0.0;33.5;789.2;1.12
2020-07-29 12:05:00;0.0;0.0;32.3;775.0;1.22
2020-07-29 12:10:00;0.0;0.0;32.3;776.6;0.99
2020-07-29 12:15:00;0.0;0.0;32.9;763.6;0.79
2020-07-29 12:20:00;0.0;0.0;32.8;774.4;0.74
2020-07-29 12:25:00;0.0;0.0;32.9;782.2;0.83
2020-07-29 12:30:00;0.0;0.0;32.1;760.6;1.24
2020-07-29 12:35:00;0.0;0.0;31.5;764.6;0.68
2020-07-29 12:40:00;0.0;0.0;31.7;560.2;1.27
2020-07-29 12:45:00;0.0;0.0;28.9;112.6;0.79
2020-07-29 12:50:00;0.0;0.0;29.1;100.0;1.2
2020-07-29 12:55:00;0.0;0.0;27.9;473.8;1.33
2020-07-29 13:00:00;0.0;0.0;28.8;779.2;1.26
2020-07-29 13:05:00;0.0;0.0;29.0;754.6;1.27
2020-07-29 13:10:00;0.0;0.0;28.7;735.8;0.8
2020-07-29 13:15:00;0.0;0.0;29.0;751.6;1.15
2020-07-29 13:20:00;0.0;0.0;28.0;750.6;1.14
2020-07-29 13:25:00;0.0;0.0;27.6;744.8;1.34
2020-07-29 13:30:00;0.0;0.0;27.9;749.0;1.13
2020-07-29 13:35:00;0.0;0.0;27.7;749.4;1.04
2020-07-29 13:40:00;0.0;0.0;27.3;735.4;1.27
2020-07-29 13:45:00;0.0;0.0;27.2;734.4;1.19
2020-07-29 13:50:00;0.0;0.0;27.4;736.0;1.1
2020-07-29 13:55:00;0.0;0.0;26.5;737.8;1.63
2020-07-29 14:00:00;0.0;0.0;26.5;724.8;1.35
2020-07-29 14:05:00;0.0;0.0;26.6;720.4;1.24
2020-07-29 14:10:00;0.0;0.0;26.7;708.0;0.79
2020-07-29 14:15:00;0.0;0.0;26.0;687.4;0.69
2020-07-29 14:20:00;0.0;0.0;25.7;659.0;0.93
2020-07-29 14:25:00;0.0;0.0;26.1;678.6;1.03
2020-07-29 14:30:00;0.0;0.0;26.9;628.2;1.19
2020-07-29 14:35:00;0.0;0.0;27.4;673.8;0.89
2020-07-29 14:40:00;0.0;0.0;27.1;672.0;1.23
2020-07-29 14:45:00;0.0;0.0;26.6;639.6;0.74
2020-07-29 14:50:00;0.0;0.0;26.8;629.2;1.46
2020-07-29 14:55:00;0.0;0.0;26.5;582.0;0.85
2020-07-29 15:00:00;0.0;0.0;25.8;600.6;0.91
2020-07-29 15:05:00;0.0;0.0;25.9;569.2;1.03
2020-07-29 15:10:00;0.0;0.0;25.9;556.8;1.15
2020-07-29 15:15:00;0.0;0.0;25.6;535.4;0.84
2020-07-29 15:20:00;0.0;0.0;25.4;546.4;0.72
2020-07-29 15:25:00;0.0;0.0;26.1;528.4;0.76
2020-07-29 15:30:00;0.0;0.0;25.9;525.8;0.94
2020-07-29 15:35:00;0.0;0.0;25.6;545.6;0.77
2020-07-29 15:40:00;0.0;0.0;25.8;550.0;0.94
2020-07-29 15:45:00;0.0;0.0;26.0;514.8;0.92
2020-07-29 15:50:00;0.0;0.0;26.4;470.8;0.86
2020-07-29 15:55:00;0.0;0.0;26.1;456.2;0.69
2020-07-29 16:00:00;0.0;0.0;26.1;401.0;0.75
2020-07-29 16:05:00;0.0;0.0;25.5;440.6;0.93
2020-07-29 16:10:00;0.0;0.0;25.9;450.4;1.2
2020-07-29 16:15:00;0.0;0.0;25.5;394.2;0.96
2020-07-29 16:20:00;0.0;0.0;25.2;422.4;0.57
2020-07-29 16:25:00;0.0;0.0;25.4;406.4;1.24
2020-07-29 16:30:00;0.0;0.0;25.0;435.2;0.9
2020-07-29 16:35:00;0.0;0.0;24.4;424.4;0.69
2020-07-29 16:40:00;0.0;0.0;24.9;344.2;0.79
2020-07-29 16:45:00;0.0;0.0;24.8;290.8;0.81
2020-07-29 16:50:00;0.0;0.0;25.2;281.8;0.78
2020-07-29 16:55:00;0.0;0.0;25.1;360.6;1.02
2020-07-29 17:00:00;0.0;0.0;24.9;318.6;0.86
2020-07-29 17:05:00;0.0;0.0;24.9;275.2;0.92
2020-07-29 17:10:00;0.0;0.0;24.9;336.4;0.73


Mit dem Device wird als Summe des Niederschlags im Moment dann "53.71" errechnet... allerdings sollte dort m.M. nach "0" stehen...
Attributes:
   comment    reading01AutoNumLen 3
   reading01Name CSV
   reading01RegOpt g
   reading01Regex (?:^|;)(\d+\.\d+)
   enableControlSet 1
   enableCookies 1
   enforceGoodReadingNames 1
   group      Wetter
   handleRedirects 1
   reading10Regex (?s).*\n(?<lastDate>2[0-9-]+).(?<lastTime>[0-9:]+);(?<lastMaxPrecip>[0-9]+\.?[0-9]*);(?<lastPrecip>[0-9]+\.?[0-9]*);(?<lastHum>[0-9]+\.?[0-9]*);(?<lastSolar>[0-9]+\.?[0-9]*);(?<lastWind>[0-9]+\.?[0-9]*)
   reading11Name sumPrecip
   reading11RecombineExpr {my $sum; for my $each (@matchlist) { $sum += $each; }; return $sum}
   reading11RegOpt gsm
   reading11Regex 2[0-9-]+.[0-9:]+;[0-9]+\.?[0-9]*;([0-9]+\.?[0-9]*)
   replacement01Mode expression
   replacement01Regex %%startdatum%%
   replacement01Value { strftime '%Y%m%d', localtime }
   replacement02Mode expression
   replacement02Regex %%enddatum%%
   replacement02Value { strftime '%Y%m%d', localtime(time +86400) }
   room       Wetter
   showBody   0
   showError  1
   stateFormat lastDate lastTime
   userattr   reading01AutoNumLen reading01Name reading01RegOpt reading01Regex reading10Regex reading11Name reading11RecombineExpr reading11RegOpt reading11Regex replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value


Vielen Dank für die Unterstützung bereits jetzt!

amenomade

#6
Weil die Regex 2[0-9-]+.[0-9:]+;[0-9]+\.?[0-9]*;([0-9]+\.?[0-9]*)nich genau genug ist.
Die matcht z.B. auch
28.8;779.2;1.26 und nimmt davon den 1.26

Mit 2[0-9-]{9} statt 2[0-9-]+ am Anfang sollte es besser gehen

EDIT: ein Purist würde sogar2[0-9]{3}-[0-1][0-9]-[0-3][0-9].[0-2][0-9]:[0-9][0-9]:[0-9][0-9];[0-9]+\.?[0-9]*;([0-9]+\.?[0-9]*) schreiben. Wird aber langsam ein bisschen unübersichtlich ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Parador

Du bist spitze - Nochmal danke! Werde wieder berichten!