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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Script fürTabelle der Batterie Zustände

    This topic has been deleted. Only users with topic management privileges can see it.
    • Bjoern77
      Bjoern77 @luft-post last edited by

      Moin
      Klasse Script. Vielen Dank für die Arbeit.
      Es läuft bei mir mit 11 FritzDect301, diversen Zigbee und 2 Homematic Heizungs-Thermostaten.
      Leider zeigt mir der eine Homematic Thermostat in rot 3,3V an. Der andere ist grün bei 3,2V.
      Was muss ich tun?
      Danke und Gruß
      Björn

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

        @bjoern77

        das script hat folgendes problem:

        es kann 3 verschiedene batterien geben. bis 1.5V, bis 3.3V und bis 4.5(5) V

        ich habe aber die info nicht, welches gerät, welche batteriegröße hat

        das bedeutet: jede batterie-möglichkeit hat einen bereich, welche immer die untere größe als grenze hat

        das scripts prüft die größe und kommt daher in einen bereich

        beispiel batterie hat am anfang 4.5V ist also grün für den bereich von 4.5V
        unter 3.3V denkt das script, es ist im bereich der 3.3V batterie und wird daruch wieder grün, weil es nicht weiß, dass es eine 4.5V batterie hat

        ich bin davon ausgegagen, dass man beim erscheinen des roten bereichs und der alarmierung die batterie wechselt - dann paßt es wieder - das ist ja auch der sinn des scriptes

        ein umschreiben des scriptes werde ich wohl nicht machen. ich müßte dann eine art eigene datenbank erstellen und beim ersten erkennen des gerätes dem gerät einen bereich zuweisen (wenn batterie voll ist)- aber wie erwähnt - ist die batterie einmal rot, sollte man sie eh wechseln

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

          @liv-in-sky Moin
          Danke, das waren die entscheidenen Tips. Ich hatte im Scipt nach "3.3" gesucht. Du hast aber ">3.2" im Scipt stehen.
          Ich habe jetzt Zeile 770 geändert auf "if (val1helper>3.3){" und schon klappt es.
          Danke und Gruß
          Björn

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

            @bjoern77

            ja für dich kannst du das machen, da du nur 4,5 volt hast - wenn du weitere devices mit 3.3 installierst, hast du wieder ein ähnliches problem

            hauptsache es läuft

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

              @liv-in-sky Ganz klar ist mir das noch nicht: Die Thermostaten haben 2 AA Batterien mit je 1.5V.
              Der Datenpunkt sagt bei einem 3.2V und beim anderen 3.3V. Wie kommst du auf 4.5V?

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

                @bjoern77 weil er über 3.2 sein müsste, um rot anzuzeigen - dann ist er im schwachbereich der 4.5v rechnung (3*1.5)

                ist schon alles sehr lange her - hoffe ich erinnere mich richtig

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

                  Ich habe mir extra für vershiedene Batterien Alias angelegt...die zeigen mir jeweils - abhängig von der Batterie - an ob voll/leer...

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

                    @liv-in-sky Ahh, ok. Dann rutsche ich mit dem einen Thermostat auf Grund von einem kleinen Messfehler oder etwas zu hoher Anfangsbatteriespannung in den 4.5V Bereich. Nun habe auch ich es verstanden. Danke und Gruß
                    Björn

                    1 Reply Last reply Reply Quote 0
                    • Bjoern77
                      Bjoern77 @Kueppert last edited by

                      @kueppert Moin
                      Hast du da ein Beispiel? Ich kann mir das schwer vorstellen.
                      Danke und Gruß
                      Björn

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kueppert @Bjoern77 last edited by

                        @bjoern77 Klar, hab ich (anbei). Ich nutze dann noch das Blockly von DSLraser https://forum.iobroker.net/post/273896 (vorher hatte ich auch das hier in Nutzung). Sieht dann in iQontrol zzB so aus:

                        b15f0744-9ddc-477f-966e-23fccac62982-image.png

                        zB für ZigBee das ALias-Skript (hab dort auch noch Links zu Beiträgen verlinkt):

                        ///https://forum.iobroker.net/topic/27295/vorlage-alias-per-skript-erzeugen
                        ///VAR-Konvertierung: https://forum.iobroker.net/topic/33747/alias-best-practices-wie-kann-man-es-besser-machen/39
                        
                        // Original-Datenpunkt
                        const idOrigin = 'zigbee.0.00158d00034XYZXY.battery'/*EG WHZ Fenster L Battery percent*/;
                        
                         
                        // Alias-Datenpunkt
                        const idAlias = 'Batterie.Wohnzimmer_Fenster_links';
                        var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
                        // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                        nameAlias = 'Wohnzimmer Fenster links';
                        // desc = 'per Script erstellt';
                        typeAlias = 'boolean'; // 'boolean' oder 'number' oder 'switch' oder 'state'
                        read = "val < 15"; // Erkennung "Aus" --> false erfolgt automatisch  
                        // write = "val ? 'Ein' : 'Aus'";
                        role = 'indicator.lowbat'; // 'switch.light' oder 'value.temperature' oder 'window.value' oder 'indicator.lowbat'
                        // min = 0; // nur Zahlen
                        // max = 100; // nur Zahlen
                        // unit = '°C'; // nur für Zahlen, z.B. '%' oder '°C' oder ' ' wenn keine Unit!
                        states = {true: 'leer', false: 'voll'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                        custom = []; // verhindert doppelte Ausführung von history, telegram, mqtt-client, ...
                         
                        function createAlias(idSrc, idDst) {
                           if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                           else {
                              var obj = {};
                              obj.type = 'state';
                              obj.common = getObject(idSrc).common;
                              obj.common.alias = {};
                              obj.common.alias.id = idSrc;
                              if(typeAlias) obj.common.type = typeAlias;
                              if(obj.common.read !== false && read) obj.common.alias.read = read;
                              if(obj.common.write !== false && write) obj.common.alias.write = write;
                              if(nameAlias) obj.common.name = nameAlias;
                              if(role) obj.common.role = role;
                              if(desc) obj.common.desc = desc;
                              if(min !== undefined) obj.common.min = min;
                              if(max !== undefined) obj.common.max = max;
                              if(unit) obj.common.unit = unit;
                              if(states) obj.common.states = states;
                              if(custom && obj.common.custom) obj.common.custom = custom;
                              if(obj.common.icon) delete obj.common.icon;
                              obj.native = {};
                              setObject(idDst, obj);
                           } 
                        }
                         
                        createAlias(idOrigin, 'alias.0.' + idAlias);
                        
                        Bjoern77 1 Reply Last reply Reply Quote 0
                        • Bjoern77
                          Bjoern77 @Kueppert last edited by

                          @kueppert Klasse. Danke!
                          Gruß
                          Björn

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

                            @liv-in-sky Kann es sein , daß im Script in Zeile 932 und 1057 für json3 anstatt symbolOK symbolKO eingetragen wurde ?

                            if (val1help) {val2="<font color=\"red\">"+symbolKO;json3=symbolKO} else{val2=symbolOK;json3=symbolKO}
                            
                            liv-in-sky 1 Reply Last reply Reply Quote 1
                            • liv-in-sky
                              liv-in-sky @Gargano last edited by

                              @gargano

                              da hst du wohl recht - anscheinend hat niemand mit diesem device ein material design in benutzung.

                              danke habe es im script im ersten post ausgebessert - du kannst das ja in deinem script machen - kein download bei dir nötig

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

                                @liv-in-sky Habe ich schon bei mir geändert, hab mich nur gewundert daß alle meine alten RPC Devices rot markiert waren. Ich tret aber immer in sowas rein 😊

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

                                  @gargano solange du immer eine lösung findest, ist das ja nicht wild

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

                                    @liv-in-sky erstmal viele Dank für deine Arbeit.

                                    Ich habe mir das Skript per Chrome kopiert.

                                    Dabei ist direkt aufgefallen, dass alle Umlaute falsch dargestellt werden,

                                    So sieht dann entsprechend auch im ersten Versuch mit der Tabelle aus:

                                    eb854f66-d011-4137-89cc-3339ddfbd05d-grafik.png

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

                                      @kuddel Chrome zerhakkt bei copy-paste den Inhalt

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        Kuddel @Kueppert last edited by

                                        @kueppert danke für die schnelle Antwort.

                                        Wie muss ich die TXT Datei dann öffnen / downloaden ?

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          Kueppert @Kuddel last edited by

                                          @kuddel runterladen die Datei (Rechtsklick => download) und dann mit Notepad++ öffnen (Windows)

                                          K 1 Reply Last reply Reply Quote 1
                                          • K
                                            Kuddel @Kueppert last edited by

                                            @kueppert super, hat geklappt.

                                            0db0c464-b80e-46ca-a5bd-66621112181d-grafik.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            508
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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