NEWS
Regex für selector
-
Hallo,
Nach Dokumentation scheint in einem selector nur ein wildcard möglich zu sein. Leider matcht der selector bei mir dadurch etwas zu viel, weil z.B. bei
$('[state.id=/*/Door/Open]').each(function(id,i) { log("States: "+id); });Statt
/UG/Door/Open /EG/Door/Open /OG/Door/Openauch sowas gefunden wird:
/EG/BAD/Door/OpenNormalerweise würde ich es mit einer regex lösen:
state.id=/\w+?/Door/OpenGeht aber leider nicht. Wäre der Support für regex in selectoren ein interessantes feature bzw. wie könnte ich mich mit iobroker-scripting-Mitteln anders behelfen?
Danke,
Bentschik
-
auch sowas gefunden wird:
/EG/BAD/Door/Open ```` `Wenn das nicht gefunden werden soll, probier mal
state.id=/*G/Door/Open -
Das funktioniert nicht, weil dann auch sowas, wie
/EG/FLR_EG/Door/Opengefunden wird. Ich würde damit den Suchraum auch unnötig einschränken. Das liegt in der Natur des Unterschieds zwischen einfachen Wildcards und Regular Expressions. Ich versuche, mein Anliegen mal etwas genauer zu beschreiben: Meine "Systemvariablen" sind folgendermassen aufgebaut:
/EG = Erggeschoss /OG = Obergeschoss /EG/Door/Open = irgendeine Tür im Ergeschoss offen /EG/AZB = Arbeitszimmer Ben im Erdgeschoss /EG/BAD = Bad im Erdgeschoss /Door/Open = irgendeine Tür im Haus offenSo geht es quasi Spar-MQTT-mässig immer weiter herunter bis zum Datenpunkt eines Sensors. Wenn ich jetzt die Tür bei mir im Arbeitszimmer schliesse, checkt meine Programmierung, ob es irgendwo im Erdgeschoss noch eine weitere offene Tür gibt, ansonsten wird /EG/Door/Open auf false gesetzt. Das triggert ggf. wieder /Door/Open, das checkt, ob in irgendeinen Geschoss eine Tür offen ist. D.h. ich benötige einen Check auf:
/UG/Door/Open /EG/Door/Open /OG/Door/Open /DG/Door/OpenErschwerend kommt hinzu, dass ich als alter Informatiker die subscribe bzw. on handler über eine Funktion verallgemeinert habe, d.h. der Funktion ist es völlig egal, ob ich auf (UG|EG|OG|DG)/Door/Open matche, oder auf /EG/(AZB|BAD)/Door/Open. Die Funktion bekommt die übegeordnete SV, wie z.B. /Door/Open, übergeben, sowie die zu beobachtenden untergeordeneten Variablablen, wie (UG|EG|OG|DG)/Door/Open. Mit den Wildcards matche ich bei .each, wie beschrieben, zu viel. Regular Expressions für Selektoren wären in der Situation die Rettung.
Beste Grüsse,
Bentschik
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden