Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst: Zigbee Überwachung

    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

    Gelöst: Zigbee Überwachung

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      michihorn last edited by 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

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

        @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 1 Reply Last reply Reply Quote 0
        • M
          michihorn @paul53 last edited by

          @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 Reply Last reply Reply Quote 0
          • G
            gosund last edited by 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.

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

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

              G 1 Reply Last reply Reply Quote 0
              • G
                gosund @arteck last edited by

                @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...

                Asgothian 1 Reply Last reply Reply Quote 0
                • Asgothian
                  Asgothian Developer @gosund last edited by

                  @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.

                  AlCalzone 1 Reply Last reply Reply Quote 0
                  • AlCalzone
                    AlCalzone Developer @Asgothian last edited by

                    @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.

                    Asgothian 1 Reply Last reply Reply Quote 0
                    • Asgothian
                      Asgothian Developer @AlCalzone last edited by

                      @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 1 Reply Last reply Reply Quote 0
                      • G
                        gosund @Asgothian last edited by

                        @Asgothian
                        Perfekt, vielen Dank!

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        841
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        javascript
                        6
                        10
                        513
                        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