Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Script fürTabelle der Batterie Zustände

    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

    Script fürTabelle der Batterie Zustände

    This topic has been deleted. Only users with topic management privileges can see it.
    • Scrounger
      Scrounger Developer @liv-in-sky last edited by

      @liv-in-sky

      Bin grad auf die Idee gekommen, dass man doch aus der Spannung die Batterieladung in % umrechnen könnte. Das geht zumindest mit den Homematic / Homemativ ip devices, indem man das Delta vom Spannungswert bei neuen Batterie berechnet und durch die Spannung bei neuen Batterie - die Unterspannungsgrenze teilt.
      Ob das mit allen von dir unterstützten Geräten geht kann ich natürlich nicht sagen.

      Evtl. könntest du das noch mit in dein Skript ein bauen?

      Hier mein Skript wie ich die Berechnung mit meinen HM Devices mach - zur Inspiration, muss natürlich angepasst werden.

      // Batterie Spannung in % umrechnen -> Batterieladung ****************************************************************************************************
      
      // import
      const mathjs = require("mathjs");
      
      let selector = `[id=${myDevices.Sensoren.getId()}.*.Spannung]`
      let alleSensorenSpannung = $(selector);
      
      // Fehlermeldung ausgeben, wenn selector kein result liefert
      if (alleSensorenSpannung.length === 0) {
          console.error(`no result for selector '${selector}'`)
      }
      
      // Trigger
      alleSensorenSpannung.on(SpannungToProzent);
      
      function SpannungToProzent() {
          try {
      
              for (var i = 0; i <= alleSensorenSpannung.length - 1; i++) {
                  let id = alleSensorenSpannung[i];
                  let val = getState(id).val;
      
                  if (val > 2) {
                      if (existsState(id.replace('.Spannung', '.Batterieladung'))) {
                          setState(id.replace('.Spannung', '.Batterieladung'), calcPercent(val, 2), true);
                      }
                  } else {
                      if (existsState(id.replace('.Spannung', '.Batterieladung'))) {
                          setState(id.replace('.Spannung', '.Batterieladung'), calcPercent(val, 1), true);
                      }
                  }
      
                  function calcPercent(val, factor){
                      let spannungNeueBatterie = 1.5 * factor;
                      let unterSpannungsGrenze = 1.1 * factor;
      
                      return mathjs.round( (val - unterSpannungsGrenze) / (spannungNeueBatterie - unterSpannungsGrenze) * 100, 0);
                  }
              }
          } catch (err) {
              console.error(`[SpannungToProzent] error: ${err.message}, stack: ${err.stack}`);
          }
      }
      
      SpannungToProzent();
      
      arteck 1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @Scrounger last edited by

        @Scrounger im zigbee wird das so gemacht

        Scrounger 1 Reply Last reply Reply Quote 0
        • Scrounger
          Scrounger Developer @arteck last edited by

          @arteck
          Vielleicht könnte das auch direkt durch den hm-rpc adapter zur verfügung gestellt werden.
          Hab gleich mal nen feature request gestellt 🙂
          https://github.com/ioBroker/ioBroker.hm-rpc/issues/237

          Scrounger created this issue in ioBroker/ioBroker.hm-rpc

          closed Datepunkt für Batterieladung in % #237

          liv-in-sky 2 Replies Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @Scrounger last edited by

            @Scrounger erst mal danke , dass du noch weiter dran gedacht hast - werd das mal studieren - habe ja teilweise 3 verschiedene werte zur verfügung (batteriekapazität (1.5V, 3V oder5V ) beim umrechnen muss sowas auch mit kalkuliert werden

            1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @Scrounger last edited by

              @Scrounger

              ok - das mit dem factor habe ich kapiert

              ich bringe alle 3 verschiedenen werte auf prozent-werte

              hight ist 100%, low ist 0%
              der factor bei den verschiedenen batterie-möglichkeiten ist auch klar: zb. bei 1.5V batterien: 0.75V sind dann 50%

              dann erstelle ich ein neues json-property, welches diese werte hat und übergebe es an dein widget - im widget muss ich bei der "Wert"-spalte das neue property als sortierung eingeben !

              so könnte es funktionieren ?

              dslraser 1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @liv-in-sky last edited by

                @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                zb. bei 1.5V batterien: 0.75V sind dann 50%

                bei 0.75V sind die leer...

                liv-in-sky 3 Replies Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @dslraser last edited by

                  @dslraser guter einwand (wenigstens hast du mit gedacht 🙂 )-beim factor darf ich nicht von 0 bis 1,5V rechnen !

                  1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @dslraser last edited by

                    @dslraser 0% ist dann bei 1.1 - so habe wir das berechnet

                    das wird ein spaß - das ist keine lineare kurve! bin gespannt ob ich auf den faktor kommen werde

                    1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @dslraser last edited by liv-in-sky

                      @dslraser ich wollte kein +1 - stattdessen eine formel hätte mir mehr freude gemacht 🙂

                      Scrounger 1 Reply Last reply Reply Quote 0
                      • Scrounger
                        Scrounger Developer @liv-in-sky last edited by

                        @liv-in-sky

                        Formel:
                        (DP Wert - UnterSpannungsGrenze) / (SpannungNeueBatterie - UnterSpannungsGrenze) * 100

                        Beispiel mit HM Türkontakt HMIP-SWDO:

                        • SpannungNeueBatterie = 1,5V
                        • UnterSpannungsGrenze = 1,1V (kann in der CCU verändert werden!)

                        Sagen wir haben aktuell einen DP Wert von 1,3V, dann ist das in Prozent nach obiger Formel 50%.

                        liv-in-sky 1 Reply Last reply Reply Quote 1
                        • liv-in-sky
                          liv-in-sky @Scrounger last edited by liv-in-sky

                          @Scrounger super - danke - die fehlen noch , der rest funktioniert schon bei der sortierung

                          ist zwar linear - aber das sollte als annäherung völlig aussreichen

                          ub.privat 1 Reply Last reply Reply Quote 0
                          • ub.privat
                            ub.privat @liv-in-sky last edited by

                            @liv-in-sky

                            ...macht richtig Spaß mitzulesen! Musste schon schmunzeln. Am schönsten war "0.75V - dann sind sie leer!" ...
                            Das hier ist ein echt Klasse Forum, dir wird geholfen und ein wenig Augenzwinkern ist auch dabei! Da vergisst man glatt den ganzen Alltagsstress.
                            Danke!!! 👍 😉

                            liv-in-sky 1 Reply Last reply Reply Quote 1
                            • liv-in-sky
                              liv-in-sky @ub.privat last edited by

                              @ub-privat

                              moin,

                              im ersten post ist ein neues script und das table widget - die sortierung sieht aber etwas seltsam aus (nach werten), wenn man verschiedene geräte mit z.b verschiedenen batterie kapzitäten hat ( 1,5V oder 3 Volt)

                              siehst dir einfach mal an

                              im neuen table widget ist bei sortierung im spaltenlayout1 das object "helpSort" dazugekommen

                              1 Reply Last reply Reply Quote 0
                              • B
                                Bielefelder81 last edited by

                                Hallo.

                                Ich habe zwei Fragen.

                                1.) Im Script steht TABELLEN.AkkuMeessage ... Darf ich da das eine E entfernen was zu viel ist, oder hat das irgendwelche
                                Bezüge. Mit Strg+F konnte ich im Script keinen weiteren Punkt mit Meessage finden.

                                2.) Mich interessiert neben dem prozentualen Wert der Batterie auch welchen Typ Batterie ich in dem Gerät verbaut habe.
                                Wie binde ich das ein?

                                MfG Christian

                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @Bielefelder81 last edited by liv-in-sky

                                  @Bielefelder81 du kannst die datenpunkte anlegen, wie und wo du willst - du musst sie halt auch im script dann aktualisieren (nur oben im setting bereich) - deshalb stehen die im variablen teil - somit kann das jeder für sich einstellen - meine datenpunkte sind nur beispiele von mir

                                  ich kann die batterie typen nicht aus den datenpunkt informationen generieren - d.h. man müßte das über eine weitere variable vom benutzer machen lassen - das bedeutet - du müßtest einen eintrag für jedes device und dessen batterie typ machen

                                  diese umstellung erzeugt extrem viel aufwand - wenn ich den batt-typ zusätzlich in der wert spalte (in klammern) anzeigen lasse, kann nicht danach sortiert werden (materialdesign) - nehme ich eine neue spalte dafür, brauche ich ein anderes table-template script

                                  sorry - da müßten schon einige benutzer danach verlangen, dass ich das momentan umsetze

                                  B H 2 Replies Last reply Reply Quote 0
                                  • B
                                    Bielefelder81 @liv-in-sky last edited by

                                    @liv-in-sky Danke, für deine Antwort.
                                    Dann könnte man ja unter jedem Device ein Datenpunkt namens "batterytype" oder so händisch pflegen und dann wahrscheinlich mit deinem Script rausziehen.
                                    0ad28408-7cbc-4f2a-9b4d-cd48ebce4a61-image.png

                                    Der String aka Zeichenkette wird aber immer rot angezeigt... Habe das noch nie gemacht. Oder soll ich lieber das Objekt des Temperatursensors in Ruhe lassen und unter 0.userdata.0 ein eigenes Objekt anlegen?

                                    liv-in-sky 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @Bielefelder81 last edited by

                                      @Bielefelder81

                                      man sollte keine datenpunkte unter adaptern selbst anlegen - die könnten gelöscht werden - evtl bei neuinstallation wegen problem

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

                                        Vielen dank für das tolle Skript! Super Sache! 🙂

                                        1 Reply Last reply Reply Quote 1
                                        • H
                                          hofmannha @liv-in-sky last edited by

                                          @liv-in-sky
                                          Hallo,
                                          bin auf deine Batterieanzeige gestoßen und habe großes Interesse daran.
                                          Würdest Du mir das Finale Script mal zur Verfügung stellen?
                                          Könntest Du mir mal ein Screenshot von deinen angelegten Datenpunkte geben?
                                          Bin noch in den Anfängen vom ioBroker.
                                          Gruß

                                          H 1 Reply Last reply Reply Quote 0
                                          • H
                                            hofmannha @hofmannha last edited by

                                            @hofmannha sagte in Script fürTabelle der Batterie Zustände:

                                            @liv-in-sky
                                            Hallo,
                                            bin auf deine Batterieanzeige gestoßen und habe großes Interesse daran.
                                            Würdest Du mir das Finale Script mal zur Verfügung stellen?
                                            Könntest Du mir mal ein Screenshot von deinen angelegten Datenpunkte geben?
                                            Ich habe Homematic-Sensoren und Xiaome Sensoren.
                                            Bin noch in den Anfängen vom ioBroker.
                                            Gruß

                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            916
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring template
                                            67
                                            1379
                                            414295
                                            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