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.
    • apollon77
      apollon77 last edited by

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

      Gesendet vom Handy …

      1 Reply Last reply Reply Quote 0
      • 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

                                          452
                                          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