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. JavaScript
  5. Selector - Filter funktioniert nicht bei Enums (gelöst)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Selector - Filter funktioniert nicht bei Enums (gelöst)

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 330 Aufrufe 1 Watching
  • Ä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.
  • T Offline
    T Offline
    thomassch
    schrieb am zuletzt editiert von thomassch
    #1

    gelöst

    ich habe folgende Selector verwendet und nun geht es:

    NEU $("state [id=*] (functions='MeldungErzeugen')");
    ALT: $("channel[state.id=*] (functions='MeldungErzeugen')");

    var cacheSelectorState    = $("state[id=*](functions=MeldungErzeugen)"); 
    
    if (logging) log(xfunkName +': Liste1 ausgeben in Logs *****************');
    if (logging) log(xfunkName +': selector: '+ cacheSelectorState.length);
    cacheSelectorState.each(function (idx,i) {
        var xxname ="";
        if (getObject(idx)) xxname=getObject(idx).common.name; else xxname=getObject(idx).id;
        if (logging) { log(xfunkName + ': i='+i+' / idx=' + idx + ' / xxname = '+xxname ); }
        //if (i == 1) return false;
    });
    

    Hallo Zusammen,

    ich habe gesucht und probiert und komme einfach nicht drauf, warum das nicht geht.
    Ich habe einen ENUM erstellt "MeldungErzeugen" und diesem einige Objekte zugewiesen.

    In der Abfrage mit JAVASCRIPT versuche ich nun alle Objekte in einem Selector zu filtern, die diese neue functions "MeldungErzeugen" haben. Auf diese will ich final dann Events einstellen, so dass ich für diese dann später gezielt Meldungen ausführe, wenn sie sich ändern.

    Allerdings scheitere ich an dem Seperator, mein Code sieht so aus:
    PS. wenn ich statt "MeldungErzeugen" mal "Geräte" eintragen ergibt das die Objekte die dieses ENUM haben.
    Filter ich nach "MeldungErzeugen" kommt nichts!

    Wäre über jeden Tipp dankbar!

    Gruss
    Thomas

    Screenshot at Nov 12 19-33-52.png

    Screenshot at Nov 12 19-37-31.png Screenshot at Nov 12 19-37-49.png

    var cacheSelectorState    = $("channel[state.id=*](functions='MeldungErzeugen')"); 
    
    if (logging) log(xfunkName +': Liste1 ausgeben in Logs');
    cacheSelectorState.each(function (idx,i) {
        var xxname ="";
        if (logging) { log(xfunkName + ': i='+i+' / idx=' + idx + ' / xxname = '+xxname); }
    });
    ```~~strikethrough text~~

    ******* iobroker auf Intel PC, Raspberry PI4 + Homematic CCU *******

    paul53P 1 Antwort Letzte Antwort
    0
    • T thomassch

      gelöst

      ich habe folgende Selector verwendet und nun geht es:

      NEU $("state [id=*] (functions='MeldungErzeugen')");
      ALT: $("channel[state.id=*] (functions='MeldungErzeugen')");

      var cacheSelectorState    = $("state[id=*](functions=MeldungErzeugen)"); 
      
      if (logging) log(xfunkName +': Liste1 ausgeben in Logs *****************');
      if (logging) log(xfunkName +': selector: '+ cacheSelectorState.length);
      cacheSelectorState.each(function (idx,i) {
          var xxname ="";
          if (getObject(idx)) xxname=getObject(idx).common.name; else xxname=getObject(idx).id;
          if (logging) { log(xfunkName + ': i='+i+' / idx=' + idx + ' / xxname = '+xxname ); }
          //if (i == 1) return false;
      });
      

      Hallo Zusammen,

      ich habe gesucht und probiert und komme einfach nicht drauf, warum das nicht geht.
      Ich habe einen ENUM erstellt "MeldungErzeugen" und diesem einige Objekte zugewiesen.

      In der Abfrage mit JAVASCRIPT versuche ich nun alle Objekte in einem Selector zu filtern, die diese neue functions "MeldungErzeugen" haben. Auf diese will ich final dann Events einstellen, so dass ich für diese dann später gezielt Meldungen ausführe, wenn sie sich ändern.

      Allerdings scheitere ich an dem Seperator, mein Code sieht so aus:
      PS. wenn ich statt "MeldungErzeugen" mal "Geräte" eintragen ergibt das die Objekte die dieses ENUM haben.
      Filter ich nach "MeldungErzeugen" kommt nichts!

      Wäre über jeden Tipp dankbar!

      Gruss
      Thomas

      Screenshot at Nov 12 19-33-52.png

      Screenshot at Nov 12 19-37-31.png Screenshot at Nov 12 19-37-49.png

      var cacheSelectorState    = $("channel[state.id=*](functions='MeldungErzeugen')"); 
      
      if (logging) log(xfunkName +': Liste1 ausgeben in Logs');
      cacheSelectorState.each(function (idx,i) {
          var xxname ="";
          if (logging) { log(xfunkName + ': i='+i+' / idx=' + idx + ' / xxname = '+xxname); }
      });
      ```~~strikethrough text~~
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @thomassch sagte: Wäre über jeden Tipp dankbar!

      Javascript-Instanz mal neu gestartet?

      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

      T 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @thomassch sagte: Wäre über jeden Tipp dankbar!

        Javascript-Instanz mal neu gestartet?

        T Offline
        T Offline
        thomassch
        schrieb am zuletzt editiert von
        #3

        @paul53 ja grad mal versucht keine Änderung
        Irgendwie erkennt er den von Hand angelegten Enum nicht…

        ******* iobroker auf Intel PC, Raspberry PI4 + Homematic CCU *******

        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

        412

        Online

        32.4k

        Benutzer

        81.5k

        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