Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. W in Kw umrechnen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    253

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    243

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    901

W in Kw umrechnen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
21 Beiträge 6 Kommentatoren 2.1k Aufrufe 5 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • R romestylez

    Hallo,

    ich lese über ioBroker die Leistung von meinem BKW aus. Der Wert wird dann in einer view angezeigt. Das funktioniert ohne Probleme. Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW" und bei 1100 halt "1.1 kW" wie ist das möglich ?

    Aktuell lese ich nur den DP aus

    049012f2-ce0a-4615-988d-24b8b85c9506-image.png

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #2

    @romestylez sagte in W in Kw umrechnen:

    Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW" und bei 1100 halt "1.1 kW" wie ist das möglich ?

    nicht soo einfach.
    alles umrechnen geht mit Faktor (ein paar Zeilen tiefer)

    selbst wenn du das per Skript/Alias bewerkstelligst, bleibt die Einheit immer gleich.

    Wenn es denn so sein musd, nimmst du zwei gleiche Widgets übereinander, konfigurierst eins auf W, das andere auf kW und lässt via Sichtbarkeit nur das gewünschte anzeigen

    kein Support per PN! - Fragen im Forum stellen -
    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    MartinPM 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      @romestylez sagte in W in Kw umrechnen:

      Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW" und bei 1100 halt "1.1 kW" wie ist das möglich ?

      nicht soo einfach.
      alles umrechnen geht mit Faktor (ein paar Zeilen tiefer)

      selbst wenn du das per Skript/Alias bewerkstelligst, bleibt die Einheit immer gleich.

      Wenn es denn so sein musd, nimmst du zwei gleiche Widgets übereinander, konfigurierst eins auf W, das andere auf kW und lässt via Sichtbarkeit nur das gewünschte anzeigen

      MartinPM Offline
      MartinPM Offline
      MartinP
      schrieb am zuletzt editiert von MartinP
      #3

      @homoran Naja, kompliziert wäre es aber auch nicht gerade ...

      Vielleicht funktionierte es auch mit Alias Konvertierungsfunktionen ... hier aber als Blockly

      cfb099df-f12f-4a33-a837-202a054f9d61-grafik.png

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
      Linux pve 6.17.9-1-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      1 Antwort Letzte Antwort
      0
      • R romestylez

        Hallo,

        ich lese über ioBroker die Leistung von meinem BKW aus. Der Wert wird dann in einer view angezeigt. Das funktioniert ohne Probleme. Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW" und bei 1100 halt "1.1 kW" wie ist das möglich ?

        Aktuell lese ich nur den DP aus

        049012f2-ce0a-4615-988d-24b8b85c9506-image.png

        haus-automatisierungH Offline
        haus-automatisierungH Offline
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von haus-automatisierung
        #4

        @romestylez sagte in W in Kw umrechnen:

        Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW"

        Könntest ja mit einem Alias arbeiten.

        val >= 1000 ? `${(val / 1000).toFixed(1)} kW` : `${val} W`
        

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        HomoranH 1 Antwort Letzte Antwort
        1
        • haus-automatisierungH haus-automatisierung

          @romestylez sagte in W in Kw umrechnen:

          Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW"

          Könntest ja mit einem Alias arbeiten.

          val >= 1000 ? `${(val / 1000).toFixed(1)} kW` : `${val} W`
          
          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #5

          @haus-automatisierung sagte in W in Kw umrechnen:

          @romestylez sagte in W in Kw umrechnen:

          Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW"

          Könntest ja mit einem Alias arbeiten.

          val >= 1000 ? `${(val / 1000).toFixed(1)} kW` : `${val} W`
          

          dann ist es aber Text und braucht ein anderes Widget

          kein Support per PN! - Fragen im Forum stellen -
          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          MartinPM 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @haus-automatisierung sagte in W in Kw umrechnen:

            @romestylez sagte in W in Kw umrechnen:

            Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW"

            Könntest ja mit einem Alias arbeiten.

            val >= 1000 ? `${(val / 1000).toFixed(1)} kW` : `${val} W`
            

            dann ist es aber Text und braucht ein anderes Widget

            MartinPM Offline
            MartinPM Offline
            MartinP
            schrieb am zuletzt editiert von
            #6

            @homoran said in W in Kw umrechnen:

            dann ist es aber Text und braucht ein anderes Widget

            Aber sicherlich weniger aufwändig, als Widgets zu stapeln ;-)

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
            Linux pve 6.17.9-1-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            HomoranH 1 Antwort Letzte Antwort
            0
            • MartinPM MartinP

              @homoran said in W in Kw umrechnen:

              dann ist es aber Text und braucht ein anderes Widget

              Aber sicherlich weniger aufwändig, als Widgets zu stapeln ;-)

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #7

              @martinp sagte in W in Kw umrechnen:

              weniger aufwändig, als Widgets zu stapeln

              auch in Summe mit Konvertierung als Skript oder alias?
              oder um einheitlich konfigurierte Widgets zu verwenden.

              Aber eigentlich egal, ich bin halt von der Ausgangslage ausgegangen.

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              MartinPM 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @martinp sagte in W in Kw umrechnen:

                weniger aufwändig, als Widgets zu stapeln

                auch in Summe mit Konvertierung als Skript oder alias?
                oder um einheitlich konfigurierte Widgets zu verwenden.

                Aber eigentlich egal, ich bin halt von der Ausgangslage ausgegangen.

                MartinPM Offline
                MartinPM Offline
                MartinP
                schrieb am zuletzt editiert von
                #8

                @homoran said in W in Kw umrechnen:

                @martinp sagte in W in Kw umrechnen:

                weniger aufwändig, als Widgets zu stapeln

                auch in Summe mit Konvertierung als Skript oder alias?
                oder um einheitlich konfigurierte Widgets zu verwenden.

                Aber eigentlich egal, ich bin halt von der Ausgangslage ausgegangen.

                Das kommt sicherlich auf den Hintergrund an. Der eine kommt mit VIS besser zurecht. Der andere eher mit Javascript und Blockly ...
                Mir fällt Blockly leichter ...

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                Linux pve 6.17.9-1-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                1 Antwort Letzte Antwort
                0
                • R Offline
                  R Offline
                  romestylez
                  schrieb am zuletzt editiert von
                  #9

                  Danke euch allen erst mal !

                  Ich werde mal schauen wie genau ich es umsetze. Ich bastel mir sonst im VIS ziemlich viel irgendwie zurecht auch mit Blockly habe ich nen paar Sachen umgesetzt. Das mit der Sichtbarkeit wäre tatsächlich ne Idee nur ich verstehe den Ansatz mit "geht mit Faktor" nicht. Vielleicht übersehe ich aber auch was auf die Schnelle.

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • R romestylez

                    Danke euch allen erst mal !

                    Ich werde mal schauen wie genau ich es umsetze. Ich bastel mir sonst im VIS ziemlich viel irgendwie zurecht auch mit Blockly habe ich nen paar Sachen umgesetzt. Das mit der Sichtbarkeit wäre tatsächlich ne Idee nur ich verstehe den Ansatz mit "geht mit Faktor" nicht. Vielleicht übersehe ich aber auch was auf die Schnelle.

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #10

                    @romestylez sagte in W in Kw umrechnen:

                    ich verstehe den Ansatz mit "geht mit Faktor" nicht.

                    in den Grundeinstellungen des Number Widgets ksnnst du einen Faktor eingeben
                    von W nach kW wäre dieser 0.001

                    kein Support per PN! - Fragen im Forum stellen -
                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • R romestylez

                      Hallo,

                      ich lese über ioBroker die Leistung von meinem BKW aus. Der Wert wird dann in einer view angezeigt. Das funktioniert ohne Probleme. Ich würde aber gerne wenn der Wert über 1000 Watt ist nicht mehr "1000 W" anzeigen sondern "1 kW" und bei 1100 halt "1.1 kW" wie ist das möglich ?

                      Aktuell lese ich nur den DP aus

                      049012f2-ce0a-4615-988d-24b8b85c9506-image.png

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von OliverIO
                      #11

                      @romestylez

                      Nur VIS Lösung mittels Binding

                      parseInt = wandelt möglichen String in Number um
                      toFixed(1) = rundet Fließkommastelle auf eine Nachkommastelle
                      xx ? true : false = ternäre operator, also sowas wie if xx=wahr then true else false

                      {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" w " : (parseInt(val)/1000).toFixed(1)+" kW"}
                      

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      R MartinPM 2 Antworten Letzte Antwort
                      1
                      • OliverIOO OliverIO

                        @romestylez

                        Nur VIS Lösung mittels Binding

                        parseInt = wandelt möglichen String in Number um
                        toFixed(1) = rundet Fließkommastelle auf eine Nachkommastelle
                        xx ? true : false = ternäre operator, also sowas wie if xx=wahr then true else false

                        {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" w " : (parseInt(val)/1000).toFixed(1)+" kW"}
                        
                        R Offline
                        R Offline
                        romestylez
                        schrieb am zuletzt editiert von
                        #12

                        @oliverio hat perfekt funktioniert vielen vielen Dank ! Daraus kann ich noch Wege für andere Werte ableiten mega hilfreich :)

                        1 Antwort Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          @romestylez

                          Nur VIS Lösung mittels Binding

                          parseInt = wandelt möglichen String in Number um
                          toFixed(1) = rundet Fließkommastelle auf eine Nachkommastelle
                          xx ? true : false = ternäre operator, also sowas wie if xx=wahr then true else false

                          {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" w " : (parseInt(val)/1000).toFixed(1)+" kW"}
                          
                          MartinPM Offline
                          MartinPM Offline
                          MartinP
                          schrieb am zuletzt editiert von MartinP
                          #13

                          Ich finde ja das Rundungs-Verhalten von toFixed() etwas merkwürdig ...

                          https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

                          Ist aber wahrscheinlich ein Fehler in der Dokumentation (in Zeile 10 müsste meiner Meinung nach auf 2.6 aufgerundet werden):

                          const numObj = 12345.6789;
                          
                          numObj.toFixed(); // '12346'; rounding, no fractional part
                          numObj.toFixed(1); // '12345.7'; it rounds up
                          numObj.toFixed(6); // '12345.678900'; additional zeros
                          (1.23e20).toFixed(2); // '123000000000000000000.00'
                          (1.23e-10).toFixed(2); // '0.00'
                          (2.34).toFixed(1); // '2.3'
                          (2.35).toFixed(1); // '2.4'; it rounds up
                          (2.55).toFixed(1); // '2.5'
                          // it rounds down as it can't be represented exactly by a float and the
                          // closest representable float is lower
                          (2.449999999999999999).toFixed(1); // '2.5'
                          // it rounds up as it's less than Number.EPSILON away from 2.45.
                          // This literal actually encodes the same number value as 2.45
                          
                          (6.02 * 10 ** 23).toFixed(50); // 6.019999999999999e+23; large numbers still use exponential notation
                          
                          

                          EDIT: Hab es getestet, funktioniert wie dokumentiert:

                          javascript.0
                          	2024-07-05 11:36:40.375	info	script.js.Fritzbox.Tester: Rundung 2.55 auf 1 Nachkommastelle:2.5
                          javascript.0
                          	2024-07-05 11:36:40.375	info	script.js.Fritzbox.Tester: Rundung 2.551 auf 1 Nachkommastelle:2.6
                          javascript.0
                          	2024-07-05 11:36:40.375	info	script.js.Fritzbox.Tester: Rundung 2.65 auf 1 Nachkommastelle:2.6
                          
                          

                          Hier noch der Code:

                          log('Rundung 2.55 auf 1 Nachkommastelle:' + (2.55).toFixed(1));
                          log('Rundung 2.551 auf 1 Nachkommastelle:' + (2.551).toFixed(1));
                          log('Rundung 2.65 auf 1 Nachkommastelle:' + (2.65).toFixed(1));
                          

                          Hier wird wohl symmetrisch und nicht kaufmännisch gerundet:
                          https://de.wikipedia.org/wiki/Rundung#Symmetrisches_Runden

                          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                          Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                          Linux pve 6.17.9-1-pve
                          6 GByte RAM für den Container
                          Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                          Remote-Access über Wireguard der Fritzbox

                          OliverIOO 1 Antwort Letzte Antwort
                          0
                          • MartinPM MartinP

                            Ich finde ja das Rundungs-Verhalten von toFixed() etwas merkwürdig ...

                            https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

                            Ist aber wahrscheinlich ein Fehler in der Dokumentation (in Zeile 10 müsste meiner Meinung nach auf 2.6 aufgerundet werden):

                            const numObj = 12345.6789;
                            
                            numObj.toFixed(); // '12346'; rounding, no fractional part
                            numObj.toFixed(1); // '12345.7'; it rounds up
                            numObj.toFixed(6); // '12345.678900'; additional zeros
                            (1.23e20).toFixed(2); // '123000000000000000000.00'
                            (1.23e-10).toFixed(2); // '0.00'
                            (2.34).toFixed(1); // '2.3'
                            (2.35).toFixed(1); // '2.4'; it rounds up
                            (2.55).toFixed(1); // '2.5'
                            // it rounds down as it can't be represented exactly by a float and the
                            // closest representable float is lower
                            (2.449999999999999999).toFixed(1); // '2.5'
                            // it rounds up as it's less than Number.EPSILON away from 2.45.
                            // This literal actually encodes the same number value as 2.45
                            
                            (6.02 * 10 ** 23).toFixed(50); // 6.019999999999999e+23; large numbers still use exponential notation
                            
                            

                            EDIT: Hab es getestet, funktioniert wie dokumentiert:

                            javascript.0
                            	2024-07-05 11:36:40.375	info	script.js.Fritzbox.Tester: Rundung 2.55 auf 1 Nachkommastelle:2.5
                            javascript.0
                            	2024-07-05 11:36:40.375	info	script.js.Fritzbox.Tester: Rundung 2.551 auf 1 Nachkommastelle:2.6
                            javascript.0
                            	2024-07-05 11:36:40.375	info	script.js.Fritzbox.Tester: Rundung 2.65 auf 1 Nachkommastelle:2.6
                            
                            

                            Hier noch der Code:

                            log('Rundung 2.55 auf 1 Nachkommastelle:' + (2.55).toFixed(1));
                            log('Rundung 2.551 auf 1 Nachkommastelle:' + (2.551).toFixed(1));
                            log('Rundung 2.65 auf 1 Nachkommastelle:' + (2.65).toFixed(1));
                            

                            Hier wird wohl symmetrisch und nicht kaufmännisch gerundet:
                            https://de.wikipedia.org/wiki/Rundung#Symmetrisches_Runden

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von
                            #14

                            @martinp

                            dann so

                            {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" w " : Math.round(parseInt(val)/100)/10+" kW"}
                            

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            MartinPM 1 Antwort Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              @martinp

                              dann so

                              {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" w " : Math.round(parseInt(val)/100)/10+" kW"}
                              
                              MartinPM Offline
                              MartinPM Offline
                              MartinP
                              schrieb am zuletzt editiert von MartinP
                              #15

                              @oliverio oder so (bei der Einheit Watt gab es auch noch einen Tippfehler)

                              {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" W" : (parseInt(val+10)/1000).toFixed(1)+" kW"} 
                              

                              Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                              Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                              Linux pve 6.17.9-1-pve
                              6 GByte RAM für den Container
                              Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                              Remote-Access über Wireguard der Fritzbox

                              R OliverIOO 2 Antworten Letzte Antwort
                              0
                              • MartinPM MartinP

                                @oliverio oder so (bei der Einheit Watt gab es auch noch einen Tippfehler)

                                {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" W" : (parseInt(val+10)/1000).toFixed(1)+" kW"} 
                                
                                R Offline
                                R Offline
                                romestylez
                                schrieb am zuletzt editiert von romestylez
                                #16

                                @martinp damit zeigt er aber nicht 1.X kW an sondern 100.6 etc.

                                3a0d1bbf-de1c-4328-b5b9-892b27e3f22d-image.png

                                L 1 Antwort Letzte Antwort
                                0
                                • R romestylez

                                  @martinp damit zeigt er aber nicht 1.X kW an sondern 100.6 etc.

                                  3a0d1bbf-de1c-4328-b5b9-892b27e3f22d-image.png

                                  L Offline
                                  L Offline
                                  legro
                                  schrieb am zuletzt editiert von legro
                                  #17

                                  @romestylez

                                  Losgelöst von deinem konkreten Beispiel eine eine weitere Lösung, die rein im Browser läuft, wenn die View angezeigt wird. Sie mag dir weitere Ideen liefern, wie du derartige Vorhaben in die Tat umsetzen kannst.

                                  cecc4de1-5c49-4964-bb73-3dbc8a91eb39-image.png

                                  {a:e3oncan.0.Vitocal.tree.0565_EnergyConsumptionDomesticHotWater.CurrentYear;b:e3oncan.0.Vitocal.tree.0548_EnergyConsumptionCentralHeating.CurrentYear;parseFloat((a*1+b*1)/1000).toFixed(1).replace(".", ",")} KWh
                                  

                                  Erläuterungen ..

                                  Es wird die Summe für den Energieverbrauch für Warmwasser und Heizen gebildet und angzeigt.

                                  • Zunächst werden diese beiden Werte, welche die verbrauchten Wh enthalten, in den Variablen a und b abgelegt
                                  • Anschließend erfolgt die Addition a * 1 + b * 1 und die Division durch 1000 dividiert, um Wh in KWh umzurechnen; hierbei ist die Multiplikation mit 1 erforderlich, weil die Wert in a und b als Strings - warum auch immer - abgelegt wurden. (Alternativ wäre auch eine sog. Typumwandlung mittels eines sog. Cast möglich.)
                                  • Mittels der Methoden von parseFloat (bzw. String) werden die Nachkommastellen definiert (toFixed) und der in JavaScript üblicherweise vorhandene Dezimalpunkt durch ein Komma ersetzt (replace).

                                  Wie du siehst, kann man ein an sich einfaches Problem beliebig (kompliziert) lösen, wobei es so manchen Stolperstein aus dem Weg zu räumen gilt.😃

                                  Viele Spaß beim Basteln.

                                  Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

                                  1 Antwort Letzte Antwort
                                  1
                                  • MartinPM MartinP

                                    @oliverio oder so (bei der Einheit Watt gab es auch noch einen Tippfehler)

                                    {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" W" : (parseInt(val+10)/1000).toFixed(1)+" kW"} 
                                    
                                    OliverIOO Offline
                                    OliverIOO Offline
                                    OliverIO
                                    schrieb am zuletzt editiert von
                                    #18

                                    @martinp sagte in W in Kw umrechnen:

                                    {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" W" : (parseInt(val+10)/1000).toFixed(1)+" kW"}

                                    sehr gut du hast meinen testfehler gefunden
                                    warum +10?
                                    das ist nicht das gleiche wie ich gepostet habe.
                                    da ist noch toFixed drin.
                                    Im 2. Beispiel habe ich toFixed nicht mehr verwendet.

                                    Meine Adapter und Widgets
                                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                    Links im Profil

                                    MartinPM 1 Antwort Letzte Antwort
                                    1
                                    • OliverIOO OliverIO

                                      @martinp sagte in W in Kw umrechnen:

                                      {val:0_userdata.0.watt;parseInt(val)<1000 ? parseInt(val)+" W" : (parseInt(val+10)/1000).toFixed(1)+" kW"}

                                      sehr gut du hast meinen testfehler gefunden
                                      warum +10?
                                      das ist nicht das gleiche wie ich gepostet habe.
                                      da ist noch toFixed drin.
                                      Im 2. Beispiel habe ich toFixed nicht mehr verwendet.

                                      MartinPM Offline
                                      MartinPM Offline
                                      MartinP
                                      schrieb am zuletzt editiert von MartinP
                                      #19

                                      @oliverio said in W in Kw umrechnen:

                                      sehr gut du hast meinen testfehler gefunden
                                      warum +10?
                                      das ist nicht das gleiche wie ich gepostet habe.
                                      da ist noch toFixed drin.
                                      Im 2. Beispiel habe ich toFixed nicht mehr verwendet.

                                      Das war etwas aus dem Ärmel geschüttelt

                                      Das ist der Rechenweg

                                      (parseInt(val+10)/1000).toFixed(1)
                                      

                                      Knackpunkt ist das Verhalten auf der "Hälfte" zwischen zwei Zahlenwerten

                                      1550 Watt wird beim "mathematischen Runden" abgerundet, beim "Kaufmännischen Runden" aufgerundet.

                                      Wenn man auf den Wert 10 Watt draufschlägt (die zweite Nachkommastelle soll bei der Umrechnung auf kWh gerundet werden) sollte das für ein Ergebnis entsprechend "kaufmännischem Runden" sorgen...

                                      Interessant wird das Verhalten sicherlich bei negativen Werten ... Habe das nicht getestet ...

                                      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                                      Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                                      Linux pve 6.17.9-1-pve
                                      6 GByte RAM für den Container
                                      Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                                      Remote-Access über Wireguard der Fritzbox

                                      OliverIOO 1 Antwort Letzte Antwort
                                      0
                                      • MartinPM MartinP

                                        @oliverio said in W in Kw umrechnen:

                                        sehr gut du hast meinen testfehler gefunden
                                        warum +10?
                                        das ist nicht das gleiche wie ich gepostet habe.
                                        da ist noch toFixed drin.
                                        Im 2. Beispiel habe ich toFixed nicht mehr verwendet.

                                        Das war etwas aus dem Ärmel geschüttelt

                                        Das ist der Rechenweg

                                        (parseInt(val+10)/1000).toFixed(1)
                                        

                                        Knackpunkt ist das Verhalten auf der "Hälfte" zwischen zwei Zahlenwerten

                                        1550 Watt wird beim "mathematischen Runden" abgerundet, beim "Kaufmännischen Runden" aufgerundet.

                                        Wenn man auf den Wert 10 Watt draufschlägt (die zweite Nachkommastelle soll bei der Umrechnung auf kWh gerundet werden) sollte das für ein Ergebnis entsprechend "kaufmännischem Runden" sorgen...

                                        Interessant wird das Verhalten sicherlich bei negativen Werten ... Habe das nicht getestet ...

                                        OliverIOO Offline
                                        OliverIOO Offline
                                        OliverIO
                                        schrieb am zuletzt editiert von
                                        #20

                                        @martinp

                                        warum hälst du dich noch mit toFixed auf?
                                        Nach dem prüfen in der Dokumentation ist mir die Existenzberechtigung von toFixed nicht mehr so ganz klar, da nach ECMA-Spezifikation immer in Richtung der nächstgelegenen Dezimalstelle gerundet wird. Also 1.0-1.5 auf 1 und 1.6-1.9 auf 2.
                                        Math.round (was ich in der 2. Lösung verwendet habe, rundet richtig kaufmännisch.
                                        Nachteil ist, dass man die Anzahl der gewünschten Nachkommastellen nicht angeben kann.
                                        Das kann man dann aber über 2-stufige teilen wieder ausgleichen, also

                                        1240 / 100 = 12,40, nach runden mit Math.round = 12
                                        1250 / 100 = 12,50 nach runden mit Math.round = 13

                                        12/10 = 1,2
                                        13/10 = 1,3

                                        kleiner edge case, wenn als gerundetes ergebnis ein ?.0 rauskommt, also 1.0, 2.0 etc,
                                        dann wird dir das .0 nicht angezeigt. wenn du auch da eine konsistente anzeige haben willst, dann kannst du dort wieder das toFixed einsetzen. Da die Zahl ja schon gerundet ist, verursacht das kein Problem mehr.

                                        {val:0_userdata.0.testFolder.test;parseInt(val)<1000 ? parseInt(val)+" w " : (Math.round(parseInt(val)/100)/10).toFixed(1)+" kW"}

                                        Meine Adapter und Widgets
                                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                        Links im Profil

                                        MartinPM 1 Antwort Letzte Antwort
                                        0
                                        • OliverIOO OliverIO

                                          @martinp

                                          warum hälst du dich noch mit toFixed auf?
                                          Nach dem prüfen in der Dokumentation ist mir die Existenzberechtigung von toFixed nicht mehr so ganz klar, da nach ECMA-Spezifikation immer in Richtung der nächstgelegenen Dezimalstelle gerundet wird. Also 1.0-1.5 auf 1 und 1.6-1.9 auf 2.
                                          Math.round (was ich in der 2. Lösung verwendet habe, rundet richtig kaufmännisch.
                                          Nachteil ist, dass man die Anzahl der gewünschten Nachkommastellen nicht angeben kann.
                                          Das kann man dann aber über 2-stufige teilen wieder ausgleichen, also

                                          1240 / 100 = 12,40, nach runden mit Math.round = 12
                                          1250 / 100 = 12,50 nach runden mit Math.round = 13

                                          12/10 = 1,2
                                          13/10 = 1,3

                                          kleiner edge case, wenn als gerundetes ergebnis ein ?.0 rauskommt, also 1.0, 2.0 etc,
                                          dann wird dir das .0 nicht angezeigt. wenn du auch da eine konsistente anzeige haben willst, dann kannst du dort wieder das toFixed einsetzen. Da die Zahl ja schon gerundet ist, verursacht das kein Problem mehr.

                                          {val:0_userdata.0.testFolder.test;parseInt(val)<1000 ? parseInt(val)+" w " : (Math.round(parseInt(val)/100)/10).toFixed(1)+" kW"}

                                          MartinPM Offline
                                          MartinPM Offline
                                          MartinP
                                          schrieb am zuletzt editiert von
                                          #21

                                          @oliverio said in W in Kw umrechnen:

                                          @martinp
                                          warum hälst du dich noch mit toFixed auf?

                                          Ist vielleicht eine Berufskrankheit: Meine Programmiertätigkeit begann im Embedded Bereich, und mit Assembler und C/C++.

                                          Da hat man sich angewöhnt, für jede Zeile Code zu bewertet, was sie für Ressourcen verbrauchen wird ...

                                          Bei Deiner Lösung, sind es zwei Divisionen, bei mir eine Addition und eine Division.
                                          Ist aber zugegeben ziemlich albern, da man gar nicht weiß, was da in den Aufrufen von toFixed() bzw. Round() so passiert .

                                          Bei Javascript im Browser gäbe es da eher zu beachten, dass man nicht zu viele Bibliotheken nachlädt, damit das Laden der Webseite nicht zu lange dauert.

                                          Das ist hier aber sicherlich kein Aspekt, der bei node.JS Code ernsthaft berücksichtigt werden muss.

                                          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                                          Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                                          Linux pve 6.17.9-1-pve
                                          6 GByte RAM für den Container
                                          Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                                          Remote-Access über Wireguard der Fritzbox

                                          1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          265

                                          Online

                                          32.8k

                                          Benutzer

                                          82.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe