Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    680

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

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

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

Scheduled Pinned Locked Moved JavaScript
3 Posts 2 Posters 332 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    thomassch
    wrote on last edited by 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 Reply Last reply
    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
      wrote on last edited by
      #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 Reply Last reply
      0
      • paul53P paul53

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

        Javascript-Instanz mal neu gestartet?

        T Offline
        T Offline
        thomassch
        wrote on last edited by
        #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 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        Support us

        ioBroker
        Community Adapters
        Donate

        678

        Online

        32.5k

        Users

        81.6k

        Topics

        1.3m

        Posts
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe