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.
    • P
      Pittini Developer @passuff last edited by

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

      Die Werte aus dem original Datenpunkt hatte ich im letzten Post bereits genannt.

      Das weis ich. Ich will die aber nicht "genannt" bekommen, sondern nen Screenshot wo ich den gesamten DP seh und auch wie und wo Du die Funktionzuweisung gemacht hast. Und da mir das Log sehr nach Konfigurationsfehler aussieht (geht ja gleich los mit:

      script.js.common.Sonstige.Überwachung_Batterie_MiHome: InitialSpannung 0 gesetzt auf 80%= 0)
      

      ), bitte auch die Einstellungen vom Skript mal zeigen.

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

        @Pittini
        f606b02f-d555-4190-869c-10f12db6745f-image.png

        EDIT: zuvor hatte ich das falsche Objekt gepostet.
        2b1c5d49-7e9f-4045-8f15-859eec98b9cc-image.png

        Ich habe keinen Schwellwert gesetzt, da sowohl mit 10% als auch 2.2V alle Devices als "empty bat count " gelistet werden.
        Ich denke es liegt daran, dass das Skript aktuell 0.27V liest - woher auch immer der Wert kommt.

        P 1 Reply Last reply Reply Quote 0
        • P
          passuff @passuff last edited by

          @Pittini

          Habe oben den Screenshot vom Objekt mit dem aktuell niedrigsten Wert ausgetauscht, da ich vorher versehentlich das falsche Objekt genommen hatte.
          Aktuelle Meldung:

          Aktuell niedrigster Batteriestand (0.00V): Gerätekeller bei Gerät Kellertür_Ost
          
          P 1 Reply Last reply Reply Quote 0
          • P
            Pittini Developer @passuff last edited by

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

            @Pittini

            Habe oben den Screenshot vom Objekt mit dem aktuell niedrigsten Wert ausgetauscht, da ich vorher versehentlich das falsche Objekt genommen hatte.
            Aktuelle Meldung:

            Aktuell niedrigster Batteriestand (0.00V): Gerätekeller bei Gerät Kellertür_Ost
            

            Solang da weiterhin ne Spannung von 0V von Dir angegeben ist, mach ich keinen weiteren Support, das kann nicht funktionieren. Bitte stell das so ein wie in der Anleitung beschrieben. Und die Einstellungen vom Skript hab ich immer noch ned gesehen. Und wie genau heißt bei Dir die Funktion?

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

              @Pittini
              Sag mir was ich einstellen soll? Ich bin überfordert. Möchte eigentlich, dass bei 5% Batteriestand getriggert wird.

              //Grund Einstellungen
              const praefix = "0_userdata.0.BatterieUeberwachung_MiHome."; //Grundpfad für Script DPs
              const logging = true; //Logging aktivieren?
              const FunktionBaseName = "BatterieUeberwachung_MiHome"; //Name der Funktion welche für die Batterieüberwachung genutzt wird
              const UseTelegram = false; // Sollen Nachrichten via Telegram gesendet werden?
              const UseMail = false; // Sollen Nachrichten via Mail gesendet werden?
              const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden?
              const AlexaId = ""; // Die Alexa Seriennummer
              const UseSay = false; // Sollen Nachrichten via Say ausgegeben werden? Funktion des Authors, sollte bei Anwendern auf false gesetzt werden.
              const UseEventLog = false; // Sollen Nachrichten ins Eventlog geschreiben werden? Funktion des Authors, sollte bei Anwendern auf false gesetzt werden.
              const UsePopUp = false // Soll PopUp angezeigt werden? Funktion des Authors, sollte bei Anwendern auf false gesetzt werden.
              const ProzMeansLive = true; //Zeigen Prozentwerte des Gerätedatenpunktes Batteriekapazität oder restliche Lebensdauer?
              let DeadIsAfter = 360; // In Minuten - Zeit nach der ein Gerät als "tot" gewertet wird wenn keine Statusänderung (ts) erfolgte.
              const NotifyDeadDevices = true; //Sollen auch "tote" Geräte gemeldet werden?
              
              P 1 Reply Last reply Reply Quote 0
              • P
                Pittini Developer @passuff last edited by Pittini

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

                Sag mir was ich einstellen soll?

                Lösch das Skript. Lösch den channel welchen das Skript angelegt hat. Lösch die Funktion und Zuweisung.
                Trink nen Kaffee, dann:
                Machs so wie in der Anleitung beschrieben und lass überall das drin stehen was das Skript als Grundeinstellung mitbringt (verwende bei Xiaomi Geräten den Spannungswert, nicht die % Angabe für die Funktionszuweisung).
                Freu Dich über ein funktionierendes Skript.

                Möchte eigentlich, dass bei 5% Batteriestand getriggert wird.

                Was völliger Unsinn ist, weil dieser Wert nie erreicht wird, die meisten Geräte machen zwischen 70% und 80% Batteriestand schlapp.

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

                  @Pittini

                  Kann man machen ist aber doof da ich aktuell nichts anders machen würde als zuvor. Viel lieber möchte ich verstehen, was ich falsch gemacht habe. Ich sehe es leider immer noch nicht, auch nach dem 100sten Anlauf deiner Anleitung etwas zu entlocken was ich bisher übersehen habe.

                  Meine Xiaomis gehen erst zwischen 5-0% aus.. Vorher nicht. Da will ich nicht vorher triggern:

                  0e96be47-53c6-4d4e-b996-019db8260319-image.png

                  Den werde ich jetzt erneuern, aber er funktioniert aktuell einwandfrei.

                  Gruß

                  EDIT: Ich glaube ich habe jetzt etwas grundlegendes verstanden: Dein Skript kann keine Prozentwerte einlesen... Das war mir vorher nicht klar.
                  Trigger auf Spannung funktioniert jetzt- Danke Dir.
                  Nutzt du Dead Devices bei Xiaomi? bei mir werden rund 30% fälschlicherweise als dead erkannt. Die Zeitstempel sind tatsächlich alt, daher kann das Skript nichts dafür. Aber leider senden die Devices kein lebenszeichen, wenn sich der Wert nicht ändert. Gibt es einen Workaround oder einfach deaktivieren?

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

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

                    @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?

                    Habe den Beitrag herausgesucht. D.h. du liest den Sollwert tatsächlich aus dem Funktionsnamen? Das war mir nicht bewusst - anderen offensichtlich auch nicht. Ich dachte das wäre nur der Übersicht halber.
                    Was soll ich angeben? Leerlauf- oder Nominalspannung?

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

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

                      Was soll ich angeben? Leerlauf- oder Nominalspannung?

                      Nominal, also das was auf der Batterie druff steht.

                      Dein Skript kann keine Prozentwerte einlesen... Das war mir vorher nicht klar.

                      Doch, kann es, es liest Spannungen, Prozente und auch lowbat true/false und das ganze auch gemischt.

                      Meine Xiaomis gehen erst zwischen 5-0% aus.. Vorher nicht. Da will ich nicht vorher triggern:

                      Ja, aber eben nicht bei 5% Batteriespannung sondern quasi 5% Lebenserwartung. Und dieser Wert wird vom MiHome Adapter aus der Spannung errechnet und die Rechnung stimmt imho nicht.
                      Das heißt Du vergleichst da Äpfel mit Birnen. Die 5% die Du meinst, werden in der Skripttabelle als %life angegeben und sind eben was anderes als %bat

                      Nutzt du Dead Devices bei Xiaomi? bei mir werden rund 30% fälschlicherweise als dead erkannt. Die Zeitstempel sind tatsächlich alt, daher kann das Skript nichts dafür. Aber leider senden die Devices kein lebenszeichen, wenn sich der Wert nicht ändert.

                      Ja klar nutz ich das, grad bei den Xiaomis klappt das prima, Probleme gabs da eigentlich nur bei HM Geräten. Die Xiaomis aktualisieren nämlich eigentlich schon auch ohne Werteänderung, so rund alle 2 Stunden. Kann mal einer ne Ausnahme sein, aber das ist wirklich sehr selten. Sieht bei aktuell z.B. so aus und da is alles korrekt, die HM Batterien werd ich die Tage tauschen, der eine Sensor im Briefkasten is wirklich tot, weil bei der Kälte die Batt schneller schlappmachen und der 2te liegt ohne Batterie hier rum:
                      2020-12-08 12_55_50-Window.png

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

                        @Pittini
                        Irgendwie will es nicht so richtig:

                        Aktuell niedrigster Batteriestand (3.33V): Kinderzimmer OG3 bei Gerät TH_SpZ_OG3
                        

                        Zwei Dinge: CR2032 steht 3V drauf, sind aber 3.3V.
                        unabhängig davon erkennt das Skript einen Batteriewechsel nicht. Was kann man tun?

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

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

                          @Pittini
                          Irgendwie will es nicht so richtig:

                          Aktuell niedrigster Batteriestand (3.33V): Kinderzimmer OG3 bei Gerät TH_SpZ_OG3
                          

                          Zwei Dinge: CR2032 steht 3V drauf, sind aber 3.3V.
                          unabhängig davon erkennt das Skript einen Batteriewechsel nicht. Was kann man tun?

                          Relevant is was draufsteht, nix anderes. Jede neue Batterie hat i.d.R. ne höhere Spannung als draufsteht.
                          Klar erkennt das Skript nen Batteriewechsel, aber natürlich muß das Gerät erstmal den neuen Wert auch senden und das kann durchaus bis zu ner Stunde dauern.

                          1 Reply Last reply Reply Quote 0
                          • G
                            Gabe last edited by

                            Hi,

                            ich habe das gleiche Problem, dass bei mir einige Geräte als Dead angezeigt werden, obwohl sie alive sind.

                            Ich habe z-Wave, weiß jemand ob die Z-Wave Geräte überhaupt den Zustand regelmäßig schicken oder nur bei Änderungen?

                            Danke

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

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

                              Hi,

                              ich habe das gleiche Problem, dass bei mir einige Geräte als Dead angezeigt werden, obwohl sie alive sind.

                              Ich habe z-Wave, weiß jemand ob die Z-Wave Geräte überhaupt den Zustand regelmäßig schicken oder nur bei Änderungen?

                              Danke

                              Muß ich passen, da ich keinerlei z-Wave Geräte hab. Evtl. kann ja einer der anderen Skriptnutzer was dazu sagen.

                              G 1 Reply Last reply Reply Quote 0
                              • P
                                passuff last edited by

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

                                nt das Skript nen Batteriewechsel, aber natürlich muß das Gerät erstmal den neuen Wert auch senden und das kann durchaus bis zu ner Stunde dauern.

                                Der Wechsel der Batterie war vor 2-3 Tagen...Der Wert der Batterie aktualisiert sich sogar:

                                Aktuell niedrigster Batteriestand (3.29V): Kinderzimmer OG3 bei Gerät TH_SpZ_OG3
                                

                                Zum Vergleich:

                                Aktuell niedrigster Batteriestand (3.33V): Kinderzimmer OG3 bei Gerät TH_SpZ_OG3
                                

                                Zusätzlich wurde ich heute Nacht gleich sechsmal wegen niedrigem Batteriestand benachrichtigt,
                                Der Stand wurde richtig erkannt, aber einmal hätte gereicht... Kann man das irgendwo einstellen?

                                28e351e5-ee8d-42be-acdc-39a605c5e934-image.png

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

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

                                  Zusätzlich wurde ich heute Nacht gleich sechsmal wegen niedrigem Batteriestand benachrichtigt,
                                  Der Stand wurde richtig erkannt, aber einmal hätte gereicht... Kann man das irgendwo einstellen?

                                  Nein, hat noch keiner gewollt/gebraucht bisher und ich selber nutz die Telegram Option nicht. Wär aber vermutlich sinnvoll und auch machbar, wenns Dir wichtig ist, mach mal nen Issue auf Git dazu damit ichs nicht vergess.

                                  Zum Batteriewechselproblem, aus den Einzeilern kann ich keinen Fehler erkenn, da ich nicht weis wie Deine anderen Batteriestände sind. Zeig mir doch mal die ganze Vistabelle als Screenshot.

                                  1 Reply Last reply Reply Quote 0
                                  • G
                                    Gabe @Pittini last edited by

                                    @Pittini Hi habe jetzt rausgefunden, dass wohl Z-Wave Geräte nie aus einen Deep Sleep Modus rauskommen und nur bei Änderungen kurz den geänderten Wert schicken.

                                    Ist es möglich, den Part aus dem Skript zu ändern eher auf den alive Status? Ich habe auch das Problem dass die Prozent Werte bei mir total falsch angegeben werden (also 100% als Volt anzeige). Was kann ich da machen?

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

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

                                      @Pittini Hi habe jetzt rausgefunden, dass wohl Z-Wave Geräte nie aus einen Deep Sleep Modus rauskommen und nur bei Änderungen kurz den geänderten Wert schicken.

                                      Ist es möglich, den Part aus dem Skript zu ändern eher auf den alive Status?

                                      Es ist mittelfristig geplant ne weitere Funktion für den DeadCheck einzuführen, aber dies Jahr ganz sicher nimmer. Wenn Du nur solche Geräte hast, würd ich den Check deaktivieren oder die Zeit sehr hoch setzen (Zeile 21 + 22)

                                      Ich habe auch das Problem dass die Prozent Werte bei mir total falsch angegeben werden (also 100% als Volt anzeige). Was kann ich da machen?

                                      Das Skript richtig konfigurieren.

                                      Zeig mal Screenshots von der Objektliste wo ich Deine Funktionszuweisung seh, dann die Skripteinstellungen falls Du da was geändert hast und nen Screenshot vom Vis mit der falschen Anzeige

                                      G 1 Reply Last reply Reply Quote 0
                                      • G
                                        Gabe @Pittini last edited by

                                        @Pittini ok danke für die Info. Was müsste ich den genau deaktivieren für den DeadCheck?

                                        Anbei die Bilder, falls was fehlt sag Bescheid. Am Skript habe ich eigentlich nur die Zeit auf 720 Min zum testen erhöht.
                                        Danke für deine Hilfe!!!

                                        Bild1.jpg
                                        Bild2.jpg
                                        Bild3.jpg

                                        P gelberlemmy 2 Replies Last reply Reply Quote 0
                                        • P
                                          Pittini Developer @Gabe last edited by

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

                                          ok danke für die Info. Was müsste ich den genau deaktivieren für den DeadCheck?

                                          Zeile 22 auf false

                                          Anbei die Bilder, falls was fehlt sag Bescheid. Am Skript habe ich eigentlich nur die Zeit auf 720 Min zum testen erhöht.

                                          Das is ok. Das Problem is der z-Wave Adapter, der schreibt da 87 rein ohne Unit und ohne entsprechende Rolle. So kann das Skript nicht erkennen dass das % sind, weil eben das % Zeichen fehlt und geht dann davon aus dasses Volt sind, wodurch die unsinnigen Werte entstehen. Da könntest jetzt ein Issue aufmachen beim Adapter, Korrektur des Adapters wär der Idealfall. Zwischendurch kannste Dir auch selber helfen indem Du im RAW des DAtenpunktes das Prozent hinzufügst, dann kapiert das auch das Skript. In dem Bild siehste wie und wo das Unit reinmuss:

                                          Inked2020-12-16 19_05_45-Window_LI.jpg

                                          Inked2020-12-16 19_03_50-Window_LI.jpg

                                          C 1 Reply Last reply Reply Quote 0
                                          • C
                                            canim @Pittini last edited by canim

                                            hallo :), eine Sensor ist bei mir nicht mehr erreichbar, nun Schreibt der Script mein log voll mit.

                                            javascript.0	2020-12-18 18:46:41.959	error	(1829) at processTimers (internal/timers.js:497:7)
                                            javascript.0	2020-12-18 18:46:41.959	error	(1829) at listOnTimeout (internal/timers.js:554:17)
                                            javascript.0	2020-12-18 18:46:41.959	error	(1829) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2040:34)
                                            javascript.0	2020-12-18 18:46:41.959	error	(1829) at Object.<anonymous> (script.js.common.Batterie_v2:275:9)
                                            javascript.0	2020-12-18 18:46:41.959	error	(1829) at CheckDeadBatt (script.js.common.Batterie_v2:258:25)
                                            javascript.0	2020-12-18 18:46:41.959	error	(1829) at Meldung (script.js.common.Batterie_v2:244:22)
                                            javascript.0	2020-12-18 18:46:41.958	error	(1829) Error in callback: ReferenceError: WriteEventLog is not defined```
                                            code_text
                                            
                                            
                                            ps : Edit hat sich erledigt, hab garnicht den Eventlog Adapter :D, habs nun deaktiviert.
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            820
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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