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.
    • C
      chemieka last edited by

      Könnte man den Monatsverbrauch nicht auch aus den Summen der Tages oder Wochenverbrauchs berechnen, dann müsste man nicht so lange warten? Denke viel ungenauer wirds damit auch nicht.

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

        Hi a200,

        find ich gut das es für das script einen eigenen thread gibt.

        Ich mach hier mal weiter, der Grund warum ich nach dem script für Minuten gefragt habe ist folgender:

        Ich meine das du nicht recht hast wenn du schreibst , der Datenpunkt smartmeter.0.1-0:16_7_0*255.value ist der aktuelle Verbrauch.

        Das ist der berechnete Verbrauch zwischen Bezug und Einspeisung!! Ich hatte bereits ein Diagramm am laufen und dacht mir "ui suppi genau was ich will" bis ich am nächsten tag sah das der chart einen wert von (minus) -5000 W anzeigt.

        Mein ziel ist , das ich ein Diagramm hab in dem ich den aktuellen Verbrauch sehe. Da ich mit iob zwei zweirichtungszähler verwalte kommt dann das script viermal zum Einsatz, für zweimal Einspeisung und zweimal Bezug.

        Für meine restlichen 10 Stromzähler hab ich derzeit noch ein anderes script im Einsatz.In diesem hab ich den ersten zweirichtungszähler auch drin um die Daten mit deinem script zu vergleichen, im Bild das Objekt Strom-Bezug Haus.

        Ich hab jetzt die Objekte gelöscht und das script durch das obige ersetzt ,mal sehen wie es sich verhält, vielleicht hab ich ja was zerschossen
        1342_bildschirmfoto_2017-02-12_um_08.42.08.png
        1342_bildschirmfoto_2017-02-12_um_08.45.24.png

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

          Kannst du aus dieser Fehler Meldung was lesen?

          at TCP.onread (net.js:548:20)
          host.	2017-02-12 19:00:00.826	error	at Socket.Readable.push (_stream_readable.js:134:10)
          host.	2017-02-12 19:00:00.826	error	at readableAddChunk (_stream_readable.js:176:18)
          host.	2017-02-12 19:00:00.826	error	at Socket.emit (events.js:188:7)
          host.	2017-02-12 19:00:00.826	error	at emitOne (events.js:96:13)
          host.	2017-02-12 19:00:00.826	error	at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
          host.	2017-02-12 19:00:00.826	error	at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:560:12)
          host.	2017-02-12 19:00:00.826	error	at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
          host.	2017-02-12 19:00:00.826	error	at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:828:9)
          host.	2017-02-12 19:00:00.826	error	at return_pub_sub (/opt/iobroker/node_modules/redis/index.js:789:18)
          host.	2017-02-12 19:00:00.826	error	at RedisClient.emit (events.js:194:7)
          host.	2017-02-12 19:00:00.826	error	at emitThree (events.js:116:13)
          host.	2017-02-12 19:00:00.826	error	at RedisClient. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:92:25)
          host.	2017-02-12 19:00:00.826	error	at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2866:37)
          host.	2017-02-12 19:00:00.826	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:252:17)
          host.	2017-02-12 19:00:00.826	error	at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:580:17)
          host.	2017-02-12 19:00:00.826	error	at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3161:17)
          host.	2017-02-12 19:00:00.826	error	at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:584:47
          host.	2017-02-12 19:00:00.826	error	TypeError: Cannot read property 'callback' of undefined
          host.	2017-02-12 19:00:00.823	error	pmessage io.javascript.0.Stromzähler.Hager.Hour {"val":255.70000000006985,"ack":true,"ts":1486922400817,"q":0,"from":"system.adapter.javascript.0","lc":1486922400817} Cannot read property 'callback'
          
          1 Reply Last reply Reply Quote 0
          • a200
            a200 last edited by

            @chemieka:

            Kannst du aus dieser Fehler Meldung was lesen?

            at TCP.onread (net.js:548:20)
            host.	2017-02-12 19:00:00.826	error	at Socket.Readable.push (_stream_readable.js:134:10)
            host.	2017-02-12 19:00:00.826	error	at readableAddChunk (_stream_readable.js:176:18)
            host.	2017-02-12 19:00:00.826	error	at Socket.emit (events.js:188:7)
            host.	2017-02-12 19:00:00.826	error	at emitOne (events.js:96:13)
            host.	2017-02-12 19:00:00.826	error	at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
            host.	2017-02-12 19:00:00.826	error	at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:560:12)
            host.	2017-02-12 19:00:00.826	error	at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
            host.	2017-02-12 19:00:00.826	error	at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:828:9)
            host.	2017-02-12 19:00:00.826	error	at return_pub_sub (/opt/iobroker/node_modules/redis/index.js:789:18)
            host.	2017-02-12 19:00:00.826	error	at RedisClient.emit (events.js:194:7)
            host.	2017-02-12 19:00:00.826	error	at emitThree (events.js:116:13)
            host.	2017-02-12 19:00:00.826	error	at RedisClient. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:92:25)
            host.	2017-02-12 19:00:00.826	error	at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2866:37)
            host.	2017-02-12 19:00:00.826	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:252:17)
            host.	2017-02-12 19:00:00.826	error	at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:580:17)
            host.	2017-02-12 19:00:00.826	error	at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3161:17)
            host.	2017-02-12 19:00:00.826	error	at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:584:47
            host.	2017-02-12 19:00:00.826	error	TypeError: Cannot read property 'callback' of undefined
            host.	2017-02-12 19:00:00.823	error	pmessage io.javascript.0.Stromzähler.Hager.Hour {"val":255.70000000006985,"ack":true,"ts":1486922400817,"q":0,"from":"system.adapter.javascript.0","lc":1486922400817} Cannot read property 'callback'
            ```` `  
            

            Leider nicht. Da müsste einer von den ioBroker Spezialisten sagen, was diese Fehlermeldung bedeutet. Dann kann ich sagen ob es am Script liegt. Nichtsdestotrotz will ich demnächst die unschöne double Berechnung der Zahlen abstellen.

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

              @chemieka:

              Könnte man den Monatsverbrauch nicht auch aus den Summen der Tages oder Wochenverbrauchs berechnen, dann müsste man nicht so lange warten? Denke viel ungenauer wirds damit auch nicht. `

              Nein. Du kannst den Gesamtverbrauch eines Monats erst dann berechnen, wenn ein ganzer Monat (vom ersten bis zum letzten eines Monats) auch vergangen ist. Vorher nicht. Ich kann noch einen neuen Datenpunkt: Aktueller Monat bzw. aktuelle Woche berechnen. Funktioniert so ähnlich wie Today. D.h. Der Verbrauch sein dem 1. eines Monats bzw. seit Montag einer Woche um 0:00 bis heute.

              Dort würden schon Werte landen noch bevor die komplette Periode abgelaufen ist, allerdings werden die Werte im ersten Monat / ersten Woche nicht korrekt sein (können).

              Wenn also noch ein paar Leute sich melden, dass Sie die Funktion haben wollen, dann werde ich sie auch einbauen.

              LG,

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

                Bitte das JS posten. sieht für mich nach nem Fehler beim subscribe aus!

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

                  @apollon77:

                  Bitte das JS posten. sieht für mich nach nem Fehler beim subscribe aus! `
                  Schau mal in ersten Posting ist ein Spoiler! 😉

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

                    Also es wäre nicht schlecht ein Objekt zu haben -> Stromverbrauch Monatsanfang bis heute [emoji6]

                    Gruß

                    Adrian

                    Gesendet von iPhone mit Tapatalk Pro

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

                      @simpixo:

                      Also es wäre nicht schlecht ein Objekt zu haben -> Stromverbrauch Monatsanfang bis heute [emoji6]

                      Gruß

                      Adrian

                      Gesendet von iPhone mit Tapatalk Pro `
                      Willst du es testen? 😉

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

                        Klar, warum nicht [emoji3]

                        Gesendet von iPhone mit Tapatalk Pro

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

                          @simpixo:

                          Klar, warum nicht [emoji3]

                          Gesendet von iPhone mit Tapatalk Pro `
                          Testen habe ich gesagt, also keine Garantie. 🙂

                          1. kopiere den Wert deinen aktuellen Gesamtverbrauches in die Datenpunkte Total-m und Total-w

                          2. benutze die unten stehende Version 0.11b

                          zu nächsten vollen Stunde werden die Datenpunkte CurrentWeek und CurrentMonth gefüllt.

                          Falls du eigenen Pfad zu den Datenpunkten hast, dann brauchst du diese nur einmal anpassen (PathToDP).

                          Warte auf deine Freigabe! 😄

                          ! ````
                          // NEU - Zählerstand vom Anfang der akt. Stunde wird ermittelt v 0.11
                          //
                          ! var AktWoche = true; // Berechnung des Wertes: Aktuelle Woche ein-/ausschalten
                          var AktMonat = true; // Berechnung des Wertes: Aktueller Monat ein-/ausschalten
                          var PathToDP = "javascript.0.Stromzähler.Hager."; // Pfad zum Datenpunkt
                          ! var cronH = "0 * * * *";
                          var cronD = "59 23 * * *";
                          var cronW = "0 0 * * 1";
                          var cronM = "0 0 1 * ";
                          ! var idHAGTotH = PathToDP + "tmp.Total-h";
                          var idHAGTotD = PathToDP + "tmp.Total-d";
                          var idHAGTotW = PathToDP + "tmp.Total-w";
                          var idHAGTotM = PathToDP + "tmp.Total-m";
                          var idHAGTotal = PathToDP + "smartmeter.0.1-0:1_8_0
                          255.value"; /Stromverbrauch insgesammt/
                          var idHAGZielH = PathToDP + "Hour";
                          var idHAGZielD = PathToDP + "Day";
                          var idHAGZielW = PathToDP + "Week";
                          var idHAGZielM = PathToDP + "Month";
                          var idHAGZielT = PathToDP + "Today";
                          var idHAGZielCW = PathToDP + "CurrentWeek";
                          var idHAGZielCM = PathToDP + "CurrentMonth";
                          ! var debug = false;
                          ! var DPArray = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM, idHAGZielT, idHAGZielCW, idHAGZielCM];
                          var DPUnit = "Wh";
                          ! DPArray.forEach(function(wert, index, array) {
                          var DPType = wert.split(".");
                          var DPDescr = "Power consumption of " + (DPType[DPType.length - 1]);

                          if(index > 3) DPUnit = "Wh";
                          createState(wert, 0, {
                              name: DPDescr,
                              desc: DPDescr,
                              type: 'number',
                              unit: DPUnit,
                              role: 'value'
                          });
                          

                          });

                          ! 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);
                          });
                          }
                          }
                          ! // regelmässige Wiederholungen
                          // -----------------------------------------------------------------------------
                          ! schedule(cronH, function () {
                          haupt(idHAGTotH, idHAGZielH, true);
                          haupt(idHAGTotD, idHAGZielT, false);
                          if(AktWoche) haupt(idHAGTotW, idHAGZielCW, false);
                          if(AktMonat) haupt(idHAGTotM, idHAGZielCM, false);
                          });
                          ! schedule(cronD, function () {
                          haupt(idHAGTotD, idHAGZielD, true);
                          });
                          ! schedule(cronW, function () {
                          haupt(idHAGTotW, idHAGZielW, true);
                          });
                          ! schedule(cronM, function () {
                          haupt(idHAGTotM, idHAGZielM, true);
                          });

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

                            @a200:

                            Testen habe ich gesagt, also keine Garantie. 🙂 `

                            Dann teste ich mal 😉

                            Hab dein Script mal übernommen und schaue was passiert

                            Gruß

                            Adrian

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

                              Hallo a200

                              irgendwas ist komisch….

                              432_screenshot_2017-02-13_18.21.32.png

                              warum ist das eine Minus Zahl? Soll das so sein? oder habe ich was falsch gemacht?

                              Gruß

                              Adrian

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

                                @simpixo:

                                Hallo a200

                                irgendwas ist komisch….

                                Screenshot 2017-02-13 18.21.32.png

                                warum ist das eine Minus Zahl? Soll das so sein? oder habe ich was falsch gemacht?

                                Gruß

                                Adrian `

                                aus

                                var idHAGTotal = PathToDP + "smartmeter.0.1-0:1_8_0*255.value"; /Stromverbrauch insgesammt/

                                mach

                                var idHAGTotal = "smartmeter.0.1-0:1_8_0*255.value"; /Stromverbrauch insgesammt/

                                Ein fataler Fehler! Die aktueller Wert konnte nicht ausgelesen werden! Etwas zu viel Cut&Paste 😢

                                Kopiere vorher den aktuellen Wert in Total-d und Total-h

                                Danach sollte es gehen.

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

                                  Welchen Wert meinst du denn genau!? Den Gesamten Verbrauch!?

                                  Gesendet von iPhone mit Tapatalk Pro

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

                                    @simpixo:

                                    Welchen Wert meinst du denn genau!? Den Gesamten Verbrauch!?

                                    Gesendet von iPhone mit Tapatalk Pro `
                                    Ja. Gesamtverbrauch.

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

                                      @a200:

                                      aus

                                      var idHAGTotal = PathToDP + "smartmeter.0.1-0:1_8_0*255.value"; /Stromverbrauch insgesammt/

                                      mach

                                      var idHAGTotal = "smartmeter.0.1-0:1_8_0*255.value"; /Stromverbrauch insgesammt/

                                      Ein fataler Fehler! Die aktueller Wert konnte nicht ausgelesen werden! Etwas zu viel Cut&Paste 😢

                                      Kopiere vorher den aktuellen Wert in Total-d und Total-h

                                      Danach sollte es gehen. `

                                      Habe gerade angepasst…. schauen wir mal ob das Ganze jetzt funktioniert 🙂

                                      Gruß

                                      Adrian

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

                                        Ich warte.

                                        1 Reply Last reply Reply Quote 0
                                        • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            964
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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