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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe

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

      @pittini

      Ich hab gerade das Skript aktualisiert, hat das einen Grund, dass die Einstellungen zum Ausschalten für die Tabellenspalten doppelt vorhanden sind?

      /Tabellen Einstellungen
      const TblOkBgColor = "#4caf50"; //Hintergrundfarbe für Batteriestatus Ok
      const TblInfoBgColor = "#ffc107"; //Hintergrundfarbe für Batteriestatus Info, also die leerste Batterie welche noch nicht das Limit unterschreitet
      const TblWarnBgColor = "#f44336"; //Hintergrundfarbe für Batteriestatus Warnung, also jene Batterie welche unter das Limit kam.
      const TblDeadBgColor = "grey"; //Hintergrundfarbe für Batterie/Geräte Status tot.
      const HeadBgColor = "dimgrey"; //Hintergrundfarbe des Tabellenkopfes
      const FontColor = "black"; //Textfarbe für Tabelleninhalt
      const HeadFontColor = "white"; //Textfarbe für Tabellenkopf
      const TblShowLfdCol = true; //Tabellenspalte mit laufender Nummer anzeigen?
      const TblShowDeviceIDCol = true; //Tabellenspalte mit Geräte ID anzeigen?
      const TblShowDeviceNameCol = true; //Tabellenspalte mit Gerätenamen anzeigen?
      const TblShowRoomCol = true; //Tabellenspalte mit Raum anzeigen?
      const TblShowUmaxCol = true; //Tabellenspalte mit Batterie Nennspannung anzeigen? 
      const TblShowUistCol = true; //Tabellenspalte mit aktueller Batteriespannung anzeigen?
      const TblShowUlimitCol = true; //Tabellenspalte mit unterer Batterielimit Spannung anzeigen?
      const TblShowProzbatCol = true; //Tabellenspalte mit Batteriestand in Prozent anzeigen?
      const TblShowProzliveCol = true; //Tabellenspalte mit Restlebensdauer unter Berücksichtigung der Limitspannung in Prozent anzeigen? Beispiel: Batterie hat 3V Nennspannung, Limit ist bei 2V, aktueller Batteriestand ist 2.5V, dann wäre die Restlebensdauer 50%
      const TblShowStatusCol = true; //Tabellenspalte mit Status ausgeben?
      const TblShowHasDeadCheck = true; //Tabellenspalte mit DeadCheckstatus ausgeben?
      
      //Spalten der JSON Tabellen bei Bedarf ausschalten
      const TblJSNShowLfdCol = true; //Tabellenspalte mit laufender Nummer anzeigen?
      const TblJSNShowDeviceIDCol = true; //Tabellenspalte mit Geräte ID anzeigen?
      const TblJSNShowDeviceNameCol = true; //Tabellenspalte mit Gerätenamen anzeigen?
      const TblJSNShowRoomCol = true; //Tabellenspalte mit Raum anzeigen?
      const TblJSNShowUmaxCol = true; //Tabellenspalte mit Batterie Nennspannung anzeigen? 
      const TblJSNShowUistCol = true; //Tabellenspalte mit aktueller Batteriespannung anzeigen?
      const TblJSNShowUlimitCol = true; //Tabellenspalte mit unterer Batterielimit Spannung anzeigen?
      const TblJSNShowProzbatCol = true; //Tabellenspalte mit Batteriestand in Prozent anzeigen?
      const TblJSNShowProzliveCol = true; //Tabellenspalte mit Restlebensdauer unter Berücksichtigung der Limitspannung in Prozent anzeigen? Beispiel: Batterie hat 3V Nennspannung, Limit ist bei 2V, aktueller Batteriestand ist 2.5V, dann wäre die Restlebensdauer 50%
      const TblJSNShowStatusCol = true; //Tabellenspalte mit Status ausgeben?
      const TblJSNShowHasDeadCheck = true; //Tabellenspalte mit DeadCheckstatus ausgeben?
      
      P 1 Reply Last reply Reply Quote 0
      • P
        Pittini Developer @Dominik F. last edited by

        @dominik-f Ja hat es, das eine is für die HTML Tabelle, das andere für die JSON Tabelle.

        Dominik F. 1 Reply Last reply Reply Quote 0
        • Dominik F.
          Dominik F. @Pittini last edited by

          @pittini

          Achso, hatte bei beiden nur Tabelle gelesen 😄

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

            DeadCheck kann ich indem Fall auch einfach auf den DP available legen ? Wenn der nicht mehr aktualisiert wird, wird das Device dann unter Dead angezeigt ?

            1 Reply Last reply Reply Quote 0
            • T
              Tobi81 last edited by

              Ich habe JeeLink Sensoren, die den Zustand LowBatt 0 oder 1 liefern.

              Ich habe bisher nur die Funktionen BatterieSpannung_24 und BatterieSpannung_30.

              Brauche ich nun eine neue Funktion BatterieSpannung_1 oder wie gehe ich hier am besten vor um diesen Fall von dem Script zu berücksichtigen?

              Vielen Dank 🙂

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

                @tobi81 BatterieSpannung_1 würde heißen in dem Gerät is ne Batterie mit 0,1 Volt. Haste so ein Gerät/Batterie? Nein. Womit die Frage geklärt wäre.
                Zum Thema 0 und 1, das ist neu und wird so vom Skript nicht erkannt, bei lowbat wird ein true oder false erwartet, also am besten nen Alias machen der die 0/1 zu true/false wandelt, dann wird das vom Skript auch erkannt. Die BatterieSpannung_xx ist IMMER die tatsächliche Spannung, egal ob da dann % oder lowbat oder was auch immer kommt.

                T Dominik F. 2 Replies Last reply Reply Quote 0
                • T
                  Tobi81 @Pittini last edited by Tobi81

                  @pittini Vielen Dank für die Erklärung.
                  Ich habe noch nie einen Alias Datenpunkt erstellt. Geht das über den Alias-Adapter?
                  Danach erstellt man die neuen Datenpunkte unter Alias.0. oder? Wie sage ich dann deinem Script das er diese Datenpunkte überwachen soll? Denen muss ich ja eine Funktion zuweisen, oder?

                  Dominik F. 1 Reply Last reply Reply Quote 0
                  • Dominik F.
                    Dominik F. @Tobi81 last edited by

                    @tobi81

                    Nimm den Alias Manager, damit geht das sehr einfach. Es lohnt sich übrigens alle Datenpunkte, die du irgendwie brauchst, also nicht nur für dieses Skript, als Alias zu erstellen. Somit brauchst du, wenn du mal etwas austauscht, nur die Alias ändern, also die Datenpunkte im Alias nur neu zuweisen, und alles funktioniert weiterhin.

                    Wenn du das erstellst hast, folgst du einfach den Anweisungen von Pittini in seiner Erklärung.

                    1 Reply Last reply Reply Quote 0
                    • Dominik F.
                      Dominik F. @Pittini last edited by

                      @pittini

                      Ich bekomme folgenden Log von dem Skript:

                      avascript.0
                      2022-02-08 18:50:48.543	info	script.js.common.Auswertung_Batterien: Reaching Meldung(), msg=Batteriestand (2.29 V) unter Limit (2.32 V) im EG Diele bei Gerät EG_Diele Heizkörper
                      

                      Problem an der Sache ist, der Batteriestand ist 2,4V, das wird auch in der Tabelle richtig erkannt:

                      Unbenannt.PNG

                      Hast du eine Idee was das Problem sein könnte?

                      P 1 Reply Last reply Reply Quote 0
                      • T
                        Tobi81 last edited by

                        Ich denke ich habe den Alias Adapter erfolgreich eingerichtet und ein Testdevice sieht jetzt so aus:

                        Bildschirmfoto 2022-02-08 um 20.39.08.png

                        Ich habe LowBatt nach lowbat umbenannt und die Funktion BatterieSpannung_30 hinzugefügt. Wenn ich jetzt das Script von Pittini neustarte bekomme ich folgende Fehlermeldungen:

                        2022-02-08 20:45:41.094 - warn: javascript.0 (18309) getState "alias.0.TEST.lowBatt" not found (3)
                        2022-02-08 20:45:41.095 - warn: javascript.0 (18309) at Init (script.js.common.BatterienÜberwachung:160:31)
                        2022-02-08 20:45:41.095 - warn: javascript.0 (18309) at main (script.js.common.BatterienÜberwachung:261:5)
                        2022-02-08 20:45:41.096 - warn: javascript.0 (18309) at Object. (script.js.common.BatterienÜberwachung:126:13)
                        2022-02-08 20:45:41.096 - warn: javascript.0 (18309) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1988:38)
                        2022-02-08 20:45:41.096 - warn: javascript.0 (18309) at processImmediate (internal/timers.js:463:21)
                        2022-02-08 20:45:41.109 - error: javascript.0 (18309) Error in callback: TypeError: Cannot read property 'toFixed' of undefined
                        2022-02-08 20:45:41.109 - error: javascript.0 (18309) at MakeTable (script.js.common.BatterienÜberwachung:610:75)
                        2022-02-08 20:45:41.109 - error: javascript.0 (18309) at main (script.js.common.BatterienÜberwachung:266:5)
                        2022-02-08 20:45:41.109 - error: javascript.0 (18309) at Object. (script.js.common.BatterienÜberwachung:126:13)
                        2022-02-08 20:45:41.109 - error: javascript.0 (18309) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1988:38)
                        2022-02-08 20:45:41.110 - error: javascript.0 (18309) at processImmediate (internal/timers.js:463:21)
                        

                        Dieses "getState "alias.0.TEST.lowBatt" not found" ist wohl das Problem. Ich hab dann aber auch noch lowbat wieder nach lowBatt zurückbenannt, aber immer noch die gleichen Fehler.

                        Was mache ich falsch?

                        P 1 Reply Last reply Reply Quote 0
                        • P
                          Pittini Developer @Dominik F. last edited by

                          @dominik-f Würde ich mal loggen welche Werte da auftreten, irgendwoher muß das Skript die 2,29 Volt aus der Meldung ja herhaben.

                          Dominik F. 1 Reply Last reply Reply Quote 0
                          • P
                            Pittini Developer @Tobi81 last edited by Pittini

                            @tobi81 Nach jeder Änderung an Aufzählungen MUß der JS Adapter neu gestartet werden, sonst kriegt das System davon nix mit. Und jedes Skript welche die geänderten Aufzählungen nutzt muß auch neugestartet werden, damit die Trigger aktualisiert werden.

                            B 1 Reply Last reply Reply Quote 0
                            • Dominik F.
                              Dominik F. @Pittini last edited by

                              @pittini

                              Du hattest recht....aus irgendeinem Grund springt der Batteriestate immer mal wieder kurz nach unten.

                              Unbenannt.PNG

                              1 Reply Last reply Reply Quote 0
                              • B
                                babl @Pittini last edited by

                                @pittini hast du das mitbekommen mit den neuen Änderungen für die xiaomi Batterie Geräte.

                                https://github.com/Koenkk/zigbee2mqtt/issues/8499#issuecomment-1032422285

                                Sie haben jetzt andere voltanpassungen durchgeführt, sollte man da dein Script auch eventuell angleichen?

                                andriej created this issue in Koenkk/zigbee2mqtt

                                open 🔋 (Xiaomi) Batteries values are questionable #8499

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

                                  @babl 3V sind 3V, wie oder woher die berechnet werden is mir egal. sehe hier keinerlei Anpassungsnotwendigkeit.

                                  B 1 Reply Last reply Reply Quote 0
                                  • B
                                    babl @Pittini last edited by

                                    @pittini aber bei 2.85V werden die bei zigbee bereits mit 0% gelistet

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

                                      @babl Wieviel Prozent zigbee da angibt, ist doch egal solange Du dem Skript den Spannungsdatenpunkt gibst und nicht den mit den Prozenten. Dann errechnet das Skript das selber. Und all meine Xiaomis liefern beides.

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        babl @Pittini last edited by

                                        @pittini das stimmt schon, nur hat man jetzt 2 verschiedene anzeigen.

                                        bei dir im script steht er bei 98% Batterieleistung

                                        und im Zigbee steht er mit 47% Batterieleistung

                                        Das ist halt auch etwas blöd.

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          Matt77CHE last edited by Matt77CHE

                                          gelöscht

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

                                            Habe seit heute auch paar Probleme mit dem Script, kann mir jemand weiterhelfen?
                                            Das Script bringt folgende Fehler:

                                            14:44:46.922	info	javascript.0 (35201) script.js.common.Batterieueberwachung: CheckDeadBatt() State for 19 doesnt exists
                                            14:44:46.929	error	javascript.0 (35201) at MakeTable (script.js.common.Batterieueberwachung:610:75)
                                            14:44:46.929	error	javascript.0 (35201) at CheckDeadBatt (script.js.common.Batterieueberwachung:366:13)
                                            14:44:46.929	error	javascript.0 (35201) at CheckBatterys (script.js.common.Batterieueberwachung:465:5)
                                            14:44:46.929	error	javascript.0 (35201) at Object.<anonymous> (script.js.common.Batterieueberwachung:726:13)
                                            
                                            P 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            854
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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