Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pittini Developer @daNick last edited by

      @daNick sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

      @Pittini

      OK, danke.

      1. Nochmal zu HomeMatic LowBat/ Low_Bat:
        Es kann also der Datenpunkt in eine BELIEBIGE Funktionsgruppe, das Script ignoriert den Spannungs-Wert aus dem Namen der Gruppe, wenn der Datenpunkt boolean ist?
        ob die Gruppe (/z.b) ..._15 oder ..._150 heißt, ist ganz egal?

      Nein, Du denkst zu kompliziert. Das Gerät hat physikalisch irgendeine Batterie drin, die hat ne Sollspannung, und die gibst Du an, z.B. "BatterieSpannung_30" für 3 Volt Knopfzelle. Alles andere macht das Skript intern, es schaut erst mal ob ne Zahl drinsteht und wenn nicht, dann guggt es nach nem Bool. Dann legt es anhand der Sollspannung der Batterie, eben bei true/false, 0V/3V an.

      1. Ich habe Zigbee-Sensoren, die NUR Batterie-Prozent liefern, aber keinen Spannungswert.
        Auch die können in eine beliebige Funktionsgruppe?

      Hier gilt das gleiche wie oben, es muß die RICHTIGE Spannung für dieses Gerät angegeben sein, dass da Prozent kommen erkennt das Skript wiederum automatisch weil dann % als Einheit im Datenpunkt stehen.

      1. Ginge es, zur Wahrung der Übersichtlichekit Funktionsgruppen zu erstellen, die "BatterieSpannung_Prozent" und "BatterieSpannung_Boolean" heißen, oder käme dann (kurz- oder langfristig) etwas durcheinander?

      Wäre vollkommen sinnfrei, wie will ich was berechnen wenn ich keine Sollwerte hab?

      P 1 Reply Last reply Reply Quote 0
      • O
        Olli77 @Pittini last edited by

        @Pittini

        danke das war es! Nur weil ich Batteriespannung und nicht BatterieSpannung geschrieben habe, kam der fehler. Nun nach Änderung geht es ohne Fehler.

        Eine Frage habe ich aber nicht

        Ich halte die Batteriemin. Wert für etwas hoch.....Kann ich das einfach ändern und wenn ja bis wie weit macht es sinn?

        Ist es ausserdem normal das das alles "Rot" ist?
        xx.JPG

        P 1 Reply Last reply Reply Quote 0
        • P
          Pittini Developer @Olli77 last edited by

          @Olli77 sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

          Ich halte die Batteriemin. Wert für etwas hoch.....Kann ich das einfach ändern und wenn ja bis wie weit macht es sinn?

          Ja, kannste ändern, inwieweit kann ich nicht sagen is auch bisserl von den Geräten abhängig. Am besten mal warten bis ein Device leer ist und nimmer aktualisiert, dann siehste ja am letzten Wert bei welcher Spannung es ausgestiegen ist.
          Aber grundsätzlich is der Wert eher zu niedrig als zu hoch, ich hab bei mir 2,64V als Limit

          Ist es ausserdem normal das das alles "Rot" ist?

          Ja

          O 1 Reply Last reply Reply Quote 0
          • O
            Olli77 @Pittini last edited by

            @Pittini said in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

            @Olli77 sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

            Ich halte die Batteriemin. Wert für etwas hoch.....Kann ich das einfach ändern und wenn ja bis wie weit macht es sinn?

            Ja, kannste ändern, inwieweit kann ich nicht sagen is auch bisserl von den Geräten abhängig. Am besten mal warten bis ein Device leer ist und nimmer aktualisiert, dann siehste ja am letzten Wert bei welcher Spannung es ausgestiegen ist.
            Aber grundsätzlich is der Wert eher zu niedrig als zu hoch, ich hab bei mir 2,64V als Limit

            Ist es ausserdem normal das das alles "Rot" ist?

            Ja

            ok danke für die hilfe

            1 Reply Last reply Reply Quote 0
            • A
              Andi Luma @Pittini last edited by Andi Luma

              @Pittini Hallo , erstmal Danke für das Script. Kann es sein das hier die downloadbaren Versionen irgendwie auseinander gelaufen sind , auf der Github Seite gibt es im Changelog die Version 1.63 und als neueste die 1.65, der Download von dort liefert aber heute Morgen // Batterieüberwachungsskript Version 1.6.4 Stand 18.06.2020 - Git: https://github.com/Pittini/iobroker-Batterienauswertung. Bei mir werden dann die MAX! Sensoren, die nur true / false liefern e34f196f-ec88-456e-965c-00904d17cee7-image.png
              mit der Funktion BatterieSpannung_ ergibt es so ein Bild 1ac74e45-73e6-46ca-babe-ffffa16910ef-image.png
              oder muss hier eine andere Funktion/ Aufzählung gewählt werden ? , was ich irgendwo überlesen habe

              P 1 Reply Last reply Reply Quote 0
              • P
                Pittini Developer @Andi Luma last edited by

                @Andi-Luma sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                @Pittini Hallo , erstmal Danke für das Script. Kann es sein das hier die downloadbaren Versionen irgendwie auseinander gelaufen sind , auf der Github Seite gibt es im Changelog die Version 1.63 und als neueste die 1.65, der Download von dort liefert aber heute Morgen // Batterieüberwachungsskript Version 1.6.4 Stand 18.06.2020 - Git: https://github.com/Pittini/iobroker-Batterienauswertung.

                Kann schon mal vorkommen dass ich vergess iwo die Version zu aktualisieren, einfach immerdie höchste nehmen und gut.

                Bei mir werden dann die MAX! Sensoren, die nur true / false liefern
                mit der Funktion BatterieSpannung_ ergibt es so ein Bild 1ac74e45-73e6-46ca-babe-ffffa16910ef-image.png
                oder muss hier eine andere Funktion/ Aufzählung gewählt werden ? , was ich irgendwo überlesen habe

                Du hast das grundlegendste weggelassen. Anleitung .1

                E 1 Reply Last reply Reply Quote 0
                • E
                  Elektronikwelt @Pittini last edited by

                  @Pittini Hallo wie kann ich mehrere verschiedene Batteriespannungen "BatterieSpannung_30" und BatterieSpannung_15 mit einem Skript abrufen.
                  wie muss ich das in der
                  const FunktionBaseName = "BatterieSpannung_30"; eintragen, mit Komma getrennt?
                  Bin in Javascript nicht so fit.

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    Pittini Developer @Elektronikwelt last edited by Pittini

                    @Elektronikwelt sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                    @Pittini Hallo wie kann ich mehrere verschiedene Batteriespannungen "BatterieSpannung_30" und BatterieSpannung_15 mit einem Skript abrufen.
                    wie muss ich das in der
                    const FunktionBaseName = "BatterieSpannung_30"; eintragen, mit Komma getrennt?
                    Bin in Javascript nicht so fit.

                    Den FunktionBaseName nicht ändern, vorallem nicht hinter dem Unterstrich. Die verschiedenen Spannungen erkennt das Skript automatisch, du willst da mehr tun als nötig.

                    E 1 Reply Last reply Reply Quote 0
                    • E
                      Elektronikwelt @Pittini last edited by

                      @Pittini Danke. Es funktioniert.

                      E 1 Reply Last reply Reply Quote 0
                      • sigi234
                        sigi234 Forum Testing Most Active @Pittini last edited by sigi234

                        @Pittini

                        Hallo, warum sind fast alle Tod?

                        Screenshot (2558).png

                        22:49:13.027	info	javascript.0 (8716) Stop script script.js.common.Batterie
                        22:49:13.371	info	javascript.0 (8716) Start javascript script.js.common.Batterie
                        22:49:13.394	info	javascript.0 (8716) script.js.common.Batterie: Reaching FillWelcheFunktionVerwenden
                        22:49:13.395	info	javascript.0 (8716) script.js.common.Batterie: Found Function BatterieSpannung_15
                        22:49:13.395	info	javascript.0 (8716) script.js.common.Batterie: Found Function BatterieSpannung_30
                        22:49:13.395	info	javascript.0 (8716) script.js.common.Batterie: InitialSpannung 0 gesetzt auf 80%= 1.2
                        22:49:13.395	info	javascript.0 (8716) script.js.common.Batterie: InitialSpannung 1 gesetzt auf 80%= 2.4
                        22:49:13.396	info	javascript.0 (8716) script.js.common.Batterie: registered 0 subscriptions and 0 schedules
                        22:49:13.451	info	javascript.0 (8716) script.js.common.Batterie: CreateStates fertig!
                        22:49:13.451	info	javascript.0 (8716) script.js.common.Batterie: Reaching main()
                        22:49:13.451	info	javascript.0 (8716) script.js.common.Batterie: Reaching init()
                        22:49:13.452	info	javascript.0 (8716) script.js.common.Batterie: BattMinLimit Value conversion - success
                        22:49:13.452	info	javascript.0 (8716) script.js.common.Batterie: BattMinLimit Value conversion - success
                        22:49:13.452	info	javascript.0 (8716) script.js.common.Batterie: Tempval=false TempUnit=undefined TypeOf=boolean
                        22:49:13.452	info	javascript.0 (8716) script.js.common.Batterie: 0 BatterieSpannung_30 found at hm-rpc.0.NEQ1818500.0.LOWBAT Umax= 3 BattMinLimit=2.4 Val= 3 SensorProzent= 100
                        22:49:13.452	info	javascript.0 (8716) script.js.common.Batterie: Tempval=false TempUnit=undefined TypeOf=boolean
                        22:49:13.452	info	javascript.0 (8716) script.js.common.Batterie: 1 BatterieSpannung_30 found at hm-rpc.0.NEQ1826414.0.LOWBAT Umax= 3 BattMinLimit=2.4 Val= 3 SensorProzent= 100
                        22:49:13.453	info	javascript.0 (8716) script.js.common.Batterie: Tempval=false TempUnit=undefined TypeOf=boolean
                        22:49:13.453	info	javascript.0 (8716) script.js.common.Batterie: 2 BatterieSpannung_30 found at hm-rpc.0.OEQ0655913.0.LOWBAT Umax= 3 BattMinLimit=2.4 Val= 3 SensorProzent= 100
                        22:49:13.453	info	javascript.0 (8716) script.js.common.Batterie: Tempval=2.9 TempUnit=V TypeOf=number
                        22:49:13.453	info	javascript.0 (8716) script.js.common.Batterie: 3 BatterieSpannung_30 found at hm-rpc.0.OEQ0655913.4.BATTERY_STATE Umax= 3 BattMinLimit=2.4 Val= 2.9 SensorProzent= 96.66666666666667
                        22:49:13.454	info	javascript.0 (8716) script.js.common.Batterie: Reaching CheckDeadBatt()
                        22:49:13.455	info	javascript.0 (8716) script.js.common.Batterie: Reaching Meldung()
                        22:49:13.455	info	javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Vorraum bei Gerät Haustuer
                        22:49:13.455	info	javascript.0 (8716) script.js.common.Batterie: Reaching Meldung()
                        22:49:13.455	info	javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Esszimmer bei Gerät Terrassentuer
                        22:49:13.455	info	javascript.0 (8716) script.js.common.Batterie: Reaching Meldung()
                        22:49:13.456	info	javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Esszimmer bei Gerät HZK Esszimmer
                        22:49:13.456	info	javascript.0 (8716) script.js.common.Batterie: Reaching MakeTable
                        22:49:13.459	info	javascript.0 (8716) script.js.common.Batterie: Reaching CheckAllBatterys() found 4 Devices
                        22:49:13.460	info	javascript.0 (8716) script.js.common.Batterie: Sensor[0] = ist ausgefallen oder disconnected
                        22:49:13.460	info	javascript.0 (8716) script.js.common.Batterie: Sensor[1] = ist ausgefallen oder disconnected
                        22:49:13.460	info	javascript.0 (8716) script.js.common.Batterie: Sensor[2] = ist ausgefallen oder disconnected
                        22:49:13.460	info	javascript.0 (8716) script.js.common.Batterie: Reaching Meldung()
                        22:49:13.470	info	javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Vorraum bei Gerät Haustuer<br>Ausfall oder disconnect im Esszimmer bei Gerät Terrassentuer<br>Ausfall oder disconnect im Esszimmer bei Gerät HZK Esszimmer
                        22:49:13.470	info	javascript.0 (8716) script.js.common.Batterie: Reaching CheckAllBatterysOk - Lastmessage=Ausfall oder disconnect im Vorraum bei Gerät Haustuer<br>Ausfall oder disconnect im Esszimmer bei Gerät Terrassentuer<br>Ausfall oder disconnect im Esszimmer bei Gerät HZK Esszimmer
                        22:49:13.470	info	javascript.0 (8716) script.js.common.Batterie: Reaching CheckNextLowBatt()
                        22:49:13.470	info	javascript.0 (8716) script.js.common.Batterie: Aktuell niedrigster Batteriestand (2.90V): Esszimmer bei Gerät HZK Esszimmer
                        22:49:13.471	info	javascript.0 (8716) script.js.common.Batterie: Reaching MakeTable
                        22:50:13.468	info	javascript.0 (8716) script.js.common.Batterie: Reaching CheckDeadBatt()
                        22:50:13.469	info	javascript.0 (8716) script.js.common.Batterie: Reaching MakeTable
                        

                        Edit:

                        Über Nacht erledigt.

                        1 Reply Last reply Reply Quote 0
                        • E
                          Elektronikwelt @Elektronikwelt last edited by

                          @Pittini heute werden meine Räume nicht mehr eingelesen. Nur noch einer wird zugewiesen. Habe JS Adapter neu gestartet Alle sind in den Objekten zugewiesen.
                          22cd7502-c712-4bf6-9557-d81d0969dcdc-grafik.png
                          Woran liegt. das?

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

                            Hi,
                            erstens, danke @Pittini für dieses Skript. Funktioniert super. Ich hätte einen Erweiterungsvorschlag. Es geht um HMIP Geräte und deren Namen. Dort sollte man anstatt 2 Ebenen nach oben gehen, 3 Ebenen gehen.
                            29e07454-77fe-4892-b686-66d3294d6e5a-image.png
                            Hab's bei mir lokal schon in der GetParentId Funktion hinzugefügt.
                            Zusätzlich, bei Geräte die durch deconz gemanaged sind muss man auch 2 Ebenen nach oben gehen. Ich habe demnach die Funktion ein bisschen geändert:

                            function GetParentId(Id) {
                                let parentDevicelId;
                                if (Id.indexOf("deconz.") > -1 || Id.indexOf("hm-rpc.") > -1 || Id.indexOf("shelly.") > -1){ //Wenn deconz, hm-rpc oder shelly dann zwei Ebenen zurück
                                    parentDevicelId = Id.split(".").slice(0, -2).join(".");// Id an den Punkten in Array schreiben (split), die 2 letzten Elemente von hinten entfernen (slice) und den Rest wieder zu String zusammensetzen
                                }
                                else if (Id.indexOf("hmip.") > -1) { //Wenn HMIP dann drei Ebenen zurück
                                    parentDevicelId = Id.split(".").slice(0, -3).join(".");// Id an den Punkten in Array schreiben (split), die 3 letzten Elemente von hinten entfernen (slice) und den Rest wieder zu String zusammensetzen
                                }
                                else { //Wenn kein deconz, kein HM und kein shelly Adapter, eine Ebene zurück
                                    parentDevicelId = Id.split(".").slice(0, -1).join(".");// Id an den Punkten in Array schreiben (split), das letzte Element von hinten entfernen (slice) und den Rest wieder zu String zusammensetzen
                                };
                                //if (logging) log("Id= " + Id + " ParentDeviceId= " + parentDevicelId)
                                return parentDevicelId
                            }
                            

                            P 1 Reply Last reply Reply Quote 0
                            • A
                              Alero last edited by

                              Hi,
                              hab von Pittini die Batt Überwachung installiert. Habe alles laut Duko gemacht. Vielen Dank an Pittini.
                              Die Anzeige kommt auch.
                              91dee472-b996-4804-ad6b-6718adafee2f-grafik.png
                              Bei der Tabelle sehe ich nichts. Bei Start des scripts bekomme ich folgende FM:
                              76a27676-a7e3-49a5-a682-21829ff3f464-grafik.png
                              Habe leider nicht viel Ahnung von Javascripten.
                              Hat jemand eine Idee warum sich meine Tabelle nicht aufbaut?
                              Gruß
                              Alero

                              P 1 Reply Last reply Reply Quote 0
                              • P
                                Pittini Developer @mrFenyx last edited by

                                @mrFenyx sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                                Hab's bei mir lokal schon in der GetParentId Funktion hinzugefügt.
                                Zusätzlich, bei Geräte die durch deconz gemanaged sind muss man auch 2 Ebenen nach oben gehen. Ich habe demnach die Funktion ein bisschen geändert:

                                Hab ich mal ins update 1.6.6 mit reingepackt, danke.

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Pittini Developer @Alero last edited by

                                  @Alero sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                                  Habe leider nicht viel Ahnung von Javascripten.
                                  Hat jemand eine Idee warum sich meine Tabelle nicht aufbaut?

                                  JS Adapter mal neugestartet? Zeig mal komplettes Startlog (als Text, nicht als Screenshot) und zeig mal nen Screenshot eines der angemaulten Geräte mit Funktions und Raumzuweisung aus der Objektliste.

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    Alero @Pittini last edited by Alero

                                    @Pittini

                                    Hi,
                                    sorry das ich mich erst jetzt melde.

                                    Ja JS Adapter neu gestartet.
                                    Hier der Logfile wenn ich das script neu starte.
                                    log.txt
                                    Hier das Bild von dem TFK Bad der in deiner Anzeige als leer angemeckert wird.
                                    ![Bild Text](17acc20b-86b0-4fda-8919-7a1f6e41de39-grafik.png Bild Link)
                                    ![Bild Text](ea403ae2-9544-4fbc-9fe4-99d6d1845d61-grafik.png Bild Link)

                                    Gruß
                                    Alero

                                    P 1 Reply Last reply Reply Quote 0
                                    • P
                                      Pittini Developer @Alero last edited by

                                      @Alero Typischer Fall von nicht an die Anleitung gehalten. Lies bitte Anleitung .3 und vergleiche den Screenshot mit Deinem. Du hast die Funktion dem ganzen Channel verbraten, klar dass das Skript da aussteigt.

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        Alero @Pittini last edited by Alero

                                        @Pittini
                                        Hi,
                                        jo, da habe ich wohl doch was überlesen. Danke.

                                        Habs geändert. Jetzt steht Spannung_xx nur noch bei Operating_voltage
                                        ![Bild Text](b54e14f1-1cd1-4178-b90c-04c3106b29db-grafik.png Bild Link)
                                        Bekomme aber immer noch eine FM im Script.
                                        log_01.txt

                                        Gruß
                                        alero

                                        P 1 Reply Last reply Reply Quote 0
                                        • P
                                          Pittini Developer @Alero last edited by

                                          @Alero sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                                          Bekomme aber immer noch eine FM im Script.

                                          Ich sehe "Found Function BatterieSpannung_45" - aber ich seh kein Device das das nutzt? Kontrollier bitte mal das Device weswegen Du die Funktion angelegt hast und auch alle anderen ob dort die Funktionszuweisungen passen.

                                          A 1 Reply Last reply Reply Quote 0
                                          • A
                                            Alero @Pittini last edited by Alero

                                            @Pittini
                                            hi, für die wetterstation. Ah , da war ja was . in dem Objekt gibt es die Operting_Voltage nicht bzw. wird nicht befüllt. hatte diesbezügglich schon mit dem entwickler gesprochen.
                                            ok kann ich rausnehmen.
                                            erledigt. fm bleibt.
                                            Gruß
                                            Alero

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            709
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring template
                                            81
                                            581
                                            109158
                                            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