Hauptmenü

RegEx für power-Reading

Begonnen von FunkOdyssey, 22 Januar 2018, 11:25:14

Vorheriges Thema - Nächstes Thema

FunkOdyssey

Ich bin jetzt schon ein paarmal über eine ganz simple, aber sehr nervige Frage gestolpert.

Ich habe in einem Device zwei Readings:
power (mit Einheit W)
powerValue (ohne Einheit)

Nun möchte ich über diverse Module (average oder ElectricityCalculator) auf das power-Reading zugreifen. Aber nur auf das Reading mit dem Namen "power".

Schreibe ich folgendes, so werden beide bzw. alle power-Readings genommen:

switch:power.*

Nutze ich folgende Schreibweise, so wird gar kein Reading genutzt:

switch:power
switch:power$

Laut https://regex101.com/ sollte die Schreibweise aber grundsätzlich stimmen.

Was mache ich falsch? Könnt ihr mir helfen? Danke.

betateilchen

Schau Dir mal im Event Monitor an, wie der komplette event aussieht und poste die Ausgabe hier. Dann kann man Dir sicher besser helfen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

FunkOdyssey

Danke, euch beiden.

@Frank: Der Doppelpunkt. Das war es. Da kann mir https://regex101.com/ natürlich auch nicht helfen. :-)

Du meinst aber wahrscheinlich:
switch:power:.*

Oder? Damit läuft es.


Wernieman

Da der "." für alle zeichen steht, also auch für das ":", funktioniert beides. Es ist natürlich immer besser, git einzugrenzen, d.h. switch:power:.* ist für Deine Beschreibung besser.


- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

frank

ich meinte genau meine version, weil das für mich eine "echte" regex auf ein event ist.
der erste doppelpunkt hinter dem devicenamen existiert ja in wirklichkeit bei einem event nicht (hier steht ein leerzeichen), sondern kennzeichnet eine spezialbehandlung.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

betateilchen

ich finde das mit dem FHEM-spezifischen Doppelpunkt in regexp auch immer sehr verwirrend und unlogisch.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!