Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Skript zur dynamischen Generierung Batterie/Akku Symbol

    NEWS

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    Skript zur dynamischen Generierung Batterie/Akku Symbol

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ro75
      Ro75 @sigi234 last edited by

      @sigi234 das Ladesymbol ist im Code - ist bereits integriert. Nur nicht die Option links, rechts - noch nicht

      Ro75.

      sigi234 1 Reply Last reply Reply Quote 0
      • sigi234
        sigi234 Forum Testing Most Active @Ro75 last edited by

        @ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

        @sigi234 das Ladesymbol ist im Code - ist bereits integriert. Nur nicht die Option links, rechts - noch nicht

        Ro75.

        Ja, aber ich meine das:

        @ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

        Der eigentliche Aufruf - ein BEISPIEL

        Ro75 1 Reply Last reply Reply Quote 0
        • Ro75
          Ro75 @sigi234 last edited by

          @sigi234 das Beispiel ist doch auch angepasst.

          Ro75.

          sigi234 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @Ro75 last edited by

            @ro75 Sehr cool, danke für das teilen!

            1 Reply Last reply Reply Quote 1
            • sigi234
              sigi234 Forum Testing Most Active @Ro75 last edited by

              @ro75

              Hallo, also brauche ich für jedes Gerät ein Skript?
              Kannst du noch die Einheit konfigurierbar machen? (Volt statt %)
              Ev. noch die Zahl ohne runden und mit Dezimal?
              Die Range einstellbar?

              Screenshot (1385).png

              Ro75 1 Reply Last reply Reply Quote 0
              • Ro75
                Ro75 @sigi234 last edited by

                @sigi234 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

                Hallo, also brauche ich für jedes Gerät ein Skript?

                Nein. Du rufst die Funktion nur mit anderen Werten, sprich Datenpunkt (Batteriestand Gerät 2 auf) für Batteriestand und DP für SVG auf.

                Ro75.

                sigi234 Rene55 2 Replies Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active @Ro75 last edited by

                  @ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

                  @sigi234 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

                  Hallo, also brauche ich für jedes Gerät ein Skript?

                  Nein. Du rufst die Funktion nur mit anderen Werten, sprich Datenpunkt (Batteriestand Gerät 2 auf) für Batteriestand und DP für SVG auf.

                  Ro75.

                  Ok, begriffen

                  1 Reply Last reply Reply Quote 0
                  • Rene55
                    Rene55 @Ro75 last edited by

                    @ro75 Wie kommt man nur auf solche Ideen. Tolle Leistung - bin begeistert.

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

                      eace03e9-3cb1-4cdc-ac89-5b1bb4ac4a99-image.png

                      neue Funktionalitäten.

                      • Ladesymbol frei beweglich

                      • freies Suffix, alternativ komplett freier Text

                      • Kommastellen möglich

                      Funktion und Beispiel im ersten Post aktualisiert. Viel Spaß

                      Ro75.

                      1 Reply Last reply Reply Quote 1
                      • Ro75
                        Ro75 last edited by Ro75

                        473754d2-1ed2-4e4b-92a8-05be890848e5-image.png
                        1.0.6: Sortierung der Parameter, Ladesymbol kann auf Wunsch sanft blinken, Dokumentation und Beispiel angepasst

                        WICHTIG: Wird der Code ausgetauscht- MUSS der Aufruf mit geändert werden! - BEISPIEL ansehen!

                        Ro75.

                        sigi234 1 Reply Last reply Reply Quote 0
                        • sigi234
                          sigi234 Forum Testing Most Active @Ro75 last edited by sigi234

                          @ro75

                          Kannst du mir bitte mal deinen Aufruf mit mehreren Symbolen zeigen?

                          Ro75 1 Reply Last reply Reply Quote 0
                          • Ro75
                            Ro75 @sigi234 last edited by Ro75

                            @sigi234 zum Beispiel so. Musst es für dich halt anpassen

                            Deklaration

                            const ZielDPHW = '0_userdata.0.Batterie_Heizung_WZ';
                            const ZielDPHK = '0_userdata.0.Batterie_Heizung_KZ';
                            const ZielDPHB = '0_userdata.0.Batterie_Heizung_Bad';
                             
                            const dValueW = 'fritzdect.0.DECT_099950330172.battery';
                            const dValueK = 'fritzdect.0.DECT_099950346641.battery';
                            const dValueB = 'fritzdect.0.DECT_099950325774.battery';
                            
                            const decimalPlaces = 0; // bitte anpassen
                            const labelSuffix = '%'; // bitte anpassen
                            const customLabel = null; // bitte anpassen
                            const showPercent = true; // bitte anpassen
                            const strongColors = true; // bitte anpassen
                            const colorScheme = 'default'; // bitte anpassen
                            const showBolt = false; // bitte anpassen
                            const boltPos = 100; // bitte anpassen
                            const blinkBolt = false; // bitte anpassen
                            

                            //einfacher Funktionsaufruf mit Speicherung der SVG in einen Datenpunkt

                            setState(ZielDPHW, generateBatterySvg(getState(dValueW).val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);
                            setState(ZielDPHK, generateBatterySvg(getState(dValueK).val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);
                            setState(ZielDPHB, generateBatterySvg(getState(dValueB).val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);
                            

                            //Auf Änderung reagieren und Speicherung der SVG in einen Datenpunkt

                            on({ id: dValueW, change: 'ne' }, dp => {
                                setState(ZielDPHW, generateBatterySvg(dp.state.val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);
                            });
                            on({ id: dValueK, change: 'ne' }, dp => {
                                setState(ZielDPHK, generateBatterySvg(dp.state.val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);
                            });
                            on({ id: dValueB, change: 'ne' }, dp => {
                                setState(ZielDPHB, generateBatterySvg(dp.state.val, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);
                            });
                            

                            Ro75.

                            1 Reply Last reply Reply Quote 1
                            • Ro75
                              Ro75 last edited by

                              c307a50d-756d-4dfc-8cf4-ba363e3cacb6-image.png

                              Und es lässt sich auch alles zentral konfigurieren, sodass Änderungen zentral vorgenommen, gespeichert und sofort in Kraft treten.

                              Ro75.

                              1 Reply Last reply Reply Quote 0
                              • M
                                Maxtor62 @sigi234 last edited by

                                @sigi234
                                hast Du den Aufruf mit einem extra Skript gestartet?

                                Bei mir wird kein Datenpunkt erstellt.
                                Grüße

                                Ro75 1 Reply Last reply Reply Quote 0
                                • Ro75
                                  Ro75 @Maxtor62 last edited by Ro75

                                  @maxtor62 in meinem Beispiel (Post 1) wird auch kein Datenpunkt automatisch erstellt. Im Beispiel wird auf einen bereits existierenden Datenpunkt verwiesen.

                                  Ro75.

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    Maxtor62 @Ro75 last edited by

                                    @ro75

                                    Hi, danke für Deine Hilfe. Bin halt kein Java-Scripter.

                                    Meine Datenpunkte:

                                    const ZielDP = '"0_userdata.0.vis.VIS-Batterie.Batt'; // bitte anpassen
                                     
                                    const dValue = getState('ecoflow-mqtt.0.D3M1ZE1A9H8G0082.DisplayPropertyUpload.bmsBattSoc').val; // bitte anpassen
                                    const decimalPlaces = 0; // bitte anpassen
                                    const labelSuffix = '%'; // bitte anpassen
                                    const customLabel = null; // bitte anpassen
                                    const showPercent = true; // bitte anpassen
                                    const strongColors = true; // bitte anpassen
                                    const colorScheme = 'default'; // bitte anpassen
                                    const showBolt = false; // bitte anpassen
                                    const boltPos = 100; // bitte anpassen
                                    const blinkBolt = false; // bitte anpassen
                                     
                                    //Funktionsaufruf mit Speicherung der SVG in einen Datenpunkt
                                    setState(ZielDP, generateBatterySvg(dValue, decimalPlaces, labelSuffix, customLabel, showPercent, strongColors, colorScheme, showBolt, boltPos, blinkBolt), true);
                                    
                                    
                                    Ro75 1 Reply Last reply Reply Quote 0
                                    • Ro75
                                      Ro75 @Maxtor62 last edited by Ro75

                                      @maxtor62 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

                                      const ZielDP = '"0_userdata.0.vis.VIS-Batterie.Batt';

                                      da ist ein Fehler drin. Korrekt wäre

                                      const ZielDP = '0_userdata.0.vis.VIS-Batterie.Batt';
                                      

                                      Und der Datenpunkt (String / Zeichen) muss bereits existieren.

                                      Ro75.

                                      M Rene55 2 Replies Last reply Reply Quote 0
                                      • M
                                        Maxtor62 @Ro75 last edited by

                                        @ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

                                        @maxtor62 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol:

                                        const ZielDP = '"0_userdata.0.vis.VIS-Batterie.Batt';

                                        da ist ein Fehler drin. Korrekt wäre

                                        const ZielDP = '0_userdata.0.vis.VIS-Batterie.Batt';
                                        

                                        Und der Datenpunkt (String / Zeichen) muss bereits existieren.

                                        Ro75.

                                        Sorry, das " war fehl am Platz. Läuft.👍

                                        Danke Dir

                                        Ro75 1 Reply Last reply Reply Quote 0
                                        • Ro75
                                          Ro75 @Maxtor62 last edited by

                                          @maxtor62 Super, freut mich.

                                          Ro75.

                                          1 Reply Last reply Reply Quote 0
                                          • Rene55
                                            Rene55 @Ro75 last edited by

                                            @ro75 Ich stoße auf einen Fehler, wenn ich ein SVG generiere mit "showBolt = true;".

                                            XML-Verarbeitungsfehler: Präfix nicht an einen Namespace gebunden
                                            Adresse: file:///Z:/Dokumentationen/ioBroker/ro75_BattSymb2a.svg
                                            Zeile Nr. 49, Spalte 7:
                                                  <use xlink:href="#boltSymbol-b-arf2f44" class="" transform="translate(184, 90)
                                            ------^
                                            
                                            Ro75 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            542
                                            Online

                                            32.4k
                                            Users

                                            81.3k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring
                                            8
                                            48
                                            729
                                            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