Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] kwh berechnen und fortlaufend speichern

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] kwh berechnen und fortlaufend speichern

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

      Wenn man nur die Leistung zur Verfügung hat, muß man integrieren.

      const idPower = '...5';  // cur_power
      const idEnergy = 'Waschmaschine.Energieverbrauch'; // kWh
      
      // Energie-Datenpunkt erzeugen
      createState(idEnergy, 1.11, {type: 'number', unit: 'kWh'}); // Anfangswert anpassen !
      
      var energy = 1000 * getState(idEnergy).val; // Wh, erzeugt beim ersten Skripstart Fehler
      
      on({id: idPower}, function(dp) {
         energy = energy + dp.oldState.val * (dp.state.ts - dp.oldState.ts) / 3600000; // Wh
         setState(idEnergy, Math.round(energy) / 1000, true); // kWh mit 3 Nachkommastellen
      });
      

      EDIT: Korrigiert state.val –> oldState.val

      S 1 Reply Last reply Reply Quote 0
      • M
        martin last edited by

        Bei mir sieht das genauso aus wie bei dir.

        Habe diese Steckdosen: https://www.amazon.de/gp/product/B0776P … UTF8&psc=1

        Hätte wenn möglich gerne eine Aufzeichnung über Tagesverbrauch, Monatsverbrauch, Jahresverbrauch

        Vielleicht kann ja jemand der sich damit auskennt ein Script hier einstellen.

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

          @paul53:

          Wenn man nur die Leistung zur Verfügung hat, muß man integrieren.

          const idPower = '...5';  // cur_power
          const idEnergy = 'Waschmaschine.Energieverbrauch'; // kWh
          
          // Energie-Datenpunkt erzeugen
          createState(idEnergy, 1.11, {type: 'number', unit: 'kWh'}); // Anfangswert anpassen !
          
          var energy = 1000 * getState(idEnergy).val; // Wh, erzeugt beim ersten Skripstart Fehler
          
          on({id: idPower}, function(dp) {
             energy = energy + dp.state.val * (dp.state.ts - dp.oldState.ts) / 3600000; // Wh
             setState(idEnergy, Math.round(energy) / 1000, true); // kWh mit 3 Nachkommastellen
          });
          ```` `  
          

          Hi,

          danke, das ist schon mal ein Anfang. Der Datenpunkt wird auch erstellt, aber ja noch nicht live gefüllt. Muss ich hier

          const idPower = '...5';  // cur_power
          

          den Datenpunkt eintragen von cur_power (den es ja gibt, wie Du im Screenshot gesehen hast)?

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

            @AxelF1977:

            Muss ich hier

            const idPower = '...5';  // cur_power
            

            den Datenpunkt eintragen von cur_power `
            Ja, natürlich. Da gehört die ID des Datenpunktes mit dem Namen cur_power rein.

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

              @paul53:

              Ja, natürlich. Da gehört die ID des Datenpunktes mit dem Namen cur_power rein. `

              Danke Dir, dann habe ich es ja verstanden, sorry, habe von JS keine Ahnung…

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

                Und nun komme ich an meine Grenzen bei JS, sorry.

                Die Zweite Steckdose hat bisher 0,29 kwh verbraucht (laut App). Ich habe das Script entsprechend an diese Doese angepasst. Aber errechnen tut das Script einen Wert von 1,333 kwh

                Im Script ist der Anfangswert auf 0.29 gesetzt

                // Energie-Datenpunkt erzeugen
                createState(idEnergy, 0.29, {type: 'number', unit: 'kWh'}); // Anfangswert anpassen !
                

                Was mache ich falsch?

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

                  Die beiden IDs (oberste zwei Zeilen im Skript) hast Du vor Start des 2. Skripts angepasst ?

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

                    @paul53:

                    Die beiden IDs (oberste zwei Zeilen im Skript) hast Du vor Start des 2. Skripts angepasst ? `

                    Ja, die hatte ich angepasst. Ich habe es gerade nochmal doppelt überprüft. Nachdem ich die Datenpunkte gelöscht hatte, und die Scripte neu gestartet habe, funktioniert es, sehr cool.

                    Vielen Dank für die schnelle Hilfe!!

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

                      @AxelF1977:

                      funktioniert es, `
                      Dann markiere bitte das Thema im Betreff des ersten Beitags als [gelöst].

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

                        @paul53:

                        @AxelF1977:

                        funktioniert es, Dann markiere bitte das Thema im Betreff des ersten Beitags als [gelöst].

                        Erledigt, vielen Dank nochmal.

                        1 Reply Last reply Reply Quote 0
                        • M
                          martin last edited by

                          Könntest du bitte dein fertiges Script zur Verfügung stellen?

                          Hätte auch Interesse daran.

                          1 Reply Last reply Reply Quote 0
                          • Z
                            Zerpmaster last edited by

                            Das wäre echt klasse wenn du dein fertiges Script mit uns teilen könntest.

                            Vielen dank

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

                              Das fertige Script findet Ihr hier im Beitrag, das hatte paul53 hier gepostet

                              viewtopic.php?f=21&t=19643&p=205738#p205253

                              Das ist alles, was benötigt wird. Bei mir läuft es ohne Probleme. Klein und fein.

                              1 Reply Last reply Reply Quote 0
                              • Z
                                Zerpmaster last edited by

                                Danke dir,

                                kannst du mir vielleicht noch erklären wo ich das Script einbaue?

                                edit:

                                http://prntscr.com/lwqt2o

                                Ich habe bei Node-Red eine Funktion erstellt und da das JS reinkopiert… siehe Screen 😞

                                1 Reply Last reply Reply Quote 0
                                • M
                                  martin last edited by

                                  Irgendwo stimmt was nicht. Er zeigt immer 0 kwh an.

                                  Wer kann mir weiter helfen?

                                  https://www.bilder-upload.eu/bild-019d55-1545227517.jpg.html https://www.bilder-upload.eu/bild-a3b592-1545227545.jpg.html Und kann man die Zeile in den Objekten auch zur passenden Steckdose schieben?

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

                                    @martin:

                                    Irgendwo stimmt was nicht. Er zeigt immer 0 kwh an. `
                                    Leerzeichen in der ID sind keine gute Idee ! Schau mal unter javascript.0 nach, welche ID der Energie-Datenpunkt hat und passe die ID im Skript entsprechend an (wahrscheinlich muss das Leerzeichen durch einen Unterstrich ersetzt werden).

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

                                      @Zerpmaster:

                                      wo ich das Script einbaue? `
                                      Als neues Skript im Javascript-Adapter.

                                      1 Reply Last reply Reply Quote 0
                                      • Z
                                        Zerpmaster last edited by

                                        Ok danke dann habe ich es richtig,

                                        ich finde nur die werte sind etwas seltsam mit den Startwert von 1,11 kWh

                                        http://prntscr.com/lx0dhn

                                        Ich habe für zwei Stromverbraucher das Script pro Verbraucher angelegt und angepasst.

                                        1 Script Weihnachtsbaumbeleuchtung die 3,7 Watt verbraucht

                                        2 Script Terrarium was aktuell 117 Watt verbraucht…

                                        Wieso wird mir dann gleich der Wert 1,11kwh angezeigt?

                                        Soll ich den Wert 1,11 im Script anpassen auf 0,01?

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

                                          @Zerpmaster:

                                          Wieso wird mir dann gleich der Wert 1,11kwh angezeigt? `
                                          Weil 1,11 kWh der Wert war, denn die App von Axel zum Startzeitpunkt angezeigt hat.

                                          Wenn der Datenpunkt schon erstellt ist, kannst Du den Wert nur manuell im Reiter "Objekte" korrigieren.

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            martin last edited by

                                            Danke.

                                            Er zählt zwar ab Script-Start hoch, aber den Anfangswert rechnet er nicht mit ein.

                                            Kriege ich die Zeile auch irgendwie aus dem Objekt "javascript" in das Objekt der Steckdose?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            993
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            12
                                            57
                                            15441
                                            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