Moin,
ich habe eine Notify, dass aber jetzt für alle Devices triggert, die in einem Reading open, closed oder tilted enthalten
define OpenClosedToLoxone notify .*:(open|closed|tilted) {OpenClosedToLoxone("$NAME")}
Ich würde gern auf einen Teil des Devicenamens filtern, so dass das Notify z.B. nur für Devicenamen triggert, die ".FK.Fenster" enthalten.
Also würde das Notify bei OG.fj.FK.Fenster triggern, nicht aber bei OG.fj.RO.Fenster - obwohl beide in einem Reading den Status "open" liefern.
Geht das?
Danke und viele Grüße
Jörn
Klar geht das. Wie die Doku uns sagt, verwendet notify Devspec, also auch Regex für Devices. Ein wenig mit Rege beschäftigen kann also nicht schaden
https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/
Der ultimative Regexp-Tester: https://regex101.com/
LG
pah
Ein notify das keinerlei Devicenamen enthält ist ja eher die Ausnahme.
Was spricht den gegen
... OG.fj.FK.Fenster:(open|closed|tilted) ...
(Devicenamen mit Punkt im Namen sind meiner Meinung nach übrigens keine gute Idee, da der . in perl ja ein Platzhalter für eine beliebiges Zeichen ist. Macht ggf perl-operationen mit den fraglichen devices unübersichtlich.)
Dagegen spricht, dass es 2 Devices gibt, die auf "FK.Fenster" enden.
Der Punkt im Namen ist kein Problem, ich habe außer Notify keinerlei Logik in FHEM (mehr), dass läuft alles auf dem LoxoneServer.
Viele Grüße
Jörn
ZitatDagegen spricht, dass es 2 Devices gibt, die auf "FK.Fenster" enden.
Wenn man wüsste wie die beiden Devices genau heissen wäre die Hilfe sicher effizienter.
Aber kein Problem - wir haben ja Zeit und können raten was der Fragesteller nun genau wie haben möchte.
Edith: Wobei mir das schon etwas widersprüchlich vorkommt.
ZitatIch würde gern auf einen Teil des Devicenamens filtern, so dass das Notify z.B. nur für Devicenamen triggert, die ".FK.Fenster" enthalten.
ZitatDagegen spricht, dass es 2 Devices gibt, die auf "FK.Fenster" enden.
Wie nun, was nun :o
...ganz einfach - und nun echt kein Grund für Stress, oder ;-)?
Es gibt devices, die heißen: OG.fj.FK.Fenster, OG.tb.FK.Fenster, OG.br.FK.Fenster, .... ) ob nun 2 oder mehr ist ja nun für das Problem unerheblich
und es devices, die heißen: OG.fj.RO.Fenster, OG.tb.RO.Fenster, OG.br.RO.Fenster,...) ob nun 2 oder mehr ist ja nun für das Problem unerheblich
Und triggern will ich nur auf die devices, die FK.Fenster enthalten - und zwar auf alle!
Alles klar?
Jörn
Zitat von: CoComp am 21 Januar 2017, 19:58:01
Und triggern will ich nur auf die devices, die FK.Fenster enthalten - und zwar auf alle!
Alles klar?
Jörn
Alles klar! Das ist einfach. Du musst nur eine RegEx setzen die ausschließlich auf FK.Fenster am Ende des Devicenamen triggert.
Grüße
@Cooltux
Ich hab meine Antwort wieder gelöscht weil deine einfach um einiges besser ist 8)
Zitat...ganz einfach - und nun echt kein Grund für Stress, oder ;-)?
Stress verursachen idR nur die Fragesteller und selten diejenigen die versuchen zu helfen - und das in ihrer Freizeit und unentgeltlich.
da schließe ich mich mal der Meinung der Vorredner an.
Und lieber TE, Dei.n.e devi.ce.n.am.es m.ac.he.n e.in.e H.il.f.e schwierig. 8)
Zur Lösung trage ich nicht bei. Die gab Cooltux ja schon eindeutig ;D
Grüße Markus
Was die Punkte im Devicenamen an geht, so kann der TE nichts dafür. Es gibt leider so einen Blog der solch einen Unsinn verbreitet. Für mich gehört der verboten. Da stehen selbst in Artikeln von Ende 2016 noch Anweisungen drin das man die cfg bearbeiten soll und so ein Müll. Und das schlimmste die Blogger verbreiten ihren Müll auch noch über ein Buch. Furchtbar.