NEWS

Zigbee-Überwachung nicht mehr möglich


  • Liebe Leute,

    ich habe nach einem iobroker-Umzug auf den Raspi4 leider ein Problem. Insgesamt habe ich jetzt wohl teilweise neuere Adapterversionen, weshalb mein Skript, welches zuvor problemlos funktioniert hat, nun nicht mehr geht. Es handelt sich um ein Script zur Überwachung der Zigbeegeräte, ob diese online sind.
    Leider erkennt das Skript weder die aktiven, noch die inaktiven Geräte. Zuvor wurden entsprechend dem Skript alle Geräte gezählt und dann die offline-Geräte angezeigt.

    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){
        id = id.substring(0, id.lastIndexOf('.'));
        var name = getObject(id).common.name;
        arrOFFLINE.push(name);
        if(loggen) log("Gerät: " + name);
    }
    
    function countOffline() {
       var moeglicheOFFLINE = 0;
       arrOFFLINE =[];
       zigbee.each(function (id, i){
       if(id != 'zigbee.0.90fdxxxxxxxxxxxxd.link_quality' && id != 'zigbee.0.90fdxxxxxxxxxx.link_quality' && Math.round((Date.now() - 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();
    
    schedule("0 */2 * * *", countOffline);
    

    Kann mir hier jemand weiterhelfen?
    Zigbee-V.: 0.10.2
    JS/Blockly 4.1.12
    js-controller 2.1.1

    Liebe Grüße und vielen Dank gleich mal!


  • sebastian0010
    Funktioniert der $Selector ? Bitte in einem Testskript testen:

    $('zigbee.0*.link_quality').each(function(id, i) {log(id);});
    

  • Es scheint nicht so:
    script.js.x.Test: registered 0 subscriptions and 0 schedules
    Woran könnte das liegen?

    Unter den Objekten habe ich zigbee.0 so vorliegen und link_quality haben auch alle Zigbeeobjekte.

    Danke und LG
    Sebastian


  • sebastian0010 sagte:

    JS/Blockly 4.1.12
    js-controller 2.1.1

    Vielleicht macht diese Kombination Probleme ? Versuche es mal mit einem JS-Adapter aus latest (4.3.4).


  • Vielen Dank für den Hinweis, das Skript funktioniert jetzt wieder.
    Allerdings kommt es jetzt im Skript zu fehlern:
    20:08:22.702 warn javascript.0 (1600) at script.js.Ueberwachen.Zigbeestatus:29:141
    20:08:22.703 warn javascript.0 (1600) at countOffline (script.js.Ueberwachen.Zigbeestatus:28:11)
    20:08:22.704 warn javascript.0 (1600) at script.js.Ueberwachen.Zigbeestatus:42:1

    Diese hatte ich zuletzt nicht. Hast du da auch noch eine Idee?

    LG und vielen herzlichen Dank!
    Sebastian


  • sebastian0010
    Dein Skript oben hat keine 42 Zeilen. Somit kann ich mit den Warnungen nichts anfangen. Im Reiter "Log" gibt es weitere Informationen zu den Warnungen.


  • Sorry richtig, habe vorhin den ausgeklammerten Teil weggenommen.
    Danke dir für die Infos! Werde versuchen das noch ausfindig zu machen!
    LG und gute Nacht!
    Sebastian

Suggested Topics

1.7k
Online

34.7k
Users

40.8k
Topics

559.2k
Posts