[gelöst] RegExp vereinfachen?

Begonnen von grappa24, 28 Juni 2020, 09:42:13

Vorheriges Thema - Nächstes Thema

grappa24

(wie) kann ich denn den folgenden Ausdruck ohne ein elsif erweitern, falls das reading sowohl "temperature" als auch "temp_cal" sein kann:
{ if ($READING eq "temperature" && $VALUE > 24) { 'style="color:red"'} }
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

MadMax-FHEM

#1
Wenn es ein notify ist, dann entweder schon dort, also nur temperature ODER temp_cal triggern lassen:

Device:(temperature|temp_cal).*


EDIT: notify ist ja Quatsch ist wohl ein styleFormat... ;)

Oder mit "match" also RegEx statt eq...

EDIT: z.B. $READING =~ m/temp/) oder halt (noch) "ausgefeilterem" RegEx...

EDIT: Threadtitel ist aktuell auch "falsch", weil (noch) nirgens ein RegEx zu sehen ist... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

grappa24

sorry, es handelt sich um ein valueStyle Attribut in einer readingsGroup  :-[
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

grappa24

Zitat von: MadMax-FHEM am 28 Juni 2020, 10:08:31
Oder mit "match" also RegEx statt eq...
z.B. $READING =~ m/temp/) oder halt (noch) "ausgefeilterem" RegEx...
super, danke!
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

betateilchen


{ if (($READING eq 'temperature' || $READING eq 'temp_cal') && $VALUE > 24) { 'style="color:red"'} }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MadMax-FHEM

Stimmt, das ist ja auch ohne elsif... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

grappa24

Ich find ja die Lösung von betateilchen für Einsteiger "lesbarer"  ;). War auch mein erster Gedanke, nur das mit der Klammer um den "oder-Teil" ist mir nicht eingefallen ;D.

Die Lösung von MadMax-FHEM ist andererseits eleganter und wohl am Ende flexibler.

Aber sehr schön, wieder mal die Programmierkenntnisse auf Vordermann gebracht; wobei ich mit Perl und Regulären Ausdrücken nie so richtig warm werde ...
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

grappa24

Aber sagt mal, gibts denn für mein valueFormat auch eine schönere Lösung?
{ temperature => " %.1f&degC", temp_cal => " %.1f&degC" }
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

betateilchen

Nein, weil das eine komplett andere Baustelle (und interne Umsetzung) ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!