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: Zigbee Überwachung

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

Gelöst: Zigbee Überwachung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
10 Beiträge 6 Kommentatoren 603 Aufrufe 6 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.
  • M Offline
    M Offline
    michihorn
    schrieb am zuletzt editiert von michihorn
    #1

    Hallo ich habe ein Script zur Zigbee Überwachung gefunden. Leider wurde der orginal Thread geschlossen.
    Das Script gibt mir leider nicht die Bezeichnungen der "offline Zigbee's" aus. Hier das Script:

    createState('zigbeestatus.Anzahl_Geräte', 0, {type: 'number'});
    createState('zigbeestatus.offline', 0, {type: 'number'});
    createState('zigbeestatus.Gerät', " ", {type: 'string'});
     
    const zigbee = $('zigbee.0*.link_quality');
    const loggen = true;
     
    var arrOFFLINE;
    
    function offline(id){
        var obj = getObject(id);
        arrOFFLINE.push(obj.common.name);
        if(loggen) log("Gerät: " + obj.common.name);
    }
     
    function countOffline() {
       var moeglicheOFFLINE = 0;
       arrOFFLINE =[];
       zigbee.each(function (id, i){
        
        if(Math.round((new Date() - new Date(getState(id).ts)) / 1000 / 60) > 60) offline(id);
        ++moeglicheOFFLINE;
       });
       
       if(loggen) log("Text: "+arrOFFLINE.join(', '));
       if(loggen) log("Anzahl Geräte: " + moeglicheOFFLINE + " // davon offline: " + arrOFFLINE.length);
       
       setState("zigbeestatus.Gerät",     arrOFFLINE.join(',<br>'));
       setState("zigbeestatus.offline",   arrOFFLINE.length);
       setState("zigbeestatus.Anzahl_Geräte", moeglicheOFFLINE);
     
    }
     
    countOffline();
     
    
    

    Und hier das was im Log steht:

    15:09:00.011	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Text: Link quality, Link quality, Link quality, Link quality
    15:09:00.011	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Anzahl Geräte: 11 // davon offline: 4
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
    

    Gibt es zu dem Thema noch ein weiteres Script?
    Michael

    paul53P 1 Antwort Letzte Antwort
    0
    • M michihorn

      Hallo ich habe ein Script zur Zigbee Überwachung gefunden. Leider wurde der orginal Thread geschlossen.
      Das Script gibt mir leider nicht die Bezeichnungen der "offline Zigbee's" aus. Hier das Script:

      createState('zigbeestatus.Anzahl_Geräte', 0, {type: 'number'});
      createState('zigbeestatus.offline', 0, {type: 'number'});
      createState('zigbeestatus.Gerät', " ", {type: 'string'});
       
      const zigbee = $('zigbee.0*.link_quality');
      const loggen = true;
       
      var arrOFFLINE;
      
      function offline(id){
          var obj = getObject(id);
          arrOFFLINE.push(obj.common.name);
          if(loggen) log("Gerät: " + obj.common.name);
      }
       
      function countOffline() {
         var moeglicheOFFLINE = 0;
         arrOFFLINE =[];
         zigbee.each(function (id, i){
          
          if(Math.round((new Date() - new Date(getState(id).ts)) / 1000 / 60) > 60) offline(id);
          ++moeglicheOFFLINE;
         });
         
         if(loggen) log("Text: "+arrOFFLINE.join(', '));
         if(loggen) log("Anzahl Geräte: " + moeglicheOFFLINE + " // davon offline: " + arrOFFLINE.length);
         
         setState("zigbeestatus.Gerät",     arrOFFLINE.join(',<br>'));
         setState("zigbeestatus.offline",   arrOFFLINE.length);
         setState("zigbeestatus.Anzahl_Geräte", moeglicheOFFLINE);
       
      }
       
      countOffline();
       
      
      

      Und hier das was im Log steht:

      15:09:00.011	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Text: Link quality, Link quality, Link quality, Link quality
      15:09:00.011	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Anzahl Geräte: 11 // davon offline: 4
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      15:10:00.000	info	javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
      

      Gibt es zu dem Thema noch ein weiteres Script?
      Michael

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

      @michihorn
      Du möchtest den Gerätenamen (eine Ordner-Ebene höher) ?

      function offline(id){
          id = id.substring(0, id.lastIndexOf('.'));
          var obj = getObject(id);
          arrOFFLINE.push(obj.common.name);
          if(loggen) log("Gerät: " + obj.common.name);
      }
      

      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
        Du möchtest den Gerätenamen (eine Ordner-Ebene höher) ?

        function offline(id){
            id = id.substring(0, id.lastIndexOf('.'));
            var obj = getObject(id);
            arrOFFLINE.push(obj.common.name);
            if(loggen) log("Gerät: " + obj.common.name);
        }
        
        M Offline
        M Offline
        michihorn
        schrieb am zuletzt editiert von
        #3

        @paul53 sagte in Zigbee Überwachung:

        function offline(id){
        id = id.substring(0, id.lastIndexOf('.'));
        var obj = getObject(id);
        arrOFFLINE.push(obj.common.name);
        if(loggen) log("Gerät: " + obj.common.name);
        }

        Danke genau so...

        1 Antwort Letzte Antwort
        0
        • G Offline
          G Offline
          gosund
          schrieb am zuletzt editiert von gosund
          #4

          @michihorn
          Wieviele und Welche ZigBee-Devices hast Du in Deinem Netz?
          Welchen Zigbee-Adapter (d.h. welche Hardware) verwendest Du?

          Ich hatte mir ein ähnliches Script geschrieben und habe dabei bemerkt, daß z.B. eine meiner Osram smart+ Steckdosen zwar erreichbar ist (d.h. läßt sich schalten), der timestamp der link_quality jedoch seit Tagen unverändert ist.

          arteckA 1 Antwort Letzte Antwort
          0
          • G gosund

            @michihorn
            Wieviele und Welche ZigBee-Devices hast Du in Deinem Netz?
            Welchen Zigbee-Adapter (d.h. welche Hardware) verwendest Du?

            Ich hatte mir ein ähnliches Script geschrieben und habe dabei bemerkt, daß z.B. eine meiner Osram smart+ Steckdosen zwar erreichbar ist (d.h. läßt sich schalten), der timestamp der link_quality jedoch seit Tagen unverändert ist.

            arteckA Offline
            arteckA Offline
            arteck
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @gosund ja die Osram Dosen liefern nicht immer alles..

            zigbee hab ich, zwave auch, nuc's genauso und HA auch

            G 1 Antwort Letzte Antwort
            0
            • arteckA arteck

              @gosund ja die Osram Dosen liefern nicht immer alles..

              G Offline
              G Offline
              gosund
              schrieb am zuletzt editiert von
              #6

              @arteck
              Seltsamer Weise betrifft es nur eine. Und alle sind auf dem gleichen Softwarestand.
              Hast Du eine Idee, wie ich zuverlässig ermitteln kann, ob sie erreichbar ist?
              Ich habe zwei redundante Temperatursensoren im Gartenhaus und will damit bei unter 4°C schalten...

              AsgothianA 1 Antwort Letzte Antwort
              0
              • G gosund

                @arteck
                Seltsamer Weise betrifft es nur eine. Und alle sind auf dem gleichen Softwarestand.
                Hast Du eine Idee, wie ich zuverlässig ermitteln kann, ob sie erreichbar ist?
                Ich habe zwei redundante Temperatursensoren im Gartenhaus und will damit bei unter 4°C schalten...

                AsgothianA Offline
                AsgothianA Offline
                Asgothian
                Developer
                schrieb am zuletzt editiert von
                #7

                @gosund

                Ich kenne genau einen Weg um sicher zu prüfen ob die Steckdose schaltbar ist:

                SetState(„id“, getState(„id“), false)
                Dann schauen ob der State aktualisiert wurde (mit ack) - dann hat die Hardware das schalten bestätigt. Das geht auch wenn der State sich eigentlich nicht verändert hat, da der Adapter auch ein erneutes setzen des gleichen Wertes an das Gerät schickt.

                A.

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                AlCalzoneA 1 Antwort Letzte Antwort
                0
                • AsgothianA Asgothian

                  @gosund

                  Ich kenne genau einen Weg um sicher zu prüfen ob die Steckdose schaltbar ist:

                  SetState(„id“, getState(„id“), false)
                  Dann schauen ob der State aktualisiert wurde (mit ack) - dann hat die Hardware das schalten bestätigt. Das geht auch wenn der State sich eigentlich nicht verändert hat, da der Adapter auch ein erneutes setzen des gleichen Wertes an das Gerät schickt.

                  A.

                  AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #8

                  @Asgothian Aber setzt der Check nicht eine gewisse Wartezeit voraus? Das Kommando muss doch erst vom Gerät bestätigt werden, bevor ein Adapter ack=true setzt.

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  AsgothianA 1 Antwort Letzte Antwort
                  0
                  • AlCalzoneA AlCalzone

                    @Asgothian Aber setzt der Check nicht eine gewisse Wartezeit voraus? Das Kommando muss doch erst vom Gerät bestätigt werden, bevor ein Adapter ack=true setzt.

                    AsgothianA Offline
                    AsgothianA Offline
                    Asgothian
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    @AlCalzone korrekt. Es macht Sinn bei diesem Check 11 Sekunden zu warten bevor geschaut wird. Warum 11 ? 10 Sekunden ist der timeout im zigbee Adapter. Wenn innerhalb der 11 Sekunden nichts kommt kommt nichts mehr.

                    Ich würde den set Befehl per cron regelmässig (1 mal pro 2 Stunden ?) schicken und dann den State normal auf letzte Änderung unabhängig davon prüfen.

                    A.

                    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                    G 1 Antwort Letzte Antwort
                    0
                    • AsgothianA Asgothian

                      @AlCalzone korrekt. Es macht Sinn bei diesem Check 11 Sekunden zu warten bevor geschaut wird. Warum 11 ? 10 Sekunden ist der timeout im zigbee Adapter. Wenn innerhalb der 11 Sekunden nichts kommt kommt nichts mehr.

                      Ich würde den set Befehl per cron regelmässig (1 mal pro 2 Stunden ?) schicken und dann den State normal auf letzte Änderung unabhängig davon prüfen.

                      A.

                      G Offline
                      G Offline
                      gosund
                      schrieb am zuletzt editiert von
                      #10

                      @Asgothian
                      Perfekt, vielen Dank!

                      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

                      591

                      Online

                      32.7k

                      Benutzer

                      82.4k

                      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