Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Hilfe bei Batteriescript

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [gelöst] Hilfe bei Batteriescript

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

      Hi Leute,
      habe eine Frage: Ich nutze unten stehendes Script um meine Batteriestände zu überwachen. Problem ist, dass das für die Comet Thermostate wunderbar funktioniert, aber für die Zigbee Geräte nicht. Die findet er garnicht. Habe das Script selbst geklaut, weil ich keine Ahnung von Javascript habe. Kann mir einer von euch sagen, warum die Zigbee Geräte garnicht erst gefunden werden?

      createState('Batteriescript.Anzahl_Geräte', 0, {type: 'number'});
      createState('Batteriescript.Batterie_schwach', 0, {type: 'number'});
      createState('Batteriescript.Gerät', " ", {type: 'string'});
      
      const fritzdect = $('fritzdect.0.*.battery');
      const zigbee = $('zigbee.0.*.battery');
      const loggen = true;
      
      var arrLOWBAT;
      
      function lowbat(id) {
         var obj = getObject(id);
         arrLOWBAT.push(obj.common.name);
         if(loggen) log("Gerät: " + obj.common.name);
      }
      
      function countLowbat() {
         var moeglicheLOWBAT = 0;
         arrLOWBAT      = [];
         fritzdect.each(function (id, i) {
            if(getState(id).val < 90) lowbat(id);
            ++moeglicheLOWBAT;
         }); 
         zigbee.each(function (id, i) {
            if(getState(id).val < 90) lowbat(id);
            ++moeglicheLOWBAT;
         }); 
      
         if(loggen) log("Text: " + arrLOWBAT.join(', '));
         if(loggen) log("Anzahl Geräte: " + moeglicheLOWBAT + " // davon mit schwacher Batterie: " +  arrLOWBAT.length);
      
         setState("Batteriescript.Gerät",     arrLOWBAT.join(',<br>'));
         setState("Batteriescript.Batterie_schwach",   arrLOWBAT.length);
         setState("Batteriescript.Anzahl_Geräte", moeglicheLOWBAT);
      }
      
      countLowbat();
      
      schedule("*/1 * * * *", countLowbat);
      
      1 Reply Last reply Reply Quote 0
      • v522533
        v522533 last edited by

        vielleicht hilft das, habe ich im anderen Forum gefunden. Weiss nur leider nicht ob, und wie ich das umsetzen kann:

        "Gleiches Problem habe ich auch. Findet irgendwie "Battery" nicht.

        Wenn ich unter zigbee.0. einen "Ordner" als "State" erstelle und darin dann einen Eintrag "Battery", wird der gefunden. Wenn ich den Ordner als "Device" deklariere, wird der Eintrag nicht mehr gefunden.

        Die Sensoren sind aber genau als "Device" angelegt und deshalb werden keine "Battery" Einträge gefunden. Nützt auch nichts, wenn man bei den Sensoren "State" statt "Device" einträgt. 😞

        Hat denn wirklich noch niemand mit Zigbee Stick und Aqara Sensoren ein lauffähiges Batterie Script, wo man nicht jeden Sensor einzeln eintragen muss?

        Bin leider auch kein Javascript Profi."

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

          @v522533 Ändert mal den Typ der Zigbee-Geräte von device in channel. Klappt es dann ?

          1 Reply Last reply Reply Quote 0
          • v522533
            v522533 last edited by

            @paul53 said in Hilfe bei Batteriescript:

            @v522533 Ändert mal den Typ der Zigbee-Geräte von device in channel. Klappt es dann ?

            schon versucht, klappt leider nicht.

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

              @v522533 sagte:

              schon versucht, klappt leider nicht.

              Nach Änderung in channel auch die Javascript-Instanz neu gestartet ? Grund: Der Javascript-Adapter puffert alle Objekte intern.

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

                @paul53

                ja auch gerade getestet. Funktioniert trotzdem nicht.

                1 Reply Last reply Reply Quote 0
                • Lenny.CB
                  Lenny.CB Most Active last edited by

                  @v522533 versuche mal so:

                  $('channel[state.id=zigbee.*.battery]')
                  
                  1 Reply Last reply Reply Quote 0
                  • v522533
                    v522533 last edited by

                    @Lenny-CB said in Hilfe bei Batteriescript:

                    @v522533 versuche mal so:

                    $('channel[state.id=zigbee.*.battery]')
                    

                    Danke das wars!

                    Lenny.CB 1 Reply Last reply Reply Quote 0
                    • Lenny.CB
                      Lenny.CB Most Active @v522533 last edited by

                      @v522533
                      achso, wenn die wie bei mir so bezeichnet sind:
                      zig.PNG
                      dann kannst dein Script noch anpassen damit die Bezeichnungen der Geräte angezeigt werden.

                      function lowbat(id) {
                         var obj = getObject(id);
                          var parentDevicelId = id.split(".").slice(0,-1).join(".");
                          var deviceObject    = getObject(parentDevicelId);
                          arrLOWBAT.push(deviceObject.common.name);
                          if(loggen) log("Gerät: " + deviceObject.common.name);
                      }
                      
                      v522533 1 Reply Last reply Reply Quote 0
                      • v522533
                        v522533 @Lenny.CB last edited by

                        @Lenny-CB

                        vielen Dank. Ich hab schon ewig daran rumprobiert. Wochenende gerettet 😉

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        544
                        Online

                        31.6k
                        Users

                        79.4k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        422
                        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