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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script fürTabelle der Batterie Zustände

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @Kueppert last edited by

      @Kueppert ist so richtig - die anzeige kommt erst in der vis runtime

      1 Reply Last reply Reply Quote 1
      • Homoran
        Homoran Global Moderator Administrators last edited by Homoran

        Ich habe mal wieder ein "Problem".

        inzwischen habe ich es geschafft in einem HM-Wandthermostat, der die Spannung in V anzeigt, die Batterie komplett leer zu bekommen.

        Batterie_wirklich_leer.png

        Jetzt suche ich im Code die Stelle wo warn und ALARM eingestellt werden und finde nur 25/40 (was auch immer) und die bigBattery:

        let HTMLbrandSetting="b"                              // style der geräte marken:  möglich b fett; i kursiv; span normal
        var battAlarm=25;                                     //alarm batterie wert
        var battAlarmWarning=40;                                     //warnungen batterie wert
         
        // ------------------------    hier einstellen, was man für adapter hat - die nicht gebraucht werden auf false setzen !!!
        var tradfri=true;
        var hue=false;
        var hueExt=false;
        var homematic=true;
        var homematicIp=true;
        var xiaomi=false;                                                // mihome.0
        var fritzDect=false;
        var netatmo=false;
        var homee=false;
        var tado=false;
        var zigbee=false;
        var zwave=false;
        var deconz=false;
        var iogo=false;                                                 // iogo - adapter - hat batterie abfrage
        var fullyBrowser=false;                                         // fullybrowser - adapter - hat batterie abfrage
        var handy1=false;                                              // sind einzelne datenpunkte, 
        var handy2=false;
         
        //f          ür spezialisten bei devices mit über 3 volt batterien
        var bigBattAlarm=3.7; var bigBattWarn=4.1; //WICHTIG bei bigAlarm nicht unter 3.3 gehen !!!!!!!!
        

        EDIT:
        sollte es das hier sein????

                       else {
                             if (val1helper<=1.5){
                                if (val1helper<1.1) {val2=symbolKO;json3=symbolKO} else if (val1helper<=1.2 && val1helper>=1.1) 
                                {val2=symbolWARN;json3=symbolWARN} else{val2=symbolOK;json3=symbolOK};
                                if (val1helper<1.1) {val1=(" <font color=\"red\"> ")+val1helper.toFixed(1)+" V";json5="red";json2=val1helper.toFixed(1)+" V"} else if (val1helper<=1.2 && val1helper>=1.1) 
                                   {val1=(" <font color=\"yellow\"> ")+val1helper.toFixed(1)+" V";json5="yellow";json2=val1helper.toFixed(1)+" V"} else{val1=(" <font color=\"lightgreen\"> ")+val1helper.toFixed(1)+" V";json5="lightgreen";json2=val1helper.toFixed(1)+" V"};
                                 json3_1=Math.abs((val1helper-1.1)/((1.5-1.1))*100)
                                if (val1helper<1.1) AkkuAlarm.push(1);
                                if (val1helper<1.1)  alarmMessage.push(val0)
         
                             } else {        
                                if (val1helper<2.2) {val2=symbolKO;json3=symbolKO} else if (val1helper<=2.5 && val1helper>=2.2) 
                                {val2=symbolWARN;json3=symbolWARN} else{val2=symbolOK;json3=symbolOK};
                                if (val1helper<2.2) {val1=(" <font color=\"red\"> ")+val1helper.toFixed(1)+" V";json5="red";json2=val1helper.toFixed(1)+" V"} else if (val1helper<=2.5 && val1helper>=2.2) 
                                   {val1=(" <font color=\"yellow\"> ")+val1helper.toFixed(1)+" V";json5="yellow";json2=val1helper.toFixed(1)+" V"} else{val1=(" <font color=\"lightgreen\"> ")+val1helper.toFixed(1)+" V";json5="lightgreen";json2=val1helper.toFixed(1)+" V"};
                                json3_1=Math.abs((val1helper-2.2)/((3-2.2))*100)
                                if (val1helper<2.2) AkkuAlarm.push(1);
                                if (val1helper<2.2)  alarmMessage.push(val0);}}
        
        liv-in-sky 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @Homoran last edited by

          @Homoran
          soweit ich mich erinnere:
          ich habe das nach deinen vorgaben programmiert - daher kann man das nicht oben einstellen - es ist ja nicht richtig linear

          dein letzter code im post soll das machen für 3 verschiedene battery typen 1,5 und 3 und 5V

          wenn die daten falsch sind, bitte bescheid geben - damit ich das ändern kann

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @liv-in-sky last edited by

            @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

            soweit ich mich erinnere:
            ich habe das nach deinen vorgaben programmiert

            du erinnerst dich richtig!
            Das wollten wir mit dem jetzigen Wert erst mal testen - was ich hiermit getan habe.

            @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

            wenn die daten falsch sind, bitte bescheid geben

            Bescheid 😉

            @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

            damit ich das ändern kann

            wollte ich aber vorher testen.

            In diesem Fall ist es ein Gerät mit 2x1,5V (also 3V Nennspannung), das bei/nach 2,3V schon wirklich leer ist.
            die ALARM-schwelle sollte also mindestens 2.3 ggf. sogar schon 2.4V sein.

            sollte es das hier sein if (val1helper<2.2) {val2=symbolKO;json3=symbolKO} else if (val1helper<=2.5 && val1helper>=2.2) würde ich das mal auf eigen Faust erst mal bei mir testen

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

              @Homoran ich denke du bist da schon an der richtigen stelle - aber wahrscheinlich mußt du auch die zeilen darunter noch anpassen

              über all - im block - wo 2.2 steht tauschen mit neuem wert
              wenn du den 2.5 änderst gilt das auch

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @liv-in-sky last edited by

                @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                über all - im block - wo 2.2 steht tauschen mit neuem wert

                klar!
                habe das jetzt mal auf 2.3 gesetzt. Muss jetzt irgendwie die Batterien etwas wiederbeleben um zu testen, eine will gar nicht mehr.

                2.5 muss ich nicht ändern (denke ich), die war ewig lange auf gelb

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

                  @Homoran kann dich da eigentlich garnicht unterstützen - ich warte, bis du die daten hast und ich sie im template (script) eingeben kann

                  Homoran 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @liv-in-sky last edited by

                    @liv-in-sky War auch nur zu Info und genau so geplant 😉

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @liv-in-sky last edited by Homoran

                      @liv-in-sky
                      So habe es getestet.
                      Man sollte allerdings auch lesen was man da ändert.
                      <2.2 auf <2.3 zu ändern bringt nichts wenn bei 2.3V das Gerät irgendwann nicht mehr sendet.
                      Wenn es bei 2.3V auf rot gehen soll muss da natürlich <2.4 stehen!!!! das müsste (nach meinen bisherigen Erfahrungen durchaus reichen)

                      Batterie_wirklich_leer02.png

                      Der obere Wert, bevor es auf gelb geht ist mit < = 2.5V dann auch in Ordnung

                      1 Reply Last reply Reply Quote 0
                      • K
                        Kueppert last edited by

                        Hi, ich hab mal noch ne Frage zum Umstyling der Tabelle. Kann ich irgendwo die Farbe der Werte verändern? Hab den Hintergrund auf meine VIS angepasst, alles andere auch soweit...nur die Zahlen-Farbe hab ich nicht gefunden:
                        9201af81-cd1e-4948-8196-2db84cf06e1d-grafik.png
                        Bestimmt simpel - für jemanden der weiß, wo es steht ^^
                        DAnke euch und vG, Thorsten

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

                          @Kueppert

                          in dieser zeile

                          Image 2.png

                          1 Reply Last reply Reply Quote 1
                          • C
                            cybertron last edited by

                            Ich habe gerade versucht, mittels des Filter-Arrays, mir die Tabellen nach räumlichen Bereichen aufzubauen.
                            Dabei muss ich im größten Bereich knapp 130 Geräte per Filter ausschliessen.
                            Aber irgenwie sind in jeder Tabelle dann trotzdem jede Menge Geräte enthalten, die dort eigentlich nicht reingehören.

                            Gibt es eventuell eine Begrenzung für den Filter?
                            Wir händelt ihr dass?

                            Gruss
                            Silvio

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

                              @cybertron ein bischen mehr info bitte

                              bei 130 ausgeschlossenen geräten ! wieviele sensoren hast du den gesamt mit batterien verbaut
                              was meinst du mit aufgeteilt in räumliche bereiche ?
                              mach doch mal ein bild von der tabelle

                              1 Reply Last reply Reply Quote 0
                              • C
                                cybertron last edited by

                                Ich habe die Geräte, die hier im Haus sind nicht genau gezälhlt.
                                Der Scriptparser sagt "840 Kanäle und 3593 Datenpunkte in 230 Geräten:".
                                Es gibt ja auch jede Menge Geräte, welche zwar reine 230V-Geräte sind, und trotzdem in ihren Datenpunkten das "LOWBAT" drin haben. z.B. der HM-LC-SW1-FM ,der HM-LC-SW2-FM oder der HM-LC-RGBW-WM.

                                Auf Grund der Menge der Geräte, die hier verbaut sind, war mein Gedanke, eine Tabelle für das Obergeschoss, eine fürs Erdgeschoss, eine für den Aussenbereich, eine für Keller und Büro's und eine für zentrale Dinge wie Keymatic, Schlüssel usw.
                                Wenn ich in jeder Tabelle, also in jedem dafür laufenden Script, die Geräte der anderen Bereiche, sowie die Geräte, die eigentlich gar keine Batterie haben, per Filter ausklammere, sollte ich ja nur noch die sehen, die wirklich in dieser Zone sind und batteriebetrieben sind.
                                Im Bild sieht man recht gut, dass der Filter nur bedingt greift.
                                Im EG werden rund 120 Geräte per Filter ausgeschlossen. Wirklich gefilter werden aber nur ca 100.
                                u.a tauchen Geräte aus dem 1.OG auf oder die RGBW, welche alle im Filter mit drin sind.

                                Tabelle Batterie.png

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

                                  @cybertron ok

                                  mit sowas habe ich nicht gerechnet 🙂 - es gibt wohl noch ein script für batterie zustände, die mit räumen arbeitet - ich kenne das nicht aber evtl mußt du dieses nehmen: https://forum.iobroker.net/topic/31676/vorlage-generische-batteriestandsüberwachung-vis-ausgabe

                                  das filtern müßte ich mir etwas näher ansehen - gibt es die möglichkeit für anydesk auf deinen rechner ?
                                  ich habe im script nur gesehen, dass es für homeatic ip mit den "lowBat" datenpunkten keine filterung gibt - habe ich wohl vergessen

                                  wir müßten mal auf deinem rechner das log enablen damit ich mal rausfinden kann, warum nicht gefiltert wird - evtl hat es auch mit der namensgebung etwas zu tun

                                  also wenn interesse dann sende mir über chat deine anydesk nummer und wir telefonieren mal
                                  du könntest mir auch mal das filterarray posten - damit ich mal drüberschaue

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    Nordischerjung last edited by Nordischerjung

                                    @liv-in-sky
                                    Moin,

                                    ich hab das Script ja nun schon ne weile laufen. bisher ohne Probleme. Nun habe ich einen neuen Hue Outdoor Bewegungsmelder. Seid ich diesen intergriert habe, kommen folgende Fehler im Log

                                    javascript.1	2020-05-22 22:49:40.023	error	(8655) at tryOnTimeout (timers.js:300:5)
                                    javascript.1	2020-05-22 22:49:40.022	error	(8655) at ontimeout (timers.js:436:11)
                                    javascript.1	2020-05-22 22:49:40.022	error	(8655) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                                    javascript.1	2020-05-22 22:49:40.021	error	(8655) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                                    javascript.1	2020-05-22 22:49:40.021	error	(8655) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                                    javascript.1	2020-05-22 22:49:40.021	error	(8655) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1270:34)
                                    javascript.1	2020-05-22 22:49:40.020	error	(8655) at Object.<anonymous> (script.js.Battery_Anzeige_VIS:1187:1)
                                    javascript.1	2020-05-22 22:49:40.020	error	(8655) at writeHTML (script.js.Battery_Anzeige_VIS:399:22)
                                    javascript.1	2020-05-22 22:49:40.019	error	(8655) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:796:29)
                                    javascript.1	2020-05-22 22:49:40.018	error	(8655) at script.js.Battery_Anzeige_VIS:406:67
                                    javascript.1	2020-05-22 22:49:40.017	error	(8655) Error in callback: TypeError: Cannot read property 'common' of null
                                    javascript.1	2020-05-22 22:49:40.015	warn	(8655) Object "hue.0.Philips_hue.Hue_outdoor_temp" does not exist
                                    javascript.1	2020-05-22 22:49:25.636	error	(8655) at Script.runInContext (vm.js:133:20)
                                    javascript.1	2020-05-22 22:49:25.636	error	(8655) at script.js.Battery_Anzeige_VIS:1190:1
                                    javascript.1	2020-05-22 22:49:25.635	error	(8655) at writeHTML (script.js.Battery_Anzeige_VIS:399:22)
                                    javascript.1	2020-05-22 22:49:25.635	error	(8655) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:796:29)
                                    javascript.1	2020-05-22 22:49:25.635	error	(8655) at script.js.Battery_Anzeige_VIS:406:67
                                    javascript.1	2020-05-22 22:49:25.635	error	(8655) TypeError: Cannot read property 'common' of null
                                    javascript.1	2020-05-22 22:49:25.635	error	(8655) ^
                                    javascript.1	2020-05-22 22:49:25.635	error	(8655) val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name ; val0=val0.replace(/.battery$/,""); val0=val0.replace("Philips_hue.",""); val0=val0.replace(/_/g," ");
                                    javascript.1	2020-05-22 22:49:25.634	error	(8655) script.js.Battery_Anzeige_VIS: script.js.Battery_Anzeige_VIS:406
                                    javascript.1	2020-05-22 22:49:25.633	warn	(8655) Object "hue.0.Philips_hue.Hue_outdoor_temp" does not exist
                                    javascript.1	2020-05-22 22:49:25.612	info	(8655) Start javascript script.js.Battery_Anzeige_VIS
                                    

                                    Warum ist das so? Das geht erst weg, wenn ich hue au false im script setze

                                    edit: setze ich hueext true, dann geht es. Da wird der BWM auch angezeigt. Dann mache ich es halt über den Weg.

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

                                      @Nordischerjung leider habe ich keine hue oder hue-ext sensoren - daher kann ich im moment nur in meiner testumgebung testen und da funktioniert es

                                      Image 1.png

                                      du kannst ja mal einen json export des sensors machen und die datei hier einstellen - dann importiere ich das mal

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

                                        @Nordischerjung hab das nochmal bei mir angesehen - ein normale hue sensor kann eigentlich nicht als hue-ext sensor im script erkannt werden. die datenpunkte sind völlig anders aufgebaut

                                        hue-ext:

                                        hue-extended.0.sensors.012-hue_temperature_sensor_1.config.battery
                                        

                                        hue:

                                        hue.0.Philips_hue.BueroTaster.battery
                                        

                                        kann es sein, dass entweder der battery wert keinen inhalt hat oder das deine datenpunkte anders aufgebaut sind ?hast du hue und hue-ext sensoren ? am besten mache einen json export von allen deinen hue und/oder hue-ext. datenpunkten

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

                                          @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                                          @Nordischerjung hab das nochmal bei mir angesehen - ein normale hue sensor kann eigentlich nicht als hue-ext sensor im script erkannt werden. die datenpunkte sind völlig anders aufgebaut

                                          hue-ext:

                                          hue-extended.0.sensors.012-hue_temperature_sensor_1.config.battery
                                          

                                          hue:

                                          hue.0.Philips_hue.BueroTaster.battery
                                          

                                          kann es sein, dass entweder der battery wert keinen inhalt hat oder das deine datenpunkte anders aufgebaut sind ?hast du hue und hue-ext sensoren ? am besten mache einen json export von allen deinen hue und/oder hue-ext. datenpunkten

                                          Moin, der hue-ext adapter ist doch wie der hue adapter, Da gibt es doch keine extra Sensoren für, oder hab ich das falsch verstanden? Ich hatte den damals installiert, da ich damit die Szenen auslesen und steuern konnte ( kann auch sein, dass es beim hue auch möglich war hatte ich nicht gesehen, egal). Es steht bei beiden Adaptern in battery 100% drin. JSON kann ich erst heute abend machen, bin unterwegs.

                                          1 Reply Last reply Reply Quote 0
                                          • Stephan Schleich
                                            Stephan Schleich last edited by

                                            @liv-in-sky wäre es noch möglich eine HTML Tabelle mit zur Verfügung zu stellen? Damit könnte man dann die Werte via Telegram anzeigen lassen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            904
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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