[gelöst] regex userreading ausschließen

Begonnen von roemi, 08 Dezember 2022, 14:33:19

Vorheriges Thema - Nächstes Thema

roemi

Hallo,

ich habe mir eine Readingsgroup "batterieStatus" angelegt und bekomme alle Device angezeigt die das Readings "Battery" haben.
Leider sind ein paar meiner Sensoren auch Licht- und/oder Temperatursensoren.
Das heißt, ich habe diese mehrmals in der Liste.
Ich würde nun bei allen Device die ich nicht in der Gruppe haben möchte ein Userreading erzeugen wollen. Zum Beispiel "NichtZeigen" = 1.
Bisher ist das alles noch "einfach".
Wie aber kann ich den Filter .*:battery so erweitern, das alle Device mit dem Userreading "NichtZeigen" ausgeschlossen sind?

Ich habe dazu nichts gefunden bzw. das was ich gefunden habe nicht verstanden oder nicht so ändern können das es funktioniert.

Danke

Römi
https://www.roemi.de ... von einem, der auszog, 5000 deutsche Biere zu probieren

binford6000

#1
ZitatWie aber kann ich den Filter .*:battery so erweitern, das alle Device mit dem Userreading "NichtZeigen" ausgeschlossen sind?

In dem du den Filter entsprechend anpasst, zB. so:
.*(bwm|door|switch|remote):battery

Dabei bleiben die .*light und .*temp Sensoren außen vor.
Ist natürlich von Vorteil wenn man sich vorher schon Gedanken um eine systematische Benamung der Devices gemacht hat  ;)

VG Sebastian

roemi

Hallo und erstmal Danke!

.*(Licht|Temp):battery
Ausgeschrieben, mit und ohne * ... jedesmal bleibt die gesamt Readinggroup leer  :-\
Zumal ich ja evtl. irgendwann einen z.B. Temperatursensor habe der in der Liste auftauchen soll.
Darum will ich ja ein Userreading setzen über das ich "sehen" oder "nicht sehen" regulieren will.

Aber auch mit

.*:FILTER=NAME!=*Temp*
.*:battery

will es nicht klappen.
https://www.roemi.de ... von einem, der auszog, 5000 deutsche Biere zu probieren

bartman121

#3
Das Matched quasi auf .* außer, wenn die genannten Zeichenketten enthalten sind..
.*^((?!last_seen|uptime|snr|lastUpdate|utilization).)*$


Aber ich glaube betreff und Inhalt passen nicht zusammen, daher hier die Antwort auf deine Fragte:
defmod RG_Flower readingsGroup <>,<Bewertung>,<Feuchtigkeit>,<Duenger>,<Licht>,<Temperatur>,<BatteryLevel>,<State> TYPE=XiaomiBTLESens:FILTER=state!=disabled:water_ok,moisture,fertility,lux,temperature,batteryPercent,state


Grüße

Andreas

roemi

Hallo,

ich löse das ganze nun durch ein userReadings welches ich mit den aktuellen Daten der Batterie fülle und dieses dann als Readingsgroup ausgebe.

Danke für Eure Hilfe

Römi
https://www.roemi.de ... von einem, der auszog, 5000 deutsche Biere zu probieren