Syntaxfrage zu ReadingsGroup und Notify

Begonnen von DerFrickler, 27 Dezember 2014, 18:31:19

Vorheriges Thema - Nächstes Thema

DerFrickler

Hallo zusammen,

wie muss die Definition einer ReadingsGroup lauten um folgendes zu erreichen:

test.dummy.SCC01
test.dummy.SCC02 und alle weiteren SCCnn
sowie SCC01 und alle weiteren Scann

sollen in eine ReadingsGroup aufgenommen werden, fall der Status nicht Initialized ist. Wobei das mit dem expliziten Status erst mal zweitrangig sein darf.

Es existiert eine weitere dummy Variable: "warning.badSCC". Diese soll niemals in der ReadingGroup auftauchen. Dieser dummy dient lediglich dazu eine Warning im Alarm Modul auszulösen (ähnlich dem low-Batterie im Wiki).

Dann soll eine Änderung des Status bei "test.dummy.SCC01", "test.dummy.SCC02" und "SCC01" und auch allen weiteren <was auch immer> SCCnn ein Notify auslösen.

Mit dem *.* vor und nach den jeweiligen Textbausteinen in der Definition der ReadingsGroup und dem Notify bin ich gerade am verzweifeln.

*.*.SCC*:[Ss]tate.* z.B. zeigt in der ReadingsGroup nur den "warning.badSCC" an, der ja gerade eben nicht angezeigt werden soll.

Vielen Dank!


justme1968

regex und shell wildcards sind zwei ganz verschiedene dinge und du darfst sie nicht durchenander schmeissen.

in einer regex steht ein . für ein beliebiges zeichen und ein * für beliebig viele wiederholungen (auch keine!) des zeichens das direkt vor dem * steht.

daraus folgt das eine regex niemals mit einem * beginnen darf weil kein zeichen davor steht. um beliebig viele zeichen zu matchen musst du .* schreiben. .*.* macht keinen sinn weil ein einzelnes .* schon alles matched.

versuch mal etwas in der art: .*SCC..:state


ansonsten versuch mal mehr über regex zu erfahren. zum beispiel hier: http://www.troubleshooters.com/codecorn/littperl/perlreg.htm
gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

DerFrickler

#2
das ist dann mal eine Zusammenfassung die man einfach verstehen kann, vielen Dank!

Beim Notify ist es dann aber allem Anschein so, dass... bei der Batterie explizit auch Battery im REGEXP vorkommen muss, beim State wird dieser unter REGEX nicht mit angegeben... das kann man sich ja auch ganz gut in den Events ansehen.

Es funktioniert es jetzt und just 5 Minuten zuvor hatte der SCC seinen dienst eingestellt; welch ein Zufall.

Einen schönen Abend noch!