Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Regex für selector

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    916

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Regex für selector

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 2 Kommentatoren 1.2k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • bentschikB Offline
    bentschikB Offline
    bentschik
    schrieb am zuletzt editiert von
    #1

    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/Open
    
    

    auch sowas gefunden wird:

    /EG/BAD/Door/Open
    
    

    Normalerweise würde ich es mit einer regex lösen:

    state.id=/\w+?/Door/Open
    
    

    Geht 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

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @bentschik:

      auch sowas gefunden wird:

      /EG/BAD/Door/Open
      ```` `  
      

      Wenn das nicht gefunden werden soll, probier mal

      state.id=/*G/Door/Open
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • bentschikB Offline
        bentschikB Offline
        bentschik
        schrieb am zuletzt editiert von
        #3

        Das funktioniert nicht, weil dann auch sowas, wie

        /EG/FLR_EG/Door/Open
        
        

        gefunden 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 offen
        
        

        So 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/Open
        
        

        Erschwerend 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

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        322

        Online

        32.6k

        Benutzer

        82.2k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe