FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cs-online am 01 September 2023, 19:13:00

Titel: Kann mir jemand mit RegEx helfen ?
Beitrag von: cs-online am 01 September 2023, 19:13:00
Hallo,

ich blicke einfach nicht durch die RegEx-Systematik, ich versuche den Monatswert aus diesem Statistics Reading heraus zu bekommen:

statAccumulated_energy_yield
Hour: 0.05 Day: 15.74 Month: 15.74 Year: 3678.16 (since: 2023-04-05 )

könnt Ihr mir helfen ?

...und gibt es dazu ein gutes Toutorial ?

Grüße Christian
Titel: Aw: Kann mir jemand mit RegEx helfen ?
Beitrag von: RalfRog am 01 September 2023, 19:44:59
z.B. https://www.regextester.com/  mit der Schnellschuss regex "Month: .\d\..\d"

Aber stat deutet auf das Statistics Modul hin. Da kannst du die Werte Hour, Day, Month, Year auch als Einzelwerte anzeigen/loggen lassen.
Stichwort: Attribut "singularReadings". Habe ich für mich auch so gelöst.


Titel: Aw: Kann mir jemand mit RegEx helfen ?
Beitrag von: betateilchen am 01 September 2023, 20:39:29
my $val = "Hour: 0.05 Day: 15.74 Month: 15.74 Year: 3678.16 (since: 2023-04-05 )";
my ($h,$d,$m,$y) = $val =~ m/(\d+\.\d+)/g;

falls Du die drei anderen Werte auch suchst...
Titel: Aw: Kann mir jemand mit RegEx helfen ?
Beitrag von: cs-online am 01 September 2023, 20:46:07
Danke euch beiden !!! Wenn ich nun in dem Device, wo das Reading herkommt, ein Userreading für den Monat anlegen wollte, wie müsste ich das dann einbauen ?
Titel: Aw: Kann mir jemand mit RegEx helfen ?
Beitrag von: RalfRog am 01 September 2023, 22:05:07
Zitat von: cs-online am 01 September 2023, 20:46:07Danke euch beiden !!! Wenn ich nun in dem Device, wo das Reading herkommt, ein Userreading für den Monat anlegen wollte, wie müsste ich das dann einbauen ?

Am Einfachsten im statistics Modul (ist ja sowieso für das Device aktiv) das Attribut (angepasst auf dein Device und Reading):
  "singularReadings    shelly_plug:energyCum:Delta:(Day|Month|Year) "
Wenn nur der Monat als Reading nötig ist lässt du oben halt Day & Year weg.

Dann gibts im Device:

Somit kein Userreading mit analogem Code von betateilchen erforderlich.
Titel: Aw: Kann mir jemand mit RegEx helfen ?
Beitrag von: betateilchen am 02 September 2023, 13:57:37
statistics ist ja recht und schön, aber wenn jemand nach userReading fragt, sollte man ihm auch mit userReading weiterhelfen. Typisches Problem mancher (immer wieder der gleichen) Leute, die meinen, die eigentliche Fragestellung einfach ignorieren zu müssen.

Zitat von: cs-online am 01 September 2023, 20:46:07Wenn ich nun in dem Device, wo das Reading herkommt, ein Userreading für den Monat anlegen wollte, wie müsste ich das dann einbauen ?

prinzipiell so (im Moment ungetestet):

attr <device> userReading monatswert:statAccumulated_energy_yield.* { ReadingsVal(<device>,'statAccumulated_energy_yield','') =~ m/(\d+\.\d+)/g; return $3; }
Titel: Aw: Kann mir jemand mit RegEx helfen ?
Beitrag von: RalfRog am 02 September 2023, 15:08:28
Zitat von: betateilchen am 02 September 2023, 13:57:37Typisches Problem mancher (immer wieder der gleichen) Leute, die meinen, die eigentliche Fragestellung einfach ignorieren zu müssen.

Sorry cs-online wenn ich dich mit statitics zu sehr in eine Richtung gedrängt habe und die eigentliche Fragestellung quasi aussen vor gelassen habe.
Die Annahme, dass das Attribut singularReadings unbekannt sein könnte und meiner Meinung nach eine gute Lösung wäre ist vielleicht "übergriffig".

Ich gelobe Besserung ;) und les zum Erkenntnisgewinn mit.
Titel: Aw: Kann mir jemand mit RegEx helfen ?
Beitrag von: cs-online am 02 September 2023, 20:23:15
...alles gut, kein Grund zu streiten, ihr wollt beide helfen und dafür super vielen Dank !!!!  ich finde beide Ansätze super, wußte nicht, dass man bei statistics beide Darstellungen parallel laufen lassen kann. Und das Userreading ist auch super, das kann ich für mehrere Problemstellungen nutzen  :D
Habt vielen Dank, ich werde beides testen

Grüße Christian