Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. sebastian0010

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    S
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 16
    • Best 1
    • Groups 1

    sebastian0010

    @sebastian0010

    3
    Reputation
    18
    Profile views
    16
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    sebastian0010 Follow
    Starter

    Best posts made by sebastian0010

    • RE: ZigBee-Geräte überwachen

      Für alle Interessierten:

      Ich konnte mein Problem nun mit folgenden Skriptadaptierungen lösen:

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

      Es werden nun die Geräte gezählt, bei denen der link_quality-Timestamp älter ist als 60 Minuten.

      LG Sebastian

      posted in ioBroker Allgemein
      S
      sebastian0010

    Latest posts made by sebastian0010

    • RE: Skript zur Bewässerung

      @paul53 Genial! Genau damit war es lösbar. Vielen Dank für den Input, das war mir nicht bewusst, dass man es in dieser Form realisieren muss. 👍

      posted in JavaScript
      S
      sebastian0010
    • Skript zur Bewässerung

      Liebe Community,

      habe eine Einsteigerfrage zur Programmierung einer Bewässerung. Habe einen Gardena 6-fach-Verteiler, der mechanisch durch den Wasserdruck von Kreis 1-6 durchschaltet. Davor einen mit Homematic-Schaltaktor mit Gardena-Ventil. Aktuell programmiere ich ein passendes Skript, welches weitgehend bereits funktioniert.

      Allerdings möchte ich mittels Variablen unterschiedliche Dauern für die einzelnen der 6 Kreise festlegen.
      Aktuell habe ich selbiges leider recht umständlich mit einer if-Abfrage gelöst:

      if (getState(actualcircuit).val == 2) {
          Dauer = Kreis2min*60000;
        }
        else if (getState(actualcircuit).val == 3) {
          Dauer = Kreis3min*60000;
        }
        else if (getState(actualcircuit).val == 4) {
          Dauer = Kreis4min*60000;
        }
        else if (getState(actualcircuit).val == 5) {
          Dauer = Kreis5min*60000;
        }
        else if (getState(actualcircuit).val == 6) {
          Dauer = Kreis6min*60000;
        }
        else {
          Dauer = Kreis1min*60000;
        }
      

      Um alles zu vereinfachen, würde ich das ungefähr wie folgt lösen:

      Dauer = Kreis + Wert von actualcircuit + min (Mit zeitlichen Definitionen gibt es die Variablen Kreis1min bis Kreis6min, je nach Wert von actualcircuit, soll die richtige Variable angesprochen werden)

      Mir fehlen leider die Programmierkenntnisse, wie ich das sinnvoll lösen kann.

      Kann mir da evtl. jemand einen Tipp geben?

      Vielen Dank im Voraus,
      LG Sebastian

      Weiss leider nicht, wie man das mit Javascript

      posted in JavaScript
      S
      sebastian0010
    • Yahka - Ausgabe eines Wertes

      Hallo liebe Leute!
      Ich stehe derzeit leider bei einem Problem an:
      Ich habe Homematic IPwired Jalousieaktoren verbaut und möchte diese über Yahka ansteuern. Damit die Lamellenposition und die Behanghöhe weitgehend unabhängig ohne Nachjustieren gesteuert werden können, würde ich gerne den Über Homekit eingegebenen Wert von 0-100% jeweils für Behanghöhe und Lamellenposition als Combined-Wert an den Aktor Übertragen (Folgendes Schema: "L=Wert von 0-100,L2=*fix 100.5). Damit könnte ich immer das jeweils nicht gesteuerte Element ignorieren lassen, womit bei Höhenänderungen des Behangs nicht immer am Ende bezüglich der Lamellenposition nachjustiert wird.
      Danke gleich für Tipps im Voraus,

      Liebe Grüße
      Sebastian

      posted in ioBroker Allgemein
      S
      sebastian0010
    • RE: Zigbee-Überwachung nicht mehr möglich

      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

      posted in JavaScript
      S
      sebastian0010
    • RE: Zigbee-Überwachung nicht mehr möglich

      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

      posted in JavaScript
      S
      sebastian0010
    • RE: Zigbee-Überwachung nicht mehr möglich

      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

      posted in JavaScript
      S
      sebastian0010
    • 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!

      posted in JavaScript
      S
      sebastian0010
    • RE: Ausnahmen Zigbeeüberwachung, Namensübermittlung

      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!

      posted in ioBroker Allgemein
      S
      sebastian0010
    • Ausnahmen Zigbeeüberwachung, Namensübermittlung

      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

      posted in ioBroker Allgemein
      S
      sebastian0010
    • RE: ZigBee-Geräte überwachen

      Für alle Interessierten:

      Ich konnte mein Problem nun mit folgenden Skriptadaptierungen lösen:

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

      Es werden nun die Geräte gezählt, bei denen der link_quality-Timestamp älter ist als 60 Minuten.

      LG Sebastian

      posted in ioBroker Allgemein
      S
      sebastian0010
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo