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

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    484

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Gelöst: Anzahl der Zigbee Geräte ermitteln

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
22 Beiträge 2 Kommentatoren 1.4k Aufrufe 1 Watching
  • Ä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.
  • 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
    schrieb am zuletzt editiert von michihorn
    #7

    @paul53 Danke Paul das klappt

    M 1 Antwort Letzte Antwort
    0
    • M michihorn

      @paul53 Danke Paul das klappt

      M Online
      M Online
      michihorn
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • M Online
          M Online
          michihorn
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #18

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

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • M michihorn

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

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #20

                              @paul53 selector2.png

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • M michihorn

                                @paul53 selector2.png

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #21

                                @michihorn
                                Versuche es so:

                                const ids = $("tuya.1.*.online");
                                const idCAS = "0_userdata.0.System.Tuya.CAS_Count";
                                const idNL = "0_userdata.0.System.Tuya.NL_Count";
                                 
                                let cntCAS = 0;
                                let cntNL = 0;
                                ids.each(function(id) {
                                    id = id.substring(0, id.lastIndexOf('.'));
                                    const devName = getObject(id).common.name;
                                    if(devName.includes('CAS')) cntCAS++;
                                    if(devName.includes('NL')) cntNL++;
                                });
                                setState(idCAS, cntCAS, true);
                                setState(idNL, cntNL, true);
                                log('CAS: ' + cntCAS + ', 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 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @michihorn
                                  Versuche es so:

                                  const ids = $("tuya.1.*.online");
                                  const idCAS = "0_userdata.0.System.Tuya.CAS_Count";
                                  const idNL = "0_userdata.0.System.Tuya.NL_Count";
                                   
                                  let cntCAS = 0;
                                  let cntNL = 0;
                                  ids.each(function(id) {
                                      id = id.substring(0, id.lastIndexOf('.'));
                                      const devName = getObject(id).common.name;
                                      if(devName.includes('CAS')) cntCAS++;
                                      if(devName.includes('NL')) cntNL++;
                                  });
                                  setState(idCAS, cntCAS, true);
                                  setState(idNL, cntNL, true);
                                  log('CAS: ' + cntCAS + ', NL: ' + cntNL);
                                  
                                  M Online
                                  M Online
                                  michihorn
                                  schrieb am zuletzt editiert von michihorn
                                  #22

                                  @paul53

                                  Ja Paul das funktioniert. Dankeschön

                                  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

                                  736

                                  Online

                                  32.5k

                                  Benutzer

                                  81.8k

                                  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