Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Ausnahmen Zigbeeüberwachung, Namensübermittlung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ausnahmen Zigbeeüberwachung, Namensübermittlung

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sebastian0010 last edited by

      Liebes Forum!

      Ich habe dank eurer Hilfe ein Zigbee-Statusüberwachungsskript zusammengestückelt, welches anhand der Überwachung vom Timestamp von link_quality als Datenpunkt wunderbar funktioniert.
      Jedoch bestehen 2 kleine Probleme:

      • Einerseits habe ich 2 Tradfri-Lampen die via Wandschalter auch immer wieder Stromlos gemacht werden, womit der Timestamp immer wieder auch älter sein kann. Diese Objekte möchte ich im Script ausnehmen. Habe dabei einfach an enum.functions.***** gedacht. Einfach alle zu überwachenden Geräte dort rein und dann eben die entsprechende Funktion überwachen. Leider funktioniert dies allerdings nicht und es werden mir dann mit der Skriptadaptierung im entsprechenden Funktionsordner ***** "0" Objekte angezeigt. Nach längerer Recherche, konnte ich das leider nicht hinbekommen.

      • Im erwähnten Script soll mir der Name der betroffenen Geräte ausgespuckt werden (nach Möglichkeit der vergebene Name wie zB TempsensorBad). Leider wird mir mit meinem Skript als Name immer nur "Link_Quality" übermittelt. Auch hier konnte ich leider keinen passenden Lösungsansatz finden.

      Hat jemand von euch hier Ideen, wie ich das Lösen kann? Wäre euch sehr dankbar.
      Hier mein Skript:

      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();
      
      

      zigbee.0*.link_quality hätte ich bei der enum-Variante zu enum.functions.ORDNERNAME.*.link_quality adaptiert. Leider ohne Erfolg.

      Vielen Dank gleich,
      Liebe Grüße
      Sebastian

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

        @sebastian0010 sagte:

        habe ich 2 Tradfri-Lampen die via Wandschalter auch immer wieder Stromlos gemacht werden

        Die IDs der beiden Lampen kann man ausklammern (richtige IDs einsetzen).

        if(id != 'idLampe1'  && id != 'idLampe2'  && (Date.now() - getState(id).ts) > 3600000) offline(id);
        

        @sebastian0010 sagte in Ausnahmen Zigbeeüberwachung, Namensübermittlung:

        als Name immer nur "Link_Quality" übermittelt

        Wie sind die Namen (z.B. Temperatursensor Bad" zugeordnet ? Screenshot "Objekte" ?

        Sind die Namen eine Ebene über den Datenpunkten zugeordnet, dann versuche es mal so:

        function offline(id) {
            id = id.substring(0, id.lastIndexOf('.'));
            var name = getObject(id).common.name;
            arrOFFLINE.push(name);
            if(loggen) log("Gerät: " + name);
        }
        
        1 Reply Last reply Reply Quote 1
        • S
          sebastian0010 last edited by

          Vielen Dank! 👍
          Genau damit hat es wunderbar funktioniert!
          Aber rein interessehalber:
          Weisst du, wie man statt unter zigbee.0 hier die objekte unter enum.functions.**** einpflegen könnte!

          Liebe Grüße und schönen Sonntag!

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

          Support us

          ioBroker
          Community Adapters
          Donate
          FAQ Cloud / IOT
          HowTo: Node.js-Update
          HowTo: Backup/Restore
          Downloads
          BLOG

          797
          Online

          31.6k
          Users

          79.5k
          Topics

          1.3m
          Posts

          enum.functions objects zigbee zigbee adapter cc2531
          2
          3
          214
          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