Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Script fürTabelle der Batterie Zustände

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Script fürTabelle der Batterie Zustände

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

      Moin, erstmal Danke für deine Arbeit, hat mir ne menge Zeit gespart.
      Ich hätte allerdings noch ein Hersteller/Gerät was noch nicht unterstützt ist und zwar Shelly. Die Batteriegeräte melden nämlich auch ihren Batteriestand.
      Screenshot 2021-02-07 184315.png

      Hoffe du kannst da was machen 🙂

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @Marco Laser last edited by liv-in-sky

        @marco-laser teste mal das und bitte ein feedback - ist noch nicht im ersten post - erst nach postiven feedback

        Batterien-script-7.2.-21.txt

        du musst shelly auf true setzen

        Marco Laser E 2 Replies Last reply Reply Quote 0
        • Marco Laser
          Marco Laser @liv-in-sky last edited by

          @liv-in-sky Klappt, besten Dank für die super schnelle Antwort 👍

          hanan 1 Reply Last reply Reply Quote 0
          • hanan
            hanan @Marco Laser last edited by

            Hallo zusammen
            Ich habe mal das Skript kopiert und die entsprechenden Datenpunkte angelegt.
            Leider erhalte ich Fehlermeldungen:

            javascript.1	2021-02-14 08:21:39.079	error	(27755) at processTicksAndRejections (internal/process/task_queues.js:97:5)
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at runMicrotasks (<anonymous>)
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1140:17
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1559:17
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1503:37)
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1280:28)
            javascript.1	2021-02-14 08:21:39.079	error	(27755) at Object.createScript (vm.js:261:10)
            javascript.1	2021-02-14 08:21:39.078	error	(27755) at new Script (vm.js:88:7)
            javascript.1	2021-02-14 08:21:39.078	error	(27755) SyntaxError: Missing initializer in const declaration
            javascript.1	2021-02-14 08:21:39.078	error	(27755) ^^^^^^^^^^^^^^
            javascript.1	2021-02-14 08:21:39.078	error	(27755) const UeberSchriftHöhe="35"; //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
            javascript.1	2021-02-14 08:21:39.078	error	(27755) script.js.common.Batterien_Zustand compile failed: at script.js.common.Batterien_Zustand:80
            

            Hat mir bitte jemand einen Tipp was ich falsch mache.

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @hanan last edited by

              @hanan hallo,

              was steht den in zeile 80 ?

              hanan 1 Reply Last reply Reply Quote 0
              • hanan
                hanan @liv-in-sky last edited by

                @liv-in-sky

                Da steht:

                const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
                
                

                Hat das vielleicht mit der Übersetzung zu tun?

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @hanan last edited by

                  @hanan

                  probier mal damit - normalerweise nutze ich keine umlaute in scripts - hab ich wohl übersehen im eifer des ....
                  Batterien-script-14.2.-21.txt

                  hanan 1 Reply Last reply Reply Quote 0
                  • hanan
                    hanan @liv-in-sky last edited by

                    @liv-in-sky

                    Jep, passt. Lief durch ohne Fehler und hat sieben schwache Meldungen ausgegeben.

                    Ich habe bei den Zigbee einige Tadfri installiert, welche bei 60% AkkuAlarm auslösen.
                    Müssten diese nicht erst unter 40% auslösen?

                    var battAlarm=25;                                     //alarm batterie wert
                    var battAlarmWarning=40;                                     //warnungen batterie wert
                    
                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @hanan last edited by

                      @hanan kannst du nach belieben einstellen

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

                        Ja, aber der Alarmwert steht ja im Skript auf 25% und das Gerät hat 60%.
                        Ich habe auch ein HMIP welches mit angezeigt wird obschon der "indicator.lowbat" auf false steht.

                        Oder verstehe ich etwas falsch?

                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @hanan last edited by liv-in-sky

                          @hanan bin mir nicht sicher, ob ich folgen kann

                          wenn dort im datenpunkt 60 steht und im script als alarm 25 und warning 40 ist das gerät für das script grün !

                          zeig doch mal deine tabelle und den datenpunkt dazu

                          hanan 1 Reply Last reply Reply Quote 0
                          • hanan
                            hanan @liv-in-sky last edited by

                            @liv-in-sky
                            Ups, beim Zigbee stimmt es, habe mich um ein Device vertan und beim HMIP wird die Voltzahl, welche bei 2.3V steht, deklariert, daher die Meldung.

                            Alles iO und eine super Arbeit.
                            Besten Dank für die Hilfe, muss nur noch die Status-Icons einpflegen.

                            1 Reply Last reply Reply Quote 1
                            • K
                              Katzenbeißer last edited by

                              Hallo Zusammen,
                              irgendwie hakt es....
                              Ich habe die Datenpunkte angelegt, Fehler werden im Script nicht angezeigt...
                              Gibt es ein Miniscript zum automatischen Anlegen der Datenpunkte?

                              Besten Dank für eure Hilfe

                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @Katzenbeißer last edited by liv-in-sky

                                @katzenbeißer steht den was drin im datenpunkt ? dpVIS

                                und hast du die devices, die du haben willst, auch auf true gesetzt

                                was wird in der vis angezeigt

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  Katzenbeißer @liv-in-sky last edited by

                                  @liv-in-sky "true" war das Zauberwort!!!!
                                  Besten Dank

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

                                    Hallo @liv-in-sky ,

                                    ich hätte ne Anregung für neue Devices..

                                    Ich betreibe hier über den ble Adapter mehrere Sensoren für Temperatur/Luftfeuchtigkeit von Xiaomi..

                                    222.JPG

                                    Diese haben in einem State "battery" den Ladezustand in % angegeben.

                                    111.JPG

                                    Als Name taucht dort bei allen erstmal nur "MJ_HT_V1" auf, ich habe diesen dann jeweils im Objektbaum um eine Identifikation erweitert (z.B. MJ_HT_V1 Küche). Im angehängten Skript entferne ich dann einfach das "MJ_HT_V1".

                                    Ich hab dein Skript bei mir mal erweitert, wenn du magst, kannst du es ja übernehmen:

                                    ...
                                    var ble=true;
                                    ...
                                    
                                    //ble
                                     if (ble){
                                                  tabelleMachSchoen()
                                                  counter=-1
                                                  for(var i=0;i<mehrfachTabelle;i++ ) {
                                                    val0=""; val1=""; val2="";counter++;tabelleBind();
                                                  }
                                                   
                                                  for(var i=0;i<mehrfachTabelle;i++ ) {
                                                      if(i==0){val0="<font color=\""+htmlColorDeviceUeberschrift+"\"><"+HTMLbrandSetting+">BLE DEVICES</b>";} else{val0=""; }
                                                       val1=""; val2="";counter++;tabelleBind();
                                                  } 
                                         
                                    
                                        myObjF=[]; 
                                    $('ble.*.*.battery').each(function(id, i) {           // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!
                                      
                                       if (!filterArray.includes(id)){
                                            var ida = id.split('.');
                                           
                                            
                                             // counter++; 
                                               val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ; val0=val0.replace(/.battery$/,""); val0=val0.replace("MJ_HT_V1 ",""); val0=val0.replace(/_/g," ");                                       // SEHR WICHTIG - MUSS IN JEDER SCHLEIFE INTEGRIERT SEIN
                                               json1=val0;
                                               json3_1=val1help=parseFloat((getState(id).val));
                                               if (val1help<=battAlarm) {val1=(" <font color=\"red\"> ")+val1help.toString()+" %";json2=val1help.toString()+" %";json5="red"} else{val1=(" <font color=\"lightgreen\"> ")+val1help.toString()+" %";json2=val1help.toString()+" %",json5="green"}  
                                               if (val1help>battAlarm && val1help<=battAlarmWarning) {val1=(" <font color=\"yellow\"> ")+val1help.toString()+" %";json2=val1help.toString()+" %";json5="yellow"}
                                               if (getState(id).val==null) {val2="never used"}; //log(id)}; 
                                               if (val1help<=battAlarm) {val2=symbolKO} else{val2=symbolOK}         
                                               if (val1help>battAlarm && val1help<=battAlarmWarning) val2=symbolWARN;
                                             
                                               if (val1help<=battAlarm) AkkuAlarm.push(1);
                                               if (val1help<=battAlarm)  alarmMessage.push(val0);
                                               json3=val2;
                                                json6="BLE"
                                                 if (braucheMaterialDesignWidget || braucheMaterialDesignWidgetTable) {
                                                  json4=json4=pfadBilderMaterialWidget+"xiaomki.png"
                                                  makeJsonWidget(json1,json2,json3,json4,json5,json6,json3_1);}
                                               let help=[val0,val1,val2]; myObjF.push(help);
                                       
                                         //tabelleBind(); //HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
                                     
                                     } }); sortierMal(myObjF);
                                    
                                      }  //ende ble
                                    


                                    Unten ist noch ein png für die Verwendung MaterialDesignWidget angegeben. Da ich das bisher nicht verwende und nicht weiß was es da alles gibt, oder ob du die erstellst, habe ich einfach xiaomki.png angegeben. Vielleicht passt das ja direkt 😁

                                    Vielen Dank dir für das Skript, ich hab bei mir mehrere Kategorien aktiviert und das ist echt ne große Hilfe! 🍻

                                    liv-in-sky 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @SpikeNbg last edited by

                                      @spikenbg
                                      danke dir
                                      hatte ich gestern erst drüber nachgedacht - nutze die rechteckigen 🙂

                                      schau ich mir mal an

                                      habe ein eigenes script dafür - aber die sollten schnell eingebunden sein - das problem ist nur, dass es keinen standard für die dp gibt - d.h. die sind immer/meist verschieden pro user

                                      Image 4.png

                                      ich sehe geade , du nutzt den ble , da sind die dp gleich - ich nutze einen esp mit esphome als basis - da definiert man die mqtt selbst - es gib aber einen esphome adapter - dann sollen die dp auch wieder gleich sein

                                      SpikeNbg K 2 Replies Last reply Reply Quote 0
                                      • SpikeNbg
                                        SpikeNbg @liv-in-sky last edited by

                                        @liv-in-sky
                                        Gerne.. 🙂

                                        esphome kannte ich noch nicht.. Mit den Dingern wollte ich auch schon länger mal spielen.. 🙂 Und wieder ein Zeitvertreib für die nächsten Wochenenden 😁

                                        liv-in-sky 1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @SpikeNbg last edited by

                                          @spikenbg schreckte mich anfangs irgendwie ab - aber wenn man mal einen am laufen hat, ist es es super praktisch, die settings zu ändern und die möglichkeiten sind auch "grenzenlos"

                                          1 Reply Last reply Reply Quote 0
                                          • K
                                            Kueppert @liv-in-sky last edited by

                                            @liv-in-sky puuuuh, im Büro hasts aber arsch kalt bei dir - und im Keller O.o

                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            537
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring template
                                            67
                                            1379
                                            350494
                                            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