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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Script fürTabelle der Batterie Zustände

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

      Hallo zusammen,
      ich habe mir die letzten 200 Posts angeschaut (natürlich auch den 1.). Skript läuft bei mir auf Anhieb.
      Nun stelle ich mich allerdings vermutlich etwas zu blöde an bei der EInbindung in VIS via Widget. Habe jetzt diverse verschiedene ausprobiert...Widget bleibt immer leer O.o
      Datenpunkt lautet bei mir 0_userdata.0.Akkuskript.VISTabelle und icht schön befüllt:

      Kann mir wer die genaue Bezeichnung für ein Widget nennen (kein Material-Design), womit ich die Anzeige in VIS hin bekomme??
      Danke euch und viele Grüße, Thorsten

      PS: HABS, basic string unescaped 🙂

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

        @Kueppert
        Image 1.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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