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.
    • liv-in-sky
      liv-in-sky @Kueppert last edited by liv-in-sky

      @Kueppert

      und das eintragen

      Image 2.png

      datenpunkt in geschweifte klammern setzen

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

        @liv-in-sky hmm, da zeigt er mir nur das an:
        b3539301-7d89-4d05-a179-b5295416d6d3-grafik.png

        liv-in-sky 1 Reply Last reply Reply Quote 0
        • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            877
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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