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.
    • M
      Mike Hellracer @Pittini last edited by Mike Hellracer

      @pittini
      Ja der Zeitstempel ist ein paar Tage alt.

      Zigbee Wassermelder:
      -available aktualisiert nur bei Auslösung
      Ggf. den DP Batterie nutzen oder kann man da was anpassen?

      HM Fenstersensoren

      • alle Werte aktualisieren maximal bei Auslösung 😞

      Hast du ggf. eine Idee, oder noch besser eine Lösung?

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

        @mike-hellracer Wenn das Gerät tatsächlich keinen Datenpunkt hat, der regelmäßig aktualisiert wird, isses auch nicht möglich rauszufinden ob das Gerät tot ist, dann mußt dich halt auf reach/unreach bzw. die Batteriespannungsanzeige verlassen.

        M 1 Reply Last reply Reply Quote 0
        • M
          Mike Hellracer @Pittini last edited by

          @pittini
          OK danke dir trotzdem.
          Ich schaue mal was ich finden kann.

          1 Reply Last reply Reply Quote 0
          • R
            robudus last edited by

            Hallo Zusammen,
            benutze die Version 1.8.2 bei den Jeelinkgeräten bekomme ich eine Batteriewarnmldug obwohl alles ok ist. Kann jemand helfen?
            Anbei die Screenshots. Es ist ein boolean Wert und steht auf false bzw 0. Bedeutet Batterie ist ok.
            Bitte um Hilfe.

            2021-11-21 21_48_12-vis.png

            2021-11-21 21_47_14-objects - iobroker.png

            2021-11-21 21_46_31-objects - iobroker.png

            Vielen Dank

            G ROBudus

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

              @robudus Ich frag mich grad woher die 0 kommt, das RAW gibt das eigentlich nicht her. Der DP ist als Bool definiert, deswegen erwartet das Skript da auch nen Bool, also true oder false.

              M R 2 Replies Last reply Reply Quote 0
              • M
                Mike Hellracer @Pittini last edited by Mike Hellracer

                @pittini
                sorry, aber ich habe noch ein Problem oder vlt nur ein Missverständnis.
                Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
                Oder sollte da der de Name der Funktion stehen?

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

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

                  Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
                  Oder sollte da der de Name der Funktion stehen?

                  Änder mal bitte wie aufm Bild zu sehen und sag obs dann klappt bitte.
                  2021-11-22 12_13_13-Window.png

                  Und hier als Text zum kopieren:

                  if (TblShowDeviceNameCol) {
                             let tempName = getObject(GetParentId(Sensor[x].id), "common").common.name;
                             if (typeof tempName == "object") tempName = tempName.de;
                             MyTable += "<td " + style0 + BgColor + "'>" + tempName + "</td>";
                         };
                  
                  M 2 Replies Last reply Reply Quote 0
                  • M
                    Mike Hellracer @Pittini last edited by Mike Hellracer

                    @pittini
                    Yep, das war's
                    Habe hier die Variable "enumCategory" auch für dieses Script...

                    const WhichEnumCategoryToUse = "functions"; // Legt fest in welcher Kategorie sich die Aufzählungen befinden! Nur ändern wer weis was er tut!
                    


                    und die anzupassenden Zeilen 126, 232, 294

                    let Funktionen = getEnums(WhichEnumCategoryToUse); //Array mit Aufzählung der Funktionen
                    
                    

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

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

                      let Funktionen = getEnums(WhichEnumCategoryToUse); //Array mit Aufzählung der Funktionen

                      Drin v1.8.3.

                      1 Reply Last reply Reply Quote 0
                      • M
                        Mike Hellracer last edited by

                        @pittini
                        Top, Danke

                        1 Reply Last reply Reply Quote 0
                        • R
                          robudus @Pittini last edited by

                          @pittini 98b35094-a46a-4076-b7c6-52efde2f58be-grafik.png

                          Wenn ich kurz umschalte von false auf true und zurück dann zeigt er auch kurz false und true an... dann wechselt er aber wieder auf die 0. Also ist das ein Bug im Adapter für Jeelink? Hast du eine Idee wie man das als Workaround lösen kann?

                          Vielen Dank

                          G ROBudus

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

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

                            Hast du eine Idee wie man das als Workaround lösen kann?

                            Evtl. mit Alias bzw. linkedDevices. Aber das sinnvollste wär der Adapter gibt nen echten Bool aus.

                            1 Reply Last reply Reply Quote 0
                            • M
                              Mike Hellracer @Pittini last edited by

                              @pittini
                              Hi,
                              das Problem mit [Object] [Object] ist zwar in der Tabelle weg, Aber ich habe das auch noch bei der Ansicht im St0Ma Message Creator.
                              Kannst du da bitte noch mal schauen.
                              Danke

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

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

                                Aber ich habe das auch noch bei der Ansicht im St0Ma Message Creator.

                                Was fürn Ding?

                                Kannst du da bitte noch mal schauen.

                                Gern, wenn ich wüßte wonach bzw. worums eigentlich geht.

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  Mike Hellracer @Pittini last edited by

                                  @pittini
                                  sorry, ich dachte du kennst den 😉
                                  Ursache: ist der Value im DP
                                  Javascript.0.BatterieUeberwachung.NextExpectedLowBatt

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

                                    @mike-hellracer V1.8.4 sollte es tun, hab die anderen 7 Vorkommen auch gleich mit gemacht.

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      Mike Hellracer @Pittini last edited by

                                      @pittini
                                      Danke probiere ich morgen aus.

                                      1 Reply Last reply Reply Quote 0
                                      • C
                                        c.radi last edited by

                                        Hallo und vielen Dank für dieses super Script.

                                        Ich habe eine Frage, kann man einstellen, wie häufig das Script ausgeführt wird, bzw. wie häufig die Meldungen kommen.
                                        Ich habe Pushover als Benachrichtigung eingestellt, aber die Nachrichten kommen ca. im Stundentakt.

                                        Gruß
                                        Christian

                                        P A 2 Replies Last reply Reply Quote 0
                                        • P
                                          Pittini Developer @c.radi last edited by

                                          @c-radi Ich nehm mal an, es geht um dieses Problem: https://github.com/Pittini/iobroker-Batterienauswertung/issues/22 Wird gefixt sobald ich Zeit über hab.

                                          TheBermud created this issue in Pittini/iobroker-Batterienauswertung

                                          open Meldung wird verschickt, wenn sich ein Wert, der bereits unter Limit ist sich ändert und unterm Limit bleibt #22

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            ArnoD @c.radi last edited by ArnoD

                                            @c-radi

                                            Habe das Script erst heute installiert und deswegen noch nicht viel Erfahrung damit, aber ich würde das Problem über ein Array lösen, in dem ich mir einfach die bereits erzeugten Meldungen von einem Tag merken würde und diese dann ignorieren würde.

                                            Ab Zeile 63 ein neues Array "MekerMeldungen" erstellen. (Name kann frei definiert werden)

                                            let MekerMeldungen = [];
                                            

                                            Die function Meldung(msg) dann folgendermaßen ändern:

                                            function Meldung(msg) {
                                                let Start = msg.indexOf('unter');
                                                if (Start <=0){Start = 0}
                                                if (!MekerMeldungen.includes(msg.substr(Start))){
                                                    MekerMeldungen.push(msg.substr(Start));
                                            	log("Reaching Meldung(), msg=" + msg);
                                            	if (UseSay) Say(msg);
                                            	if (UseTelegram) {
                                            		sendTo(TelegramInstance, "send", {
                                            			user: TelegramUser,
                                            			text: msg
                                            		});
                                            	};
                                            	if (UseMail) {
                                            		sendTo("email", {
                                            			html: msg
                                            		});
                                            	};
                                            	if (UseAlexa) {
                                            		if (AlexaId != "") setState(AlexaInstance + ".Echo-Devices." + AlexaId + ".Commands.announcement"/*announcement*/, AlexaVolume + "; " + msg);
                                            	};
                                            	if (UsePushover) {
                                            		sendTo(PushoverInstance, {
                                            			device: PushoverDevice,
                                            			message: msg,
                                            			title: PushOverTitle,
                                            			priority: 0,
                                            			retry: 60,
                                            			expire: 600,
                                            			html: 1
                                            		});
                                            	};
                                                }
                                                if (logging) log(msg);
                                                if (UseEventLog) WriteEventLog(msg);
                                                if (UsePopUp) ShowPopUp(true, msg, "Batterys", "red");
                                            }
                                            

                                            Um aber jeden Tag wieder eine Meldung zu bekommen, muss jetzt nur noch jeden Tag das Array "MekerMeldungen" gelöscht werden.
                                            Am einfachsten über ein Schedule:

                                            schedule({hour: 0, minute: 1}, function () {
                                                    MekerMeldungen = [];
                                            });
                                            

                                            Vielleicht will ja Pittini das übernehmen oder es gibt eine bessere Lösung.

                                            Nachtrag:
                                            Habe gerade bemerkt das im msg String auch die aktuelle Spannung enthalten ist.
                                            Somit würde mein Vorschlag so nicht funktionieren, da jede Spannungsänderung als neue Meldung durchrutschen würde.
                                            Eine Möglichkeit wäre, die aktuelle Spannung aus dem Meldungstext zu entfernen.
                                            Habe meinen Code oben jetzt korrigiert.
                                            Ich suche in der Variable msg jetzt das Wort „unter“ und verwende den String ab diesem Wort, um gleiche Meldungen zu filtern.
                                            Funktioniert erst mal. 🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            643
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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