Kann mir jemand mit RegEx helfen ?

Begonnen von cs-online, 01 September 2023, 19:13:00

Vorheriges Thema - Nächstes Thema

cs-online

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
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

RalfRog

#1
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.


FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

betateilchen

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...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

cs-online

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 ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

RalfRog

#4
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:
  • statEnergyCum Hour: 0.0 Day: 189.7 Month: 189.7 Year: 174072.2
  • statEnergyCumDay      189.7
  • statEnergyCumMonth  189.7
  • statEnergyCumYear  174072.2

Somit kein Userreading mit analogem Code von betateilchen erforderlich.
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

betateilchen

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; }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RalfRog

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.
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

cs-online

...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
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr