Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Probleme mit Channel

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    SOLVED [gelöst] Probleme mit Channel

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by

      Es gibt keine Channels, deshalb

      const myFenster = $('state[id=*](functions=Fenster)');
      
      1 Reply Last reply Reply Quote 0
      • a200
        a200 last edited by

        @paul53:

        Es gibt keine Channels, deshalb

        const myFenster = $('state[id=*](functions=Fenster)');
        ```` `  
        

        Danke für deinen Tipp, aber es ist nicht die Lösung. Währendconst myFenster = $('channel[state.id=opened]'); myFenster.each(function(id, i) { var val = getObject(id).common.name; log(val); });mir folgende Ausgabe bringt:````
        09:59:29.921 [info] javascript.0 script.js.test5.Skript4: Is open
        09:59:29.921 [info] javascript.0 script.js.test5.Skript4: DG Rechts-R
        09:59:29.922 [info] javascript.0 script.js.test5.Skript4: Is open
        09:59:29.922 [info] javascript.0 script.js.test5.Skript4: DG Links-L
        09:59:29.922 [info] javascript.0 script.js.test5.Skript4: DG Links-R
        09:59:29.927 [info] javascript.0 script.js.test5.Skript4: Is open
        09:59:29.927 [info] javascript.0 script.js.test5.Skript4: Is open
        09:59:29.927 [info] javascript.0 script.js.test5.Skript4: registered 0 subscriptions and 0 schedules

        und damit alle Kanäle findet.
        
        Liefert dein Vorschlag:````
        const myFenster = $('state[id=*](functions=Fenster)');
        myFenster.each(function(id, i) {
            var val = getObject(id).common.name;
            log(val);
        });
        

        gar keine Ausgabe.

        früher hatte ich (bedingt durch einen Fehler in einer älteren Version des Rega-Adapters) so komische Functions die $_Fenster oder ${Fester} oder so ähnlich. Diese habe ich aber irgendwann entfernt und habe nur 5 fest definierte Fenctios ohne Sonderzeichen in Namen. Kann da noch was im Argen liegen?

        Danke für eure Unterstützung,

        a200.

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          Lautet die ID enum.functions.fenster ? Dann muss "Fenster" klein geschrieben werden.

          const myFenster = $('state[id=*](functions=fenster)');
          
          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            Zeige mal den Reiter Aufzählungen/GEWERKE. Dann sieht man mehr.

            1 Reply Last reply Reply Quote 0
            • a200
              a200 last edited by

              @paul53:

              Zeige mal den Reiter Aufzählungen/GEWERKE. Dann sieht man mehr. `
              Gewerke habe ich nicht. das sind meine Functions,wie man es im SCreenshot sieht.
              1597_003.png
              oder mache ich einen logischen Fehler ?

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                Das sind eine ganze Menge Fenster. Sind das alles Zigbee-Geräte / Datenpunkte ?

                Auf jedenfall sieht man, das im $Selector Kleinschreibung erfolgen muss. Für die Zigbee-Datenpunkte (Is open) muss es so funktionieren:

                const myFenster = $('state[id=*](functions=fenster)');
                
                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Ich vermute, dass einige Fenster aus HomeMatic stammen ? Da in HomeMatic die Gewerke (=functions) den Kanälen zugeordnet werden, sind zwei unterschiedliche Selektoren erforderlich. Für HomeMatic:

                  const hmFenster = $('channel[state.id=*.STATE](functions=fenster)'); // HomeMatic
                  

                  Falls die sinnvollen Namen den Geräten (Zigbee) bzw. den Kanälen (HomeMatic) vergeben sind, kann man sie so ermitteln:

                  const hmFenster = $('channel[state.id=*.STATE](functions=fenster)'); // HomeMatic
                  const zbFenster = $('state[id=*](functions=fenster)'); // Zigbee
                  
                  function alleFenster(id, i) {
                      var devid = id.substring(0, id.lastIndexOf('.'));
                      var name = getObject(devid).common.name;
                      log(name);
                  }
                  
                  zbFenster.each(alleFenster);
                  hmFenster.each(alleFenster);
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • a200
                    a200 last edited by

                    Genial. So geht es!

                    Vielen herzlichen Dank. Jetzt kann ich weiter basteln!

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @a200:

                      So geht es! `
                      Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

                      a200 1 Reply Last reply Reply Quote 0
                      • a200
                        a200 last edited by

                        @paul53:

                        Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst]. `
                        Done! Danke! 😛

                        1 Reply Last reply Reply Quote 0
                        • a200
                          a200 @paul53 last edited by

                          @paul53 said in [gelöst] Probleme mit Channel:

                          Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

                          Mist, es ist doch noch nicht gelöst! 😭

                          Bei mir laufen im Moment zwei ioBroker Instanzen. Die alte auf Raspi (bei der es geht) und eine neue auf QNAP bei der ich mit den gleichen Skripten Probleme habe. Also sollte es eher nicht am Skript liegen... Aber vielleicht hast du eine Idee, wo mein Denkfehler liegt?!

                          Hier die functions=fenster Zuweisung:
                          0001a.PNG

                          Hier der Datenpunkt:
                          0001b.PNG

                          Hier meine Abfrage:

                          const zbFenster = $('state[id=opened](functions=fenster)').each(function(id) {    
                              var dname = getObject(id).common.name;
                              var mystat = getState(id).val;
                              log(dname + " --> " + mystat);
                          });
                          

                          Ergebnis: Auf Raspi bekomme ich die Datenpunkte und die Zustände aufgelistet, beim QNAP nicht. Mir ist bewusst, dass nach dem Anlegen von neuen Aufzählungen der JS-Adapter durchgestartet werden muss. Ich habe sowohl den JS-Adapter, als auch die komplette ioBroker mehrmals durchgestartet, aber ich bekomme keinen einzigen Status angezeigt.

                          Vielleicht hast du eine Idee, was ich übersehen habe, denn am Skript kann es nicht liegen!

                          Danke.

                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 last edited by

                            @a200 said in [gelöst] Probleme mit Channel:

                            Vielleicht hast du eine Idee

                            Nein, nicht wirklich. Ich würde es mit modifiziertem Selektor versuchen.

                            const zbFenster = $('state[id=*.opened](functions=fenster)').each(function(id) {
                            // oder
                            const zbFenster = $('state[id=*](functions=fenster)').each(function(id) {
                            
                            a200 1 Reply Last reply Reply Quote 0
                            • a200
                              a200 @paul53 last edited by a200

                              [gelöst]
                              @paul53 said in [gelöst] Probleme mit Channel:

                              const zbFenster = $('stateid=*').each(function(id) {

                              Schade, aber das dachte ich mir schon. Das mit der Ferndiagnose ist so eine Sache...
                              Ich habe auch verschiedene Möglichkeiten ausprobiert.

                              const zbFenster = $('state[id=opened]').each(function(id) {
                              

                              geht, aber in dem Moment wo ich

                              (functions=fenster)
                              

                              hinzufüge, bleibt der Selektor leer!
                              Trotzdem vielen Dank!

                              [Lösung]
                              Es war ein Problem mit dem 4er JS-Adapter. Mit 3.6.4 geht alles wie gewohnt.

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              546
                              Online

                              31.8k
                              Users

                              79.9k
                              Topics

                              1.3m
                              Posts

                              3
                              16
                              902
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo