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

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

                            ok kann ich rausnehmen.
                            erledigt. fm bleibt.

                            Nach all den Änderungen bitte nochmal den JS Adapter neustarten und noch mal ein startlog wenns nicht hilft bitte.

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

                              @Pittini
                              restartet und logfile.

                              log_02.txt

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

                                @Alero Langsam fällt mir nix mehr ein. Nimm bitte mal die "Function BatterieSpannung_45" komplett raus, auch die Funktion.
                                Installier mal bitte die stable Version 1.6.4 zur Sicherheit dasses nicht am Skript liegt. Klappts dann immer noch nicht >
                                Lösche alle Funktionszuweisungen Deiner Geräte bis auf eine und gugg obs dann geht (JS Adapter neustarten nicht vergessen). Wenns mit dem einen Gerät geht, dann bitte die anderen nach und nach hinzufügen bis der Fehler kommt (oder auch nicht). Sollte es auch mit einem Gerät nicht klappen wär evtl. ne Anydesk Session sinnvoll damit ich mir das mal direkt am System anschauen kann.

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

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

                                  Hi,
                                  Du meinst dein Script. das ist die 1.64.
                                  ![Bild Text](8b9e6c8a-47ce-4988-a2f6-71ad11703b69-grafik.png Bild Link)
                                  Die_45 ist raus . geht immer noch nicht. Werde die Einstellungen jetzt löschen und dann
                                  nach und nach die Funktionen wieder hochfahren und schauen ob es läuft.
                                  Ist vielleicht hier was falsch?
                                  ![Bild Text](e91876db-9a4e-46c6-ba20-18429d72e578-grafik.png Bild Link)
                                  Danke für deine Hilfe.

                                  Gruß
                                  Alero

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

                                    Hi Pittini,

                                    ich habe alle Funktionen raus genommen und egal welche ich einzeln hereinnehme bekomme ich das gleiche Ergebnis.

                                    ;-(
                                    Das mit der Anydesk session wäre prima.

                                    Gruß
                                    Alero

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

                                      Erstmal ein dickes Dankeschön!Dass du deine Arbeit mit uns teilst. Ich habe eine Frage bezügliches meines Problemes.
                                      Was soll die Info ( s. Bild) mir über dem gelb makierten Sensor aussagen?
                                      Aktuell ist aber Küchen Sensor am niedrigsten.

                                      bf11f00b-f7c0-42ef-895b-0c00d9a7efe4-grafik.png

                                      habe Aktuell diese Einstellung

                                      V. 1.6.6

                                      //Grund Einstellungen
                                      const praefix = "javascript.0.BatterieUeberwachung."; //Grundpfad für Script DPs
                                      const logging = false; //Logging aktivieren?
                                      const FunktionBaseName = "BatterieSpannung_30"; //Name der Funktion welche für die Batterieüberwachung genutzt wird
                                      const UseTelegram = true; // 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 = true; // 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?
                                      
                                      //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 = false; //Tabellenspalte mit laufender Nummer anzeigen?
                                      const TblShowDeviceIDCol = true; //Tabellenspalte mit Geräte ID anzeigen?
                                      const TblShowDeviceNameCol = true; //Tabellenspalte mit Gerätenamen anzeigen?
                                      const TblShowRoomCol = false; //Tabellenspalte mit Raum anzeigen?
                                      const TblShowUmaxCol = false; //Tabellenspalte mit Batterie Nennspannung anzeigen? 
                                      const TblShowUistCol = false; //Tabellenspalte mit aktueller Batteriespannung anzeigen?
                                      const TblShowUlimitCol = false; //Tabellenspalte mit unterer Batterielimit Spannung anzeigen?
                                      const TblShowProzbatCol = false; //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?
                                      
                                      
                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        Dragon @canim last edited by

                                        @canim Der FunktionBaseName stimmt nicht... Du solltest die Zahl dort wieder entfernen. Das steht zumindest in der Beschreibung
                                        Er sollte "BatterieSpannung_" heißen.

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

                                          @David-Froebus Super!! Danke, dass war der Punkt! Die Sensoren haben alle 3V, deswegen hatte ich micht dran festgehalten,aber die Datenpunkte sind aus % statt V. Macht jetzt klick 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            Frank579 last edited by

                                            Hallo @Pittini erst mal danke vielen Dank für das Script, echt 👍
                                            Habe es heute auch mal Installiert, natürlich wollte ich direkt die neueste testen 🙂 .
                                            Leider werden damit die "low Bat" Geräte als Leer angezeigt (-400%) mit der 1.6.4 Klappt es wunderbar, die anderen werden auch mit der 1.6.6 (Zigbee) richtig angezeigt, weiß ja nicht ob das schon bekannt ist, daher hier mal als info.
                                            Gruß Frank

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            647
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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