Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Auswertung für smartmeter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Auswertung für smartmeter

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

      Und? Die volle Stunde ist um.

      1 Reply Last reply Reply Quote 0
      • S
        simpixo last edited by

        @a200:

        Und? Die volle Stunde ist um. `

        Leider vergessen das Script zu starten [emoji23][emoji23][emoji23]

        Jetzt müssen wir bis 22 Uhr warten [emoji53]

        Gruß

        Adrian

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

          [FACE WITH TEARS OF JOY][FACE WITH TEARS OF JOY][FACE WITH TEARS OF JOY]

          1 Reply Last reply Reply Quote 0
          • S
            simpixo last edited by

            Hallo

            habe gerade nachgesehen die ersten Werte sind schon da, aber dennoch sieht es komisch aus

            432_screenshot_2017-02-13_21.33.32.png

            Total-h wandelt der selbständig um in kWh meine ich, habe das nämlich als Wh angeben, aber jetzt ist das Koma an der falschen Stelle

            Was sagst du dazu? :shock:

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

              @simpixo:

              Hallo

              habe gerade nachgesehen die ersten Werte sind schon da, aber dennoch sieht es komisch aus

              Screenshot 2017-02-13 21.33.32.png

              Total-h wandelt der selbständig um in kWh meine ich, habe das nämlich als Wh angeben, aber jetzt ist das Koma an der falschen Stelle

              Was sagst du dazu? :shock: `
              hast du die kWh Berechnung rein gemacht?

              außerdem ist Total-w, Total-m leer. Dort sollte aber der Gesamtverbrauchswert stehen.

              Akt. Gesamtverbrauch - Total-w = currentWeek

              oben hattest du einen Wert in Total-m und Total-w

              1 Reply Last reply Reply Quote 0
              • S
                simpixo last edited by

                @a200:

                hast du die kWh Berechnung rein gemacht? `

                …. das einzige was ich gemacht habe, war den Zählerstand von kWh in Wh umzurechnen, da der DP ja Wh verlangt.

                War das falsch?

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

                  in der nächsten version werden die werte in kWh umgerechnet. hier allerdings ist es problematisch, weil wir Wh von kHw anziehen. Damit sind die Werte so komisch.

                  speichere in aller Total-x Feldern den aktuellen Gesamtwert - 10 Wh. und wir warten bis 22:00h

                  1 Reply Last reply Reply Quote 0
                  • C
                    chemieka last edited by

                    Hatte Gestern das Problem, dass ich ioBroker nicht mehr erreicht habe. Irgendwann gings dann wieder.

                    Aber dann fängt er wieder von vorn an.

                    Das ist natürlich dann schon etwas ärgerlich da ja dann wieder die Diagramme lange Zeit durcheinander sind.

                    Beim Tageswert ist das ja nicht so schlimm aber beim Wochen oder Monatsverbrauch muss man lange warten bis die Zahlen wieder stimmen.

                    Vielleicht fällt uns da noch eine andere Lösung ein.

                    1867_unbenannt.jpg

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

                      @chemieka:

                      Das ist natürlich dann schon etwas ärgerlich da ja dann wieder die Diagramme lange Zeit durcheinander sind.

                      Beim Tageswert ist das ja nicht so schlimm aber beim Wochen oder Monatsverbrauch muss man lange warten bis die Zahlen wieder stimmen. `
                      Verstehe ich nicht ganz. Ein berechneter Verbrauch bleibt als Datenpunkt bestehen bis er überschrieben wird. Überschrieben wird er am Ende seines Zyklus. Die Daten sind persistent. Du kannst ioBroker beenden, Raspi rebooten usw. Danach wirst du die Werte wieder drin haben. Also verstehe ich deine Bedenken nicht, du musst sie etwas spezifizieren.

                      Und nun zu den Zyklen.

                      Monat - Wird immer am 1. eines Monats um 0:00 geschrieben. Bis dahin steht dort immer der Verbrauchswert des Vormonats. Die einzige Gefahr für deine Auswertung besteht, wenn ausgerechnet am 1. des Monats um 0:00 dein iobroker nicht läuft.

                      Woche - Wird immer am Montag um 0:00 geschrieben. Bis dahin steht dort immer der Verbrauchswert der Vorwoche. Die einzige Gefahr für deine Auswertung besteht, wenn ausgerechnet am Montag um 0:00 dein iobroker nicht läuft.

                      Tag - Wird Täglich um 0:00 geschrieben. Bis dahin steht dort immer der Verbrauchswert des Vortages. Die einzige Gefahr für deine Auswertung besteht, wenn ausgerechnet um 0:00 dein iobroker nicht läuft. Würde dann 24h später korrigiert.

                      Heute, Stunde, Akt. Woche, akt. Monat - Werden Stündlich geschrieben.

                      Also wo meinst du wäre ein Problem?

                      Davon abgesehen stimmen deine Zahlen nicht und wieso hast du keine Wrte in Total-m und Total-w?

                      1 Reply Last reply Reply Quote 0
                      • C
                        chemieka last edited by

                        Ich sehe womöglich war die Datenpunkte weg sein könnten.

                        Er hat die Zähler jetzt gewechselt nach Neustart.

                        Obwohl ich die Zuordnung der USB gemacht hatte wie im anderen Tread beschrieben.

                        Hat wohl nicht geklappt.

                        Ich nehme mal so kann es dazu kommen oder?

                        1 Reply Last reply Reply Quote 0
                        • E
                          ein-bayer last edited by

                          Hallo

                          ich muss mal wieder einige dumme fragen stellen. Die scripte laufen und eines hab ich auch umgebaut für die Minutenerfassung.

                          Wenn der Zähler ein Zweirichtungszähler ist, dann ist es doch meiner Meinung nach nicht möglich mit den aktuellen scripten den aktuellen Stromverbrauch zu erfassen, sobald die Solaranlage Strom liefert, oder ?

                          Sollte ich mit meiner annahme recht haben, erfassen wir ja nur den Verbrauch den wir im moment vom Versorger beziehen, und nicht den tatsächlichen?

                          1 Reply Last reply Reply Quote 0
                          • J
                            jhg last edited by

                            Hallo zusammen,

                            ich benötige mal kurz eure Hilfe.

                            Wie bekomme ich es denn hin, die ausgegebenen Zahlen aus dem Skript zu runden?

                            Danke für eure Hilfe.

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators last edited by

                              @ein-bayer:

                              Hallo

                              Wenn der Zähler ein Zweirichtungszähler ist, dann ist es doch meiner Meinung nach nicht möglich mit den aktuellen scripten den aktuellen Stromverbrauch zu erfassen, sobald die Solaranlage Strom liefert, oder ? `

                              Vollkommen richtig.

                              Bei einem Zweirichtungszähler benötigst du noch zusätzlich die Leistung deiner Solaranlage. Die musst du auf den Bezug addieren.

                              Ansonsten hast du z.B. bei 2500W PV-Leistung und 2800W Verbrauch einen Bezug von nur 300W, der nicht deinem Verbrauch entspricht.

                              Gruß

                              Rainer

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

                                @jhg:

                                Wie bekomme ich es denn hin, die ausgegebenen Zahlen aus dem Skript zu runden? `

                                function runden(wert,stellen) {
                                    return Math.round(wert * Math.pow(10,stellen)) / Math.pow(10,stellen);
                                }
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • J
                                  jhg last edited by

                                  Muss ich das in jedes Skript am Anfang einfügen und dann werden alle Ergebnisse gerundet?

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

                                    @jhg:

                                    Muss ich das in jedes Skript am Anfang einfügen und dann werden alle Ergebnisse gerundet? `
                                    Nein. Du kannst diese Funktion in einem globalen Skript (Gruppe "global") anlegen und musst sie an den Stellen, an denen Du runden willst (vor setState oder innerhalb setState) aufrufen. Beispiel:

                                    setState(VorId, runden(nAktuell, 1), true);  // Rundung auf 1 Nachkommastelle
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • J
                                      jhg last edited by

                                      Ich muss hier nochmal nachfrage, weil das nicht klappt.

                                      Das runden script habe ich als globales script angelegt, das läuft auch.

                                      Aber an welcher Stelle muss ich nun die Runden Funktion einfügen?

                                      Ich habe das erfolglos versucht.

                                      Hier der wohl relevante Teil des Scripts.

                                      function haupt (VorId, ZielId, SetN) {

                                      var nVorwert = getState(VorId).val;

                                      var nAktuell = getState(idESTotal).val;

                                      var nDiff = ((nAktuell) - (nVorwert));

                                      setState(ZielId, nDiff, true);

                                      if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);

                                      if(SetN) {

                                      var shandler = on ({id: ZielId, change: 'any'}, function(data) {

                                      setState(VorId, (nAktuell*10)/10, true);

                                      unsubscribe(shandler);

                                      });

                                      }

                                      Danke für die Hilfe.

                                      Scripting ist (noch) nicht meins.

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

                                        @jhg:

                                        Aber an welcher Stelle muss ich nun die Runden Funktion einfügen? `

                                        function haupt (VorId, ZielId, SetN) {
                                          var nVorwert = getState(VorId).val;
                                          var nAktuell = getState(idESTotal).val;
                                          var nDiff = nAktuell - nVorwert;
                                          setState(ZielId, runden(nDiff, 1), true);
                                          if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
                                          if(SetN) {
                                            var shandler = on ({id: ZielId, change: 'any'}, function(data) {
                                              setState(VorId, runden(nAktuell, 1), true);
                                              unsubscribe(shandler);
                                            });
                                          }
                                        }
                                        
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • J
                                          jhg last edited by

                                          Danke sehr.

                                          Hat alles geklappt und die anderen Fehler habe ich auch gleich korrigiert.

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            Huebeni last edited by

                                            Hi a200,

                                            danke für das super Skript. Damit Werte ich mein Smartmeter, als auch meine Photovoltaik-Anlage, aus.

                                            Ich wollte ein paar Erweiterungen basteln, allerdings verstehe ich das Skript noch nicht ganz. Vielleicht kannst Du mir die entscheidende Erklärung geben.

                                            Es geht um:

                                            function haupt (VorId, ZielId, SetN) {
                                                var nVorwert = getState(VorId).val;
                                                var nAktuell = getState(idHAGTotal).val;
                                                var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
                                                setState(ZielId, nDiff, true);
                                                if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
                                                if(SetN) {
                                                    var shandler = on ({id: ZielId, change: 'any'}, function(data) {
                                                        setState(VorId, (nAktuell*10)/10, true);
                                                        unsubscribe(shandler); 
                                                    });
                                                }
                                            }
                                            

                                            Warum wird die VorId in dem handler bei Änderung der ZielId gesetzt?

                                            Könnte ich das nicht direkt nach dem setState(ZielId, nDiff, true) machen?

                                            Irgendwie hakt es da bei mir. Wann wird denn der Handler genau ausgeführt? Beim nächsten Aufruf von haupt() über den Scheduler? Dann ist aber der Wert von nVorwert vor dem setState(ZielId, nDiff, true) noch auf dem alten Wert???

                                            Danke schon mal,

                                            Huebeni

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            865
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            62
                                            8608
                                            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