Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Geräteliste des Adapters

    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

    Geräteliste des Adapters

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

      Der $Selector liefert nur Datenpunkt-IDs. Die Eingrenzung mit "device" ist nur sinnvoll, wenn enums zum Selektieren vorgegeben werden und die Zuweisung der enums zu Geräten erfolgt ist (in HomeMatic erfolgt die Zuweisung zu Kanälen). Versuche es mal so:

      const dps = $('zigbee.0.*');
      
      dps.each(function(id, i) {
          var val = getState(id).val;
          setState(id, val, true); // provoziert einen Trigger ohne Wertänderung und ohne Senden
      });
      
      var lastId = '';
      on({id: /^zigbee\.0\.*/}, function(dp) {
          if(dp.deviceId != lastId) {
              lastId = dp.deviceId;
              log(lastId);
              log(dp.deviceName);
          }    
      });
      
      
      1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active last edited by

        @apollon77:

        Wie oben nur mit „zigbee.0.*“ ?!

        Gesendet vom Handy … `

        ne eben nicht… :roll: @paul53:

        dps = $('zigbee.0.*'); `

        liefert mir die states .. ich brauch aber die id und den namen

        am besten im array

        zigbee.0.00158d0001052cc5 küche.schalter

        zigbee.0.00158d00010e534f dachboden.temp

        zigbee.0.00158d0001573a56 wohnzimmer.temp

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

          @arteck:

          liefert mir die states .. `
          So, wie ich geschrieben habe: $Selector liefert <u>immer</u> Datenpunkt-IDs !
          @arteck:

          ich brauch aber die id und den namen

          am besten im array `
          Wenn Du die beiden log() im Skript gegen Einsortierung in ein Array austauschst, sollte es funktionieren. Zum Test lass erst einmal die log() drin.

          1 Reply Last reply Reply Quote 0
          • arteck
            arteck Developer Most Active last edited by

            @paul53:

            @arteck:

            liefert mir die states .. `
            So, wie ich geschrieben habe: $Selector liefert <u>immer</u> Datenpunkt-IDs !
            @arteck:

            ich brauch aber die id und den namen

            am besten im array Wenn Du die beiden __log()__ im Skript gegen Einsortierung in ein Array austauschst, sollte es funktionieren. Zum Test lass erst einmal die __log()__ drin.

            ne bekomme ein null zurück..

            und

            ich will die Liste auf einen rutsch haben .. nicht bei state Änderung…

            so

            var allZigbeeDevices = $('zigbee.0.*');
            

            was nicht geht

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

              @arteck:

              ich will die Liste auf einen rutsch haben .. nicht bei state Änderung… `
              Deshalb wir in der each-Schleife für jeden Datenpunkt ein Trigger provoziert. Mein Test (habe kein Zigbee):

              filename="Geräte-IDs_Namen.JPG" index="0">~~

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

                Damit nur ein Datenpunkt pro Gerät einen provozierten Trigger erhält, habe ich das Skript geändert.

                const dps = $('zigbee.0.*');
                
                var lastId = '';
                dps.each(function(id, i) {
                    var idarr = id.split('.');
                    if(idarr[2] != lastId) {
                        var val = getState(id).val;
                        setState(id, val, true); // provoziert einen Trigger ohne Wertänderung und ohne Senden
                        lastId = idarr[2];
                    }    
                });
                
                on({id: /^zigbee\.0\.*/}, function(dp) {
                    log(dp.deviceId);
                    log(dp.deviceName);
                });
                
                
                1 Reply Last reply Reply Quote 0
                • arteck
                  arteck Developer Most Active last edited by

                  @paul53:

                  @arteck:

                  ich will die Liste auf einen rutsch haben .. nicht bei state Änderung… `
                  Deshalb wir in der each-Schleife für jeden Datenpunkt ein Trigger provoziert. Mein Test (habe kein Zigbee):

                  Geräte-IDs_Namen.JPG `

                  nöhö….. :roll:

                  ich bekomme alle states geliefert aber nicht den namen

                  zigbee.0.00158d0001052cc5 küche.schalter

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

                    @arteck:

                    ich bekomme alle states geliefert aber nicht den namen `
                    states oder Device IDs ?

                    1 Reply Last reply Reply Quote 0
                    • arteck
                      arteck Developer Most Active last edited by

                      jetzige ausgabe

                      const dps = $('zigbee.0.*');
                      
                      var lastId = '';
                      dps.each(function(id, i) {
                          var idarr = id.split('.');
                          if(idarr[2] != lastId) {
                              var val = getState(id).val;
                              setState(id, val, true); // provoziert einen Trigger ohne Wertänderung und ohne Senden
                              lastId = idarr[2];
                          }    
                      });
                      
                      on({id: /^zigbee\.0\.*/}, function(dp) {
                          log('deviceId     --------------' +dp.deviceId);
                          log('deviceName   --------------' + dp.deviceName);
                      });
                      
                      
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceId --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceName --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceId --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceName --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceId --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceName --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceId --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceName --------------null
                      13:39:40.196	[info]	javascript.0 script.js.rest.batterieStand: deviceId --------------null
                      
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        In meinen Tests hatte ich den Geräten Kanäle und den Kanälen Datenpunkte zugeordnet. Damit hat es funktioniert. Jetzt habe ich dem Gerät 2 direkt einen Datenpunkt (ohne Kanal) zugeordnet. Jetzt wir mir das Gerät 2 nicht mehr geliefert, sondern nur noch die Instanz.

                        Haben Zigbee-Geräte keine Kanäle ?

                        1 Reply Last reply Reply Quote 0
                        • arteck
                          arteck Developer Most Active last edited by

                          so siehts aus
                          1518_unbenannt.jpg

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

                            Ohne Kanäle funktionieren

                            dp.deviceId
                            dp.deviceName
                            

                            offenbar nicht. Werde Issue auf github erstellen.

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

                              Und einfach on ({id: „zigbee.0.*“ ….

                              Geht nicht? Du willst doch einfach alle Änderungen oder?!

                              Gesendet vom Handy ...

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

                                @apollon77:

                                Und einfach on ({id: „zigbee.0.*“ ….

                                Geht nicht? Du willst doch einfach alle Änderungen oder?!

                                Nein, er möchte eine Geräteliste mit Geräte-ID und Geräte-Namen.

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

                                  Ja aber er hatte doch geschrieben er will die Liste um einzeln zu subscriben … oder ich hab mich verlesen 😉

                                  Gesendet vom Handy ...

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

                                    @apollon77:

                                    oder ich hab mich verlesen

                                    1. Beitrag

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

                                      Ist das das selbe Thema? Bekomme nicht eine selektor Funktion mit zigbee Geräten hin… Alle anderen gehen.. Sonoff, homematic, angelegte states kein Thema nur zigbee nicht..

                                      Will nen Zaehlen Script fuer Batterie und Steckdosen fuer meine zigbee Geraete schreiben.. Wie ich es fuer hm und sonoff auch habe... Alle möglichen Varianten schon ausprobiert.

                                      Wie oben geschrieben geht nur alle states einzusammeln...

                                      als Gegenüberstellung..

                                      geht

                                      var cacheSelector = $('statestate.id=*.STATE'); // (HomeMatic 'STATE' groß weil so angelegt )

                                      geht nicht

                                      var cacheSelector = $('statestate.id=*.state'); // (zigbee 'state' klein weil so angelegt )

                                      Gesendet von meinem CLT-L09 mit Tapatalk

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

                                        @paul53 sagte:

                                        Ohne Kanäle funktionieren

                                        dp.deviceId
                                        dp.deviceName
                                        

                                        offenbar nicht. Werde Issue auf github erstellen.

                                        Habe festgestellt, dass man bei Zigbee anstelle von dp.deviceId und dp.deviceName den Kanal abfragen muss, um das Gerät zu erhalten.

                                        Blockly_temp.JPG

                                        Der Objekt-Typ wird offenbar nicht geprüft, sondern es wird das Eltern- bzw. Großeltern-Objekt verwendet.

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        442
                                        Online

                                        31.9k
                                        Users

                                        80.2k
                                        Topics

                                        1.3m
                                        Posts

                                        4
                                        20
                                        1141
                                        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