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. $-Selector mit "functions=" liefert zu viele Kanäle

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    9
    1
    81

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

$-Selector mit "functions=" liefert zu viele Kanäle

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 3 Kommentatoren 1.8k 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.
  • R Offline
    R Offline
    raller09
    schrieb am zuletzt editiert von
    #1

    Moin,

    ich versuche mich gerade auch am ioBroker. Komme so langsam etwas rein, auch wenn ich mich echt noch orientieren muss.

    Ich habe mich zuerst am "Licht zählen"-Skript versucht.

    Ich verstehe die Rückgabe des $-Selectors bei meinem Test-Homematic-Zwischenstecker nicht.

    Es werden auch die virtuellen? Kanäle 4+5 zurückgegeben, obwohl bei diesen "functions="funcLight" nicht gesetzt ist?

    Test-Skript mit entsprechender Log-Meldung:

    function testFunctionsFilter( obj) {
        $('state[id=*.STATE](functions="funcLight")[role=switch]').each( function( id, i){
            var status  = getState( id).val;
            var obj     = getObject( id);
    
            log( obj.common.name);
        });
    }
    
    function main() {
        setTimeout( function(){
            testFunctionsFilter( );
        }, 2000);
    }
    
    main();
    
    ---------
    
    Log
    18:50:55.080	[info]	javascript.0 Stop script script.js.common.test_functionsFilter
    18:50:56.301	[info]	javascript.0 Start javascript script.js.common.test_functionsFilter
    18:50:56.301	[info]	javascript.0 script.js.common.test_functionsFilter: registered 0 subscriptions and 0 schedules
    18:50:58.345	[info]	javascript.0 script.js.common.test_functionsFilter: Wohnzimmer.Zwischenstecker:3.STATE
    18:50:58.346	[info]	javascript.0 script.js.common.test_functionsFilter: Wohnzimmer.Zwischenstecker:4.STATE
    18:50:58.348	[info]	javascript.0 script.js.common.test_functionsFilter: Wohnzimmer.Zwischenstecker:5.STATE
    
    ------
    

    9678_bildschirmfoto_2018-11-28_um_20.21.51.png

    Hab ich da eine Denkfehler?

    Danke

    raller09

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

      funcLight ist einem Kanal zugeordenet. Deshalb versuche es mal mit

          $('channel[id=*.STATE](functions="funcLight")[role=switch]').each( function( id, i){
      
      

      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
      • R Offline
        R Offline
        raller09
        schrieb am zuletzt editiert von
        #3

        @paul53:

        funcLight ist einem Kanal zugeordenet. Deshalb versuche es mal mit

            $('channel[id=*.STATE](functions="funcLight")[role=switch]').each( function( id, i){
        
        ```` `  
        

        Damit wird bei mir nichts gefunden.

        Ich gestehe, das mir die Unterscheidung channel/state und Namensgebung in ioBroker noch nicht ganz klar ist.

        Danke,

        raller09

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

          @raller09:

          Damit wird bei mir nichts gefunden. `
          Und so ?

              $('channel[id=*.STATE](functions="funcLight")').each( function( id, i){
          
          

          Stimmt die Schreibweise "funcLight" ? Das ist der Name des Gewerkes, entscheidend ist aber die ID "enum.functions.funcLight" !

          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
          • R Offline
            R Offline
            raller09
            schrieb am zuletzt editiert von
            #5

            @paul53:

            Und so ?

                $('channel[id=*.STATE](functions="funcLight")').each( function( id, i){
            
            ```` `  
            

            auch nichts.

            "[role=switch]" hatte ich dazu genommen, da sonst auch der Kanal? "Wohnzimmer.Zwischenstecker:2.STATE" mit gefunden wird. Dieser wird auch beim Umschalten von ":3" einen kurzen Moment auf den gleichen Wert mit geschaltet.

            9678_bildschirmfoto_2018-11-28_um_21.13.01.png

            @paul53:

            Stimmt die Schreibweise "funcLight" ? Das ist der Name des Gewerkes, entscheidend ist aber die ID "enum.functions.funcLight" ! `

            Ich denke, hier mal die "enum.functions":

            9678_bildschirmfoto_2018-11-28_um_21.11.38.png

            Danke,

            raller09

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

              @raller09:

              auch nichts. `
              ?? Bei mir funktioniert es so:

              const hmLicht = $('channel[state.id=*.STATE](functions=funcLight)');
              
              hmLicht.each(function(id, i) {
                  log(id);
              });
              
              

              funcLight ist <u>einem</u> Kanal zugeordnet.

              Welche Version des JS-Adapters ?

              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
              • R Offline
                R Offline
                raller09
                schrieb am zuletzt editiert von
                #7

                Moin,

                ich habe bei mir den Enum-Namen nach der Lektüre zur Heizungs-Steuerung angepasst (weil das anscheinend dort zu Problemen führen kann), und die englischen "Spezial-Namen" durch ihre deutsche Übersetzung ersetzt (von rega neu einlesen lassen). Danach habe ich auch noch einmal den gesamten rpi neu gestartet.

                Daher muss ich jetzt "functions=Licht" benutzen.

                @paul53:

                ?? Bei mir funktioniert es so:

                const hmLicht = $('channel[state.id=*.STATE](functions=funcLight)');
                
                hmLicht.each(function(id, i) {
                    log(id);
                });
                
                ```` `  
                

                Dein alter Aufruf mit "$('channelid=*.STATE')" hat nicht funktioniert.

                Dein neuer Aufruf mit "$('channelstate.id=*.STATE')" führt bei mir zu folgendem Ergebnis:

                Log
                
                22:39:58.013	[info]	javascript.0 Stop script script.js.common.test_functionsFilter
                22:39:58.024	[info]	javascript.0 Start javascript script.js.common.test_functionsFilter
                22:39:58.024	[info]	javascript.0 script.js.common.test_functionsFilter: registered 0 subscriptions and 0 schedules
                22:40:00.123	[info]	javascript.0 script.js.common.test_functionsFilter: Wohnzimmer.Zwischenstecker:2.STATE
                22:40:00.123	[info]	javascript.0 script.js.common.test_functionsFilter: Wohnzimmer.Zwischenstecker:3.STATE
                22:40:00.123	[info]	javascript.0 script.js.common.test_functionsFilter: Wohnzimmer.Zwischenstecker:4.STATE
                22:40:00.123	[info]	javascript.0 script.js.common.test_functionsFilter: Wohnzimmer.Zwischenstecker:5.STATE
                

                9678_bildschirmfoto_2018-11-28_um_22.47.39.png

                Er findet jetzt ja also das Gewerk "Licht" bei den virtuellen? Kanälen ? :2 - :5, obwohl ich das nur bei :3 eingetragen habe?

                @paul53:

                funcLight ist <u>einem</u> Kanal zugeordnet. `

                Das verstehe ich jetzt nicht. Was meinst du damit?

                @paul53:

                Welche Version des JS-Adapters ? `

                Script Engine - Installierte Version: 3.6.4

                Danke,

                raller09

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

                  @raller09:

                  Script Engine - Installierte Version: 3.6.4 `
                  Diese Version verwende ich auch.
                  @raller09:

                  "$('channelstate.id=*.STATE')" führt bei mir zu folgendem Ergebnis: `
                  Sehr eigenartig :shock: Das kann ich bei mir nicht nachvollziehen:

                  Wenn ich das Gewerk nur einem Kanal zuordne, erhalte ich einen Datenpunkt, bei Zuordnung zu 2 Kanälen erhalte ich 2.

                  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
                  • W Offline
                    W Offline
                    Waly_de
                    schrieb am zuletzt editiert von Waly_de
                    #9

                    Bei mir tritt das auch auf. Hast Du inzwischen eine Lösung gefunden?

                    Mein Fall:

                    Ich selektiere mit:

                    $("state[state.id=*.LEVEL](functions='Licht')").each(function(id,i) {
                    

                    …alle Lichter.

                    Es geht dabei ausschließlich um Homematik-Geräte

                    Seit dem Letzten Update des HM-RPC Adapters auf 1.9.2 tritt das Problem bei allen alten (nicht IP) Dimmern auf:

                    2019-01-24 16:51:32.544 - info: javascript.0 script.js.common.Licht_An_Aus: LichtSchalten_ID:hm-rpc.2.JEQ0200834.1.LEVEL name:WZ-Decke-Dimmer:1.LEVEL parentDevicelId: hm-rpc.2.JEQ0200834 Gewerk: Licht Raum: Wohnzimmer

                    2019-01-24 16:51:32.546 - info: javascript.0 script.js.common.Licht_An_Aus: LichtSchalten_ID:hm-rpc.2.JEQ0200834.2.LEVEL name:HM-LC-Dim1TPBU-FM JEQ0200834:2.LEVEL parentDevicelId: hm-rpc.2.JEQ0200834 Gewerk: Licht Raum: Wohnzimmer

                    2019-01-24 16:51:32.549 - info: javascript.0 script.js.common.Licht_An_Aus: LichtSchalten_ID:hm-rpc.2.JEQ0200834.3.LEVEL name:HM-LC-Dim1TPBU-FM JEQ0200834:3.LEVEL parentDevicelId: hm-rpc.2.JEQ0200834 Gewerk: Licht Raum: Wohnzimmer

                    hm-rpc.2.JEQ0200834.2.LEVEL und hm-rpc.2.JEQ0200834.3.LEVEL sind aber nicht "Licht" zugeordnet.

                    Es werden aber auch Kanäle zurückgegeben die nicht dem Gewerk "Licht" zugeordnet sind.

                    In der Admin tauchen die Kanäle nicht unter den Aufzählungen bei "licht" auf.

                    Auch unter den "Objekten" in der Admin nicht.

                    Ich habe das Gerät auch schon komplett gelöscht und wieder angelegt. Ohne Erfolg.

                    Irgend welche Ideen?

                    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

                    723

                    Online

                    32.5k

                    Benutzer

                    81.7k

                    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