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. Gelöst: Anzahl der Zigbee Geräte ermitteln

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    532

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Gelöst: Anzahl der Zigbee Geräte ermitteln

Scheduled Pinned Locked Moved Skripten / Logik
javascript
22 Posts 2 Posters 1.5k 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.
  • M Online
    M Online
    michihorn
    wrote on last edited by michihorn
    #1

    Hallo
    ich möchte gerne ohne zusätzliche Adapter die Anzahl meiner Zigbee Geräte ermitteln, habe folgenden Ansatz:

    const ids = $("zigbee.0.*.available");
    const idCnt = "0_userdata.0.System.Zigbee.Geräte0_On";
    
    schedule("*/1 * * * *", function () {
    function cntzig0() {
        let cnt = 0;
        ids.each(function (id, i) {
            if (getState(id).val == 'true') cnt++;
        });
        setState(idCnt, cnt, true);
        log(cnt)
    }
    cntzig0(); // Skriptstart
    ids.on(cntzig0);
      });
    

    Leider klappt das nicht.
    Gruß
    Michael

    paul53P 1 Reply Last reply
    0
    • M michihorn

      Hallo
      ich möchte gerne ohne zusätzliche Adapter die Anzahl meiner Zigbee Geräte ermitteln, habe folgenden Ansatz:

      const ids = $("zigbee.0.*.available");
      const idCnt = "0_userdata.0.System.Zigbee.Geräte0_On";
      
      schedule("*/1 * * * *", function () {
      function cntzig0() {
          let cnt = 0;
          ids.each(function (id, i) {
              if (getState(id).val == 'true') cnt++;
          });
          setState(idCnt, cnt, true);
          log(cnt)
      }
      cntzig0(); // Skriptstart
      ids.on(cntzig0);
        });
      

      Leider klappt das nicht.
      Gruß
      Michael

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @michihorn sagte: Leider klappt das nicht.

      Ändere Zeile 8 in

              if (getState(id).val) cnt++;
      

      Die Datenpunkte "available" enthalten sicherlich keinen String.
      ... und lass schedule() weg (lösche Zeilen 4 und 15).

      const ids = $("zigbee.0.*.available");
      const idCnt = "0_userdata.0.System.Zigbee.Geräte0_On";
       
      function cntzig0() {
          let cnt = 0;
          ids.each(function (id, i) {
              if (getState(id).val) cnt++;
          });
          setState(idCnt, cnt, true);
          log(cnt);
      }
      
      cntzig0(); // Skriptstart
      ids.on(cntzig0);
      

      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

      M 1 Reply Last reply
      0
      • paul53P paul53

        @michihorn sagte: Leider klappt das nicht.

        Ändere Zeile 8 in

                if (getState(id).val) cnt++;
        

        Die Datenpunkte "available" enthalten sicherlich keinen String.
        ... und lass schedule() weg (lösche Zeilen 4 und 15).

        const ids = $("zigbee.0.*.available");
        const idCnt = "0_userdata.0.System.Zigbee.Geräte0_On";
         
        function cntzig0() {
            let cnt = 0;
            ids.each(function (id, i) {
                if (getState(id).val) cnt++;
            });
            setState(idCnt, cnt, true);
            log(cnt);
        }
        
        cntzig0(); // Skriptstart
        ids.on(cntzig0);
        
        M Online
        M Online
        michihorn
        wrote on last edited by
        #3

        @paul53 Wie kann ich denn jetzt noch die nicht erreichbaren Geräte ermitteln?

        paul53P 1 Reply Last reply
        0
        • M michihorn

          @paul53 Wie kann ich denn jetzt noch die nicht erreichbaren Geräte ermitteln?

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @michihorn sagte: die nicht erreichbaren Geräte ermitteln?

          Dein (korrigiertes) Skript ermittelt nur die erreichbaren Geräte.

          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

          M 1 Reply Last reply
          0
          • paul53P paul53

            @michihorn sagte: die nicht erreichbaren Geräte ermitteln?

            Dein (korrigiertes) Skript ermittelt nur die erreichbaren Geräte.

            M Online
            M Online
            michihorn
            wrote on last edited by
            #5

            @paul53 Ja ich weiß, ich möchte jetzt gerne noch über "available" das true oder false auswerten um die nicht erreichbaren Geräte separat zu zählen

            paul53P 1 Reply Last reply
            0
            • M michihorn

              @paul53 Ja ich weiß, ich möchte jetzt gerne noch über "available" das true oder false auswerten um die nicht erreichbaren Geräte separat zu zählen

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              @michihorn sagte: nicht erreichbaren Geräte separat zu zählen

              const ids = $("zigbee.0.*.available");
              const idCntOn = "0_userdata.0.System.Zigbee.Geräte0_On";
              const idCntOff = "0_userdata.0.System.Zigbee.Geräte0_Off";
               
              function cntzig0() {
                  let cntOn = 0;
                  let cntOff = 0;
                  ids.each(function (id, i) {
                      if (getState(id).val) cntOn++;
                      else cntOff++
                  });
                  setState(idCntOn, cntOn, true);
                  setState(idCntOff, cntOff, true);
                  log('On: ' + cntOn + ', Off: ' + cntOff);
              }
               
              cntzig0(); // Skriptstart
              ids.on(cntzig0);
              

              EDIT: Anstelle von cntOff kann man auch die Differenz zur Gesamtanzahl verwenden:

                  setState(idCntOff, ids.length - cntOn, true);
              

              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

              M 1 Reply Last reply
              0
              • paul53P paul53

                @michihorn sagte: nicht erreichbaren Geräte separat zu zählen

                const ids = $("zigbee.0.*.available");
                const idCntOn = "0_userdata.0.System.Zigbee.Geräte0_On";
                const idCntOff = "0_userdata.0.System.Zigbee.Geräte0_Off";
                 
                function cntzig0() {
                    let cntOn = 0;
                    let cntOff = 0;
                    ids.each(function (id, i) {
                        if (getState(id).val) cntOn++;
                        else cntOff++
                    });
                    setState(idCntOn, cntOn, true);
                    setState(idCntOff, cntOff, true);
                    log('On: ' + cntOn + ', Off: ' + cntOff);
                }
                 
                cntzig0(); // Skriptstart
                ids.on(cntzig0);
                

                EDIT: Anstelle von cntOff kann man auch die Differenz zur Gesamtanzahl verwenden:

                    setState(idCntOff, ids.length - cntOn, true);
                
                M Online
                M Online
                michihorn
                wrote on last edited by michihorn
                #7

                @paul53 Danke Paul das klappt

                M 1 Reply Last reply
                0
                • M michihorn

                  @paul53 Danke Paul das klappt

                  M Online
                  M Online
                  michihorn
                  wrote on last edited by
                  #8

                  @michihorn sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                  @paul53 Danke Paul das klappt

                  Hätte allerdings noch eine Bitte:
                  Wie kann ich die Anzahl der Tuya Geräte ermitteln, die im Common.Name "CAS_xxxxx" oder NL_xxxxx" enthalten?
                  So einfach geht es nicht.

                  const ids = $("tuya.1.*.common.name");
                  const idCnt = "0_userdata.0.System.Tuya.CAS_Count";
                   
                  function cnttuya() {
                      let cnt = 0;
                      ids.each(function (id, i) {
                          
                          if (getState(id).val == 'CAS*') cnt++;
                          //if (getState(id).val) cnt++;
                          
                      });
                      setState(idCnt, cnt, true);
                      log(cnt);
                  }
                   
                  cnttuya(); // Skriptstart
                  ids.on(cnttuya);
                  
                  
                  paul53P 1 Reply Last reply
                  0
                  • M michihorn

                    @michihorn sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                    @paul53 Danke Paul das klappt

                    Hätte allerdings noch eine Bitte:
                    Wie kann ich die Anzahl der Tuya Geräte ermitteln, die im Common.Name "CAS_xxxxx" oder NL_xxxxx" enthalten?
                    So einfach geht es nicht.

                    const ids = $("tuya.1.*.common.name");
                    const idCnt = "0_userdata.0.System.Tuya.CAS_Count";
                     
                    function cnttuya() {
                        let cnt = 0;
                        ids.each(function (id, i) {
                            
                            if (getState(id).val == 'CAS*') cnt++;
                            //if (getState(id).val) cnt++;
                            
                        });
                        setState(idCnt, cnt, true);
                        log(cnt);
                    }
                     
                    cnttuya(); // Skriptstart
                    ids.on(cnttuya);
                    
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    @michihorn sagte: im Common.Name "CAS_xxxxx" oder NL_xxxxx" enthalten?

                            const nameDp = getObject(id).common.name;
                            if (nameDp.includes('CAS') || nameDp.includes('NL')) cnt++;
                    

                    Der Selektor stimmt nicht!!

                    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 Reply Last reply
                    0
                    • M Online
                      M Online
                      michihorn
                      wrote on last edited by michihorn
                      #10

                      @paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                          const nameDp = getObject(id).common.name;                                                                                                                                                                                    if (nameDp.includes('CAS') || nameDp.includes('NL')) cnt++;                                            
                      

                      Ich möchte separat die Anzahl der Geräte mit CAS_xxx und ebenfalls separat die NL_Geräte ermitteln
                      Ich habe dazu DP angelegt:
                      "0_userdata.0.System.Tuya.CAS_Count" und
                      "0_userdata.0.System.Tuya.NL_Count"

                      paul53P 1 Reply Last reply
                      0
                      • M michihorn

                        @paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                            const nameDp = getObject(id).common.name;                                                                                                                                                                                    if (nameDp.includes('CAS') || nameDp.includes('NL')) cnt++;                                            
                        

                        Ich möchte separat die Anzahl der Geräte mit CAS_xxx und ebenfalls separat die NL_Geräte ermitteln
                        Ich habe dazu DP angelegt:
                        "0_userdata.0.System.Tuya.CAS_Count" und
                        "0_userdata.0.System.Tuya.NL_Count"

                        paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #11

                        @michihorn sagte: separat die Anzahl der Geräte mit CAS_xxx und ebenfalls separat die NL_Geräte

                                const nameDp = getObject(id).common.name;
                                if (nameDp.includes('CAS')) cntCAS++;
                                if (nameDp.includes('NL')) cntNL++;
                        

                        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

                        M 1 Reply Last reply
                        0
                        • paul53P paul53

                          @michihorn sagte: separat die Anzahl der Geräte mit CAS_xxx und ebenfalls separat die NL_Geräte

                                  const nameDp = getObject(id).common.name;
                                  if (nameDp.includes('CAS')) cntCAS++;
                                  if (nameDp.includes('NL')) cntNL++;
                          
                          M Online
                          M Online
                          michihorn
                          wrote on last edited by
                          #12

                          @paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                          const nameDp = getObject(id).common.name

                          Wie komme ich denn ie id? Muss ich nicht zunächst den Selector einrichten?
                          const ids = $("tuya.1.*.Common.Name");

                          paul53P 1 Reply Last reply
                          0
                          • M michihorn

                            @paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                            const nameDp = getObject(id).common.name

                            Wie komme ich denn ie id? Muss ich nicht zunächst den Selector einrichten?
                            const ids = $("tuya.1.*.Common.Name");

                            paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by paul53
                            #13

                            @michihorn sagte: const ids = $("tuya.1.*.Common.Name");

                            Dieser Selektor ist mit großer Wahrscheinlichkeit falsch!
                            Zeige bitte mind. einen zu selektierenden Datenpunkt.

                            @michihorn sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                            Wie komme ich denn ie id?

                            Die id wird innerhalb der Schleife ids.each(id) übergeben.

                            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

                            M 1 Reply Last reply
                            0
                            • paul53P paul53

                              @michihorn sagte: const ids = $("tuya.1.*.Common.Name");

                              Dieser Selektor ist mit großer Wahrscheinlichkeit falsch!
                              Zeige bitte mind. einen zu selektierenden Datenpunkt.

                              @michihorn sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                              Wie komme ich denn ie id?

                              Die id wird innerhalb der Schleife ids.each(id) übergeben.

                              M Online
                              M Online
                              michihorn
                              wrote on last edited by michihorn
                              #14

                              @paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                              Dieser Selektor ist mit großer Wahrscheinlichkeit falsch!

                              selector.png

                              paul53P 1 Reply Last reply
                              0
                              • M michihorn

                                @paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:

                                Dieser Selektor ist mit großer Wahrscheinlichkeit falsch!

                                selector.png

                                paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by paul53
                                #15

                                @michihorn
                                Ich sehe keinen Datenpunkt, sondern nur Geräte!
                                Gibt es einen Datenpunkt, der zu jedem Tuya-Gerät existiert?

                                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

                                M 1 Reply Last reply
                                0
                                • paul53P paul53

                                  @michihorn
                                  Ich sehe keinen Datenpunkt, sondern nur Geräte!
                                  Gibt es einen Datenpunkt, der zu jedem Tuya-Gerät existiert?

                                  M Online
                                  M Online
                                  michihorn
                                  wrote on last edited by
                                  #16

                                  @paul53 OK mein Fehler, ich will die Geräte zählen, ist wohl am einfachsten, und das separiert nach CAS_* und NL_*

                                  paul53P 1 Reply Last reply
                                  0
                                  • M michihorn

                                    @paul53 OK mein Fehler, ich will die Geräte zählen, ist wohl am einfachsten, und das separiert nach CAS_* und NL_*

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    wrote on last edited by paul53
                                    #17

                                    @michihorn sagte: ich will die Geräte zählen

                                    Dazu ist es zweckmäßig, im Selektor einen Datenpunkt(ID) anzugeben, der pro Gerät genau einmal existiert.

                                    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

                                    M 1 Reply Last reply
                                    0
                                    • paul53P paul53

                                      @michihorn sagte: ich will die Geräte zählen

                                      Dazu ist es zweckmäßig, im Selektor einen Datenpunkt(ID) anzugeben, der pro Gerät genau einmal existiert.

                                      M Online
                                      M Online
                                      michihorn
                                      wrote on last edited by
                                      #18

                                      @paul53 Bei jedem Gerät ist der DP "xxxxx.online" vorhanden.

                                      paul53P 1 Reply Last reply
                                      0
                                      • M michihorn

                                        @paul53 Bei jedem Gerät ist der DP "xxxxx.online" vorhanden.

                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by
                                        #19

                                        @michihorn sagte: Bei jedem Gerät ist der DP "xxxxx.online" vorhanden.

                                        Direkt in der Ebene unter dem Gerät?

                                        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

                                        M 1 Reply Last reply
                                        0
                                        • paul53P paul53

                                          @michihorn sagte: Bei jedem Gerät ist der DP "xxxxx.online" vorhanden.

                                          Direkt in der Ebene unter dem Gerät?

                                          M Online
                                          M Online
                                          michihorn
                                          wrote on last edited by
                                          #20

                                          @paul53 selector2.png

                                          paul53P 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

                                          609

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          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