Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Skripten / Logik
  4. JavaScript
  5. Javascript Werte addieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    950

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Javascript Werte addieren

Geplant Angeheftet Gesperrt Verschoben JavaScript
10 Beiträge 3 Kommentatoren 711 Aufrufe 4 Watching
  • Ä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.
  • H Offline
    H Offline
    hagst
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich bekomme bald einen neuen Stromzähler. Da ich diesen nicht ohne Umstände auslesen kann, ich aber dennoch meinen Zählerstand im Auge behalten will suche ich eine Lösung.
    Ich messe meinen Verbrauch dezeit mit einem Shelly 3em, die Verbrauchsdaten stehen mir also zur Verfügung.

    Beispiel:
    shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower 9036,2 Wh

    Angenommen der der neue Zähler hätte einen Anfangsstand von 1000,10 KWh, wie müsste ich in Java diese Werte addieren? Ich habe es versucht, allerdings kommt dabei mur murks raus :-( Liegt vielleicht daran, dass der Stomzähler die Angaben in KWh anzeigt, der Shelly aber in Wh.

    Hat jemand einen Tipp für mich, oder kann mir ein Beispielscript tippen?

    AndreiosA 1 Antwort Letzte Antwort
    0
    • H hagst

      Hallo,

      ich bekomme bald einen neuen Stromzähler. Da ich diesen nicht ohne Umstände auslesen kann, ich aber dennoch meinen Zählerstand im Auge behalten will suche ich eine Lösung.
      Ich messe meinen Verbrauch dezeit mit einem Shelly 3em, die Verbrauchsdaten stehen mir also zur Verfügung.

      Beispiel:
      shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower 9036,2 Wh

      Angenommen der der neue Zähler hätte einen Anfangsstand von 1000,10 KWh, wie müsste ich in Java diese Werte addieren? Ich habe es versucht, allerdings kommt dabei mur murks raus :-( Liegt vielleicht daran, dass der Stomzähler die Angaben in KWh anzeigt, der Shelly aber in Wh.

      Hat jemand einen Tipp für mich, oder kann mir ein Beispielscript tippen?

      AndreiosA Offline
      AndreiosA Offline
      Andreios
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      @hagst sagte in Javascript Werte addieren:

      Hallo,

      ich bekomme bald einen neuen Stromzähler. Da ich diesen nicht ohne Umstände auslesen kann, ich aber dennoch meinen Zählerstand im Auge behalten will suche ich eine Lösung.
      Ich messe meinen Verbrauch dezeit mit einem Shelly 3em, die Verbrauchsdaten stehen mir also zur Verfügung.

      Beispiel:
      shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower 9036,2 Wh

      Angenommen der der neue Zähler hätte einen Anfangsstand von 1000,10 KWh, wie müsste ich in Java diese Werte addieren? Ich habe es versucht, allerdings kommt dabei mur murks raus :-( Liegt vielleicht daran, dass der Stomzähler die Angaben in KWh anzeigt, der Shelly aber in Wh.

      Dann musst Du zuerst die beiden Werte auf die gleiche Einheit bringen, Wh mit kWh zu verrechnen kann nur Murks bringen. Natürlich kannst Du das dann in einer Formel machen, Stichworte Punktrechnung vor Strichrechnung und Klammersetzung.
      Also Wh und kWh ist einfach Faktor 1000 (Kilo).
      Wenn Du also den Zähler auf Wh umrechnen willst, dann Zählerwert * 1000 = 1000100 Wh.
      Wenn Du den Wert vom Shelly auf kWh umrechnen willst dann ConsumedPower / 1000 = 9,0362 kWh.

      Wenn Du also über den Shelly auf den Zählerstand zurückrechnen willst (Ist meine Annahme, dass Du das willst. Falls Du etwas Anderes berechnen willst, einfach noch einmal schreiben.):

      Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower - 9036,2 + 1000100

      Also den aktuellen Wert vom Shelly - den Stand des Shelly beim Zählertausch + Anfangsstand vom Zähler.

      Der berechnete Wert wird, nach meiner Einschätzung, vom Zählerwert mit der Zeit abweichen, da der Zähler und der Shelly Toleranzen haben.

      --
      Schöne Grüße
      Andreas

      ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

      Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

      H 1 Antwort Letzte Antwort
      0
      • AndreiosA Andreios

        @hagst sagte in Javascript Werte addieren:

        Hallo,

        ich bekomme bald einen neuen Stromzähler. Da ich diesen nicht ohne Umstände auslesen kann, ich aber dennoch meinen Zählerstand im Auge behalten will suche ich eine Lösung.
        Ich messe meinen Verbrauch dezeit mit einem Shelly 3em, die Verbrauchsdaten stehen mir also zur Verfügung.

        Beispiel:
        shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower 9036,2 Wh

        Angenommen der der neue Zähler hätte einen Anfangsstand von 1000,10 KWh, wie müsste ich in Java diese Werte addieren? Ich habe es versucht, allerdings kommt dabei mur murks raus :-( Liegt vielleicht daran, dass der Stomzähler die Angaben in KWh anzeigt, der Shelly aber in Wh.

        Dann musst Du zuerst die beiden Werte auf die gleiche Einheit bringen, Wh mit kWh zu verrechnen kann nur Murks bringen. Natürlich kannst Du das dann in einer Formel machen, Stichworte Punktrechnung vor Strichrechnung und Klammersetzung.
        Also Wh und kWh ist einfach Faktor 1000 (Kilo).
        Wenn Du also den Zähler auf Wh umrechnen willst, dann Zählerwert * 1000 = 1000100 Wh.
        Wenn Du den Wert vom Shelly auf kWh umrechnen willst dann ConsumedPower / 1000 = 9,0362 kWh.

        Wenn Du also über den Shelly auf den Zählerstand zurückrechnen willst (Ist meine Annahme, dass Du das willst. Falls Du etwas Anderes berechnen willst, einfach noch einmal schreiben.):

        Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower - 9036,2 + 1000100

        Also den aktuellen Wert vom Shelly - den Stand des Shelly beim Zählertausch + Anfangsstand vom Zähler.

        Der berechnete Wert wird, nach meiner Einschätzung, vom Zählerwert mit der Zeit abweichen, da der Zähler und der Shelly Toleranzen haben.

        H Offline
        H Offline
        hagst
        schrieb am zuletzt editiert von
        #3

        Danke für Deine Antwort.

        @andreas-5 sagte in Javascript Werte addieren:

        Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower - 9036,2 + 1000100

        Das Problem dabei ist jetzt, dass ich zwar als Ergebnis 1009036,20 raus habe. Ist aber sehr unübersichtlich in VIS. Kann man das nicht mit javascript umrechnen lassen, dass als Ergebnis 1009,0362 rauskommt, also das Komma verschieben?

        OliverIOO AndreiosA 2 Antworten Letzte Antwort
        0
        • H hagst

          Danke für Deine Antwort.

          @andreas-5 sagte in Javascript Werte addieren:

          Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower - 9036,2 + 1000100

          Das Problem dabei ist jetzt, dass ich zwar als Ergebnis 1009036,20 raus habe. Ist aber sehr unübersichtlich in VIS. Kann man das nicht mit javascript umrechnen lassen, dass als Ergebnis 1009,0362 rauskommt, also das Komma verschieben?

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

          @hagst
          https://www.youtube.com/watch?v=uelyxs1avCU
          sorry, aber ist das nicht Stoff der Grundschule?
          oder wo liegt nun das Problem genau?

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

          H 2 Antworten Letzte Antwort
          0
          • OliverIOO OliverIO

            @hagst
            https://www.youtube.com/watch?v=uelyxs1avCU
            sorry, aber ist das nicht Stoff der Grundschule?
            oder wo liegt nun das Problem genau?

            H Offline
            H Offline
            hagst
            schrieb am zuletzt editiert von
            #5

            @oliverio

            Wie man addiert und multipliziert, das weiß ich. Ich weiß es nur nicht, wie man es mit Javascript macht. Wenn ich als Ergebnis z.B. 2361621,87 wh raus habe, und das gerne in KWh angezeigt haben möchte, hilft es mir nicht, wenn ich hier 2361621,87 Wh / 1000 = 2361,62187 KWh raus habe. Ich möchte wie oben schon geschrieben, es mit js umrechnen lassen, damit als Ergebis nicht Wh sondern KWh angezeigt wird.

            Btw. Dein Hinweis auf Grundschule und ein Link zu dem youtube Video halte ich für mehr als überflüssig.

            OliverIOO 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @hagst
              https://www.youtube.com/watch?v=uelyxs1avCU
              sorry, aber ist das nicht Stoff der Grundschule?
              oder wo liegt nun das Problem genau?

              H Offline
              H Offline
              hagst
              schrieb am zuletzt editiert von
              #6

              @oliverio

              const idAnfang = '0_userdata.0.Strompreisberechnung.Fortlaufender_Zaehlerstand_HT'; 
              const idVerbraucht = 'javascript.0.Shelly-Zaehler-Verbrauch-alle-Phasen'; (Ausgabe in Wh)
              const idSummeTotal = 'javascript.0.fortlaufender-Zaehlerstand'; (Ausgabe in Wh)
               
              var anfang = getState(idAnfang).val;
              var verbraucht = getState(idVerbraucht).val;
               
              if(!existsState(idSummeTotal)) createState(idSummeTotal, anfang + verbraucht, {type: 'number', unit: 'Wh'}); 
               
              function summe() {
                  setState(idSummeTotal, anfang + verbraucht, true);
              }
               
              on(idAnfang, function(dp) {
                 anfang = dp.state.val;
                 summe();
              });
              on(idVerbraucht, function(dp) {
                 verbraucht = dp.state.val;
                 summe();
              });
              

              Bei den const habe ich in () die Ausgabe in den Code eingefügt, damit man sieht, wo das vermeindliche Problem liegt.
              Jetzt muss halt nur (und das weiß ich nicht wie) die Ausgabe der Summe entwerder / 1000 ausgegeben werden.

              OliverIOO 1 Antwort Letzte Antwort
              0
              • H hagst

                @oliverio

                Wie man addiert und multipliziert, das weiß ich. Ich weiß es nur nicht, wie man es mit Javascript macht. Wenn ich als Ergebnis z.B. 2361621,87 wh raus habe, und das gerne in KWh angezeigt haben möchte, hilft es mir nicht, wenn ich hier 2361621,87 Wh / 1000 = 2361,62187 KWh raus habe. Ich möchte wie oben schon geschrieben, es mit js umrechnen lassen, damit als Ergebis nicht Wh sondern KWh angezeigt wird.

                Btw. Dein Hinweis auf Grundschule und ein Link zu dem youtube Video halte ich für mehr als überflüssig.

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

                @hagst
                das ist eines der wenigen dingen in den programmiersprachen (wenn man mal von der polnischen notation absieht), was ziemlich gleich ist, wie auch im taschenrechner

                https://www.mediaevent.de/javascript/berechnung.html

                var wertInWatt =1009036.20;
                var wertInKWatt = wertInWatt / 1000;

                Wie @Andreas-5 oben schon geschrieben hat ist der umrechnungsfaktor bei Kilo meist 1000 (zumindest bei den analogen Maßeinheiten)

                aufgrund der 3 nullen, verschiebt sich dann das Komma um 3 stellen.

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

                H 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @hagst
                  das ist eines der wenigen dingen in den programmiersprachen (wenn man mal von der polnischen notation absieht), was ziemlich gleich ist, wie auch im taschenrechner

                  https://www.mediaevent.de/javascript/berechnung.html

                  var wertInWatt =1009036.20;
                  var wertInKWatt = wertInWatt / 1000;

                  Wie @Andreas-5 oben schon geschrieben hat ist der umrechnungsfaktor bei Kilo meist 1000 (zumindest bei den analogen Maßeinheiten)

                  aufgrund der 3 nullen, verschiebt sich dann das Komma um 3 stellen.

                  H Offline
                  H Offline
                  hagst
                  schrieb am zuletzt editiert von
                  #8

                  @oliverio sagte in Javascript Werte addieren:

                  Wie @Andreas-5 oben schon geschrieben hat ist der umrechnungsfaktor bei Kilo meist 1000 (zumindest bei den analogen Maßeinheiten)
                  aufgrund der 3 nullen, verschiebt sich dann das Komma um 3 stellen.

                  Oh, ich sehe gerade, dass ich nicht in dem Bereich "Einsteigerfragen" bin, sondern Mathe für Dummies. Ich bin hier raus und frage in einem anderen Forum, in dem DU dich hoffentlich nicht rumtreibst. EOD

                  1 Antwort Letzte Antwort
                  0
                  • H hagst

                    @oliverio

                    const idAnfang = '0_userdata.0.Strompreisberechnung.Fortlaufender_Zaehlerstand_HT'; 
                    const idVerbraucht = 'javascript.0.Shelly-Zaehler-Verbrauch-alle-Phasen'; (Ausgabe in Wh)
                    const idSummeTotal = 'javascript.0.fortlaufender-Zaehlerstand'; (Ausgabe in Wh)
                     
                    var anfang = getState(idAnfang).val;
                    var verbraucht = getState(idVerbraucht).val;
                     
                    if(!existsState(idSummeTotal)) createState(idSummeTotal, anfang + verbraucht, {type: 'number', unit: 'Wh'}); 
                     
                    function summe() {
                        setState(idSummeTotal, anfang + verbraucht, true);
                    }
                     
                    on(idAnfang, function(dp) {
                       anfang = dp.state.val;
                       summe();
                    });
                    on(idVerbraucht, function(dp) {
                       verbraucht = dp.state.val;
                       summe();
                    });
                    

                    Bei den const habe ich in () die Ausgabe in den Code eingefügt, damit man sieht, wo das vermeindliche Problem liegt.
                    Jetzt muss halt nur (und das weiß ich nicht wie) die Ausgabe der Summe entwerder / 1000 ausgegeben werden.

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

                    @hagst sagte in Javascript Werte addieren:

                    @oliverio

                    const idAnfang = '0_userdata.0.Strompreisberechnung.Fortlaufender_Zaehlerstand_HT'; 
                    const idVerbraucht = 'javascript.0.Shelly-Zaehler-Verbrauch-alle-Phasen'; (Ausgabe in Wh)
                    const idSummeTotal = 'javascript.0.fortlaufender-Zaehlerstand'; (Ausgabe in Wh)
                     
                    var anfang = getState(idAnfang).val;
                    var verbraucht = getState(idVerbraucht).val;
                     
                    if(!existsState(idSummeTotal)) createState(idSummeTotal, anfang + verbraucht, {type: 'number', unit: 'Wh'}); 
                     
                    function summe() {
                        setState(idSummeTotal, anfang + verbraucht, true);
                    }
                     
                    on(idAnfang, function(dp) {
                       anfang = dp.state.val;
                       summe();
                    });
                    on(idVerbraucht, function(dp) {
                       verbraucht = dp.state.val;
                       summe();
                    });
                    

                    Bei den const habe ich in () die Ausgabe in den Code eingefügt, damit man sieht, wo das vermeindliche Problem liegt.
                    Jetzt muss halt nur (und das weiß ich nicht wie) die Ausgabe der Summe entwerder / 1000 ausgegeben werden.

                    Ich würde mich grundsätzlich dafür entscheiden einheitlich immer nur in einer einheit zu rechnen und dann nur in der Ausgabe es umzuwandeln

                    in vis im widget kann man bei number einen faktor im Feld Multiplikation eingeben eingeben.
                    Wenn du da 0.0001 eingibst, dann wird um den Faktor 1000 geteilt

                    https://de.wikipedia.org/wiki/Umkehroperation bei Multiplikation

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

                    1 Antwort Letzte Antwort
                    0
                    • H hagst

                      Danke für Deine Antwort.

                      @andreas-5 sagte in Javascript Werte addieren:

                      Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower - 9036,2 + 1000100

                      Das Problem dabei ist jetzt, dass ich zwar als Ergebnis 1009036,20 raus habe. Ist aber sehr unübersichtlich in VIS. Kann man das nicht mit javascript umrechnen lassen, dass als Ergebnis 1009,0362 rauskommt, also das Komma verschieben?

                      AndreiosA Offline
                      AndreiosA Offline
                      Andreios
                      Forum Testing
                      schrieb am zuletzt editiert von
                      #10

                      @hagst sagte in Javascript Werte addieren:

                      Danke für Deine Antwort.

                      @andreas-5 sagte in Javascript Werte addieren:

                      Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower - 9036,2 + 1000100

                      Das Problem dabei ist jetzt, dass ich zwar als Ergebnis 1009036,20 raus habe. Ist aber sehr unübersichtlich in VIS. Kann man das nicht mit javascript umrechnen lassen, dass als Ergebnis 1009,0362 rauskommt, also das Komma verschieben?

                      Na, dsas Ergebnis durch 1000 teilen oder gleich den anderen Weg nehmen, solltest Du aber eigentlich selber können!
                      Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower / 1000 - 9,0362 + 1000,100

                      --
                      Schöne Grüße
                      Andreas

                      ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

                      Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      481

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      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