Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Stromverbrauch protokollieren - (etwas optimiert)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Stromverbrauch protokollieren - (etwas optimiert)

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

      Hallo,

      vielen Dank erstmal für das Script 8-)

      Leider läuft es noch nicht wie es sein sollte.

      Bekomme im LOG folgende Fehlermeldung.

      Was könnte das sein?

      javascript.0 2018-09-25 20:26:58.090 error at Object. <anonymous>(script.js.common.Stromzähler_Auswertung_:225:25)

      javascript.0 2018-09-25 20:26:58.090 error at run (script.js.common.Stromzähler_Auswertung_:301:62)

      javascript.0 2018-09-25 20:26:58.090 error Error in callback: TypeError: Cannot read property 'val' of undefined

      javascript.0 2018-09-25 20:26:58.090 error script.js.common.Stromzähler_Auswertung_: Cannot use sync getState, use callback instead getState("javascript.0.Verbrauchszaehler.Verbrauchszähler.Strom_Totaal.Zaehlerstand.kumuliert", function (err,

      javascript.0 2018-09-25 20:26:58.090 info script.js.common.Stromzähler_Auswertung_: States in der Instanz javascript.0.Verbrauchszaehler. erstellt

      javascript.0 2018-09-25 20:26:58.090 info script.js.common.Stromzähler_Auswertung_: Nach der Aufbereitung: Verbrauchszähler.Strom_Totaal

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: Es wird der Aliasname gesetzt:Verbrauchszähler.Strom_Totaal

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: entferneDatenpunkt - rueckgabe4:0-0

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: entferneDatenpunkt - rueckgabe3:0-0

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: entferneDatenpunkt - rueckgabe2:0-0

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: entferneDatenpunkt - rueckgabe1:0-0:1_8_0.value

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: vor der Aufbereitung: 0-0:1_8_0.value

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: alter Wert: 22891.184

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: neuer Wert: 22891.279

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: device name: null

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: device ID: null

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: channel Name: (Total)

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: channel ID: smartmeter.0.0-0:1_8_0

      javascript.0 2018-09-25 20:26:58.089 info script.js.common.Stromzähler_Auswertung_: Name: 0-0:1_8_0.value

      javascript.0 2018-09-25 20:26:58.088 info script.js.common.Stromzähler_Auswertung_: id: smartmeter.0.0-0:1_8_0.value

      javascript.0 2018-09-25 20:26:58.088 info script.js.common.Stromzähler_Auswertung_: RegExp-Funktion ausgelöst

      javascript.0 2018-09-25 20:26:58.088 info script.js.common.Stromzähler_Auswertung_: –------ Strommesser ---------</anonymous>

      1 Reply Last reply Reply Quote 0
      • B
        Beowolf last edited by

        Mal ne Frage.

        ` > var eigeneDatenpunkte = [

        // Beispiel:

        // ['Datenpunkt', 'Aliasname', 'Einheit kumulierter Wert', 'Einheit berechnete Werte (kilo/1000)' ],

        [ 'hm-rega.0.8422', 'Stromzaehler', 'Wh', 'kWh' ],

        [ 'hm-rega.0.8424', 'Brauchwasserzaehler', 'm3', 'm3' ],

        // [ 'javascript.1.MeinSonoffGeraet1', 'Strom.Sonoff.MeinSonoffGeraet1', 'Wh', 'kWh' ],

        // [ 'javascript.1.MeinSonoffGeraet2', 'Strom.Sonoff.MeinSonoffGeraet2', 'kWh', 'kWh' ],

        // [ 'javascript.1.MeineGas1', 'Gas.MeinGaszaehler1', 'm3', 'm3' ],

        // [ 'javascript.1.MeineGas2', 'Gas.MeinGaszaehler2', 'm3', 'm3' ],

        ]; `

        Der Stromzähler wird schön erfasst, der Wasserzähler erscheint nicht. Warum? Wo habe ich dort einen Fehler?

        Grüße

        Manfred

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

          Kann keiner weiterhelfen?

          Habe alle möglichen Einstellungen versucht…..ich bekomme immer wieder die gleiche Fehlermeldung 😞

          hier meine Einstellungen:

          // +++++++++ USER ANPASSUNGEN ++++++++++++++++++++++++

          // debug logging

          var logging = true;

          // Aktivieren der History Instanz

          var enable_history = false;

          // history Instanz

          var instance_history = 'history.0';

          // Geräte können unterschiedliche Preise haben

          var enable_unterschiedlichePreise = false;

          // Speichern der Werte in zusätzlichen Objekten.

          // Wenn 0, dann deaktiviert

          var Tag_Anzahl_Werte_in_der_Vergangenheit = 7;

          var Woche_Anzahl_Werte_in_der_Vergangenheit = 4;

          var Monat_Anzahl_Werte_in_der_Vergangenheit = 12;

          var Quartal_Anzahl_Werte_in_der_Vergangenheit = 4;

          var Jahr_Anzahl_Werte_in_der_Vergangenheit = 2;

          // Grundpreis einberechnen

          var enable_Grundpreis_einberechnen = false;

          var instance = '0';

          var instanz = 'javascript.' + instance + '.';

          // Pfad innerhalb der Instanz

          var pfad = 'Verbrauchszaehler.';

          var default_unit = 'Wh';

          var default_unit_kilo = 'kWh';

          // Diese Teile werden aus den Gerätenamen entfernt

          var blacklist = [':1', ':2', ':3', ':4', ':5', ':6', ':7', ':8'];

          var AnzahlKommastellenKosten = 2;

          var AnzahlKommastellenVerbrauch = 3;

          var AnzahlKommastellenZaehlerstand = 3;

          var KumulierterWertIstBereitsInKilo = true;

          var eigeneDatenpunkte = [

          [ 'smartmeter.0.1_8_0.value', 'Casa', 'kWh', 'kWh' ],

          // Beispiel:

          // ['Datenpunkt', 'Aliasname', 'Einheit kumulierter Wert', 'Einheit berechnete Werte (kilo/1000)' ],

          // [ 'hm-rpc.2.NEQ0861663.1.ENERGY_COUNTER', 'Stromzaehler:1.ENERGY_COUNTER', 'Wh', 'kWh' ],

          // [ 'javascript.1.MeinSonoffGeraet1', 'Strom.Sonoff.MeinSonoffGeraet1', 'Wh', 'kWh' ],

          // [ 'javascript.1.MeinSonoffGeraet2', 'Strom.Sonoff.MeinSonoffGeraet2', 'kWh', 'kWh' ],

          // [ 'javascript.1.MeineGas1', 'Gas.MeinGaszaehler1', 'm3', 'm3' ],

          // [ 'javascript.1.MeineGas2', 'Gas.MeinGaszaehler2', 'm3', 'm3' ],

          ];

          // Pushmeldung

          function send_message(text) {

          // Hier können die Pushmeldung über alle möglichen Wege verschickt werden.

          //console.log(text);

          //sendTelegram(text);

          }

          // ++++ ENDE USER ANPASSUNGEN ++++++++++++++++++++++++

          //–--------------------------------------------------------------------------//
          5108_bildschirmfoto_2018-09-26_um_20.14.55.png
          5108_bildschirmfoto_2018-09-26_um_20.16.48.png

          1 Reply Last reply Reply Quote 0
          • Röstkartoffel
            Röstkartoffel last edited by

            @Beowolf:

            Mal ne Frage.

            ` > var eigeneDatenpunkte = [

            // Beispiel:

            // ['Datenpunkt', 'Aliasname', 'Einheit kumulierter Wert', 'Einheit berechnete Werte (kilo/1000)' ],

            [ 'hm-rega.0.8422', 'Stromzaehler', 'Wh', 'kWh' ],

            [ 'hm-rega.0.8424', 'Brauchwasserzaehler', 'm3', 'm3' ],

            // [ 'javascript.1.MeinSonoffGeraet1', 'Strom.Sonoff.MeinSonoffGeraet1', 'Wh', 'kWh' ],

            // [ 'javascript.1.MeinSonoffGeraet2', 'Strom.Sonoff.MeinSonoffGeraet2', 'kWh', 'kWh' ],

            // [ 'javascript.1.MeineGas1', 'Gas.MeinGaszaehler1', 'm3', 'm3' ],

            // [ 'javascript.1.MeineGas2', 'Gas.MeinGaszaehler2', 'm3', 'm3' ],

            ]; `

            Der Stromzähler wird schön erfasst, der Wasserzähler erscheint nicht. Warum? Wo habe ich dort einen Fehler?

            Grüße

            Manfred `
            @Manfred,

            @mig81.

            Entfernt bitte mal das hintere Komma vom letzten Eintrag (habe ich im Zitat rot markiert), das gehört beim letzten Eintrag da nicht mehr hin.

            1 Reply Last reply Reply Quote 0
            • B
              Beowolf last edited by

              Das mit dem Komma ist egal. Habe es probiert.

              Der Fehler bei mir lag an einer anderen Stelle. Der Zähler den ich hier habe gibt nur einen den Wert weiter, wenn sich etwas geändert hat.

              Deshalb hat das bei dem Stromzähler funktioniert. Ich verbrauche ja Strom, ständig. Bei dem Wasserzähler sah es eben anders aus. Der steht ja still (zumindestens solange ich vor meinem Rechner sitze).

              Der Wasserzähler funktioniert jetzt auch.

              ABER

              Ich habe im LOG folgendes stehen:

              ` > javascript.0 2018-09-27 16:31:18.942 error at Object. <anonymous>(script.js.common.Verbrauchszähler:222:25)

              javascript.0 2018-09-27 16:31:18.942 error at run (script.js.common.Verbrauchszähler:361:54)

              javascript.0 2018-09-27 16:31:18.942 error Error in callback: TypeError: Cannot read property 'toFixed' of null

              javascript.0 2018-09-27 16:31:18.942 warn at Object. <anonymous>(script.js.common.Verbrauchszähler:222:25)

              javascript.0 2018-09-27 16:31:18.942 warn at run (script.js.common.Verbrauchszähler:361:28)

              javascript.0 2018-09-27 16:31:18.942 warn getState "javascript.0.Verbrauchszähler.Brauchwasserzähler.Zaehlerstand.kumuliert" not found (3)

              javascript.0 2018-09-27 16:31:18.942 warn at Object. <anonymous>(script.js.common.Verbrauchszähler:222:25)

              javascript.0 2018-09-27 16:31:18.942 warn at run (script.js.common.Verbrauchszähler:302:17)

              javascript.0 2018-09-27 16:31:18.942 warn State "javascript.0.Verbrauchszähler.Brauchwasserzähler.Zaehlerstand.kumuliert" not found

              javascript.0 2018-09-27 16:31:18.941 warn at Object. <anonymous>(script.js.common.Verbrauchszähler:222:25)

              javascript.0 2018-09-27 16:31:18.941 warn at run (script.js.common.Verbrauchszähler:298:41)

              javascript.0 2018-09-27 16:31:18.941 warn getState "javascript.0.Verbrauchszähler.Brauchwasserzähler.Zaehlerstand.kumuliert" not found (3)</anonymous></anonymous></anonymous></anonymous> `

              Bedeutet, das er gerne die Preise haben möchte.

              Wo trage ich die ein?

              Für Strom erscheint sofort unter Preis/aktuell/Arbeitspreis und Grundpreis.

              Für Wasser erscheint dort nichts. Muß ich das manuell anlegen?

              Grüße

              Manfred

              PS:

              Habe es gefunden. In der Zeile im Konfigbereich:

              // Geräte können unterschiedliche Preise haben

              var enable_unterschiedlichePreise = true;

              Grüße

              1 Reply Last reply Reply Quote 0
              • B
                Beowolf last edited by

                Habe noch eine Frage.

                Bei "Arbeitspreis" und "Grundpreis" steht ja in der Spalte NAME immer "Strompreis". Kann ich den im Skript einfach auf "Preis" ändern? Das wäre neutraler.

                Grüße

                Manfred

                1 Reply Last reply Reply Quote 0
                • B
                  Beowolf last edited by

                  Ist da noch ein Fehler drin?

                  Ich habe jetzt drei Zähler. Strom, Wasser und Gartenwasser. Alle mit "eigenem Preis" eingestellt. Sie zählen und berechnen auch alle schon sauber.

                  ABER

                  In der LOG-Datei von IOBroker steht immer wieder dieses hier:

                  javascript.0 2018-09-28 16:35:46.205 info script.js.common.Verbrauchszähler: Das Gerät:Stromzähler hat eigenen Grundpreis: 1.69

                  javascript.0 2018-09-28 16:35:46.205 info script.js.common.Verbrauchszähler: Das Gerät:Stromzähler hat eigenen Strompreis: 0.26

                  javascript.0 2018-09-28 16:35:46.204 warn at Object. <anonymous>(script.js.common.Verbrauchszähler:223:25)

                  javascript.0 2018-09-28 16:35:46.204 warn at run (script.js.common.Verbrauchszähler:367:23)

                  javascript.0 2018-09-28 16:35:46.201 warn getState "javascript.0.Verbrauchszähler.Preis.aktuell.Grundpreis" not found (3)

                  javascript.0 2018-09-28 16:35:46.201 warn at Object. <anonymous>(script.js.common.Verbrauchszähler:223:25)

                  javascript.0 2018-09-28 16:35:46.201 warn at run (script.js.common.Verbrauchszähler:366:23)

                  javascript.0 2018-09-28 16:35:46.198 warn getState "javascript.0.Verbrauchszähler.Preis.aktuell.Arbeitspreis" not found (3)

                  javascript.0 2018-09-28 16:35:46.197 warn Object "javascript.0.Verbrauchszähler.Preis.neu.Datum" does not exist</anonymous></anonymous>

                  javascript.0 2018-09-28 16:35:46.196 info script.js.common.Verbrauchszähler: States in der Instanz javascript.0.Verbrauchszähler. erstellt

                  javascript.0 2018-09-28 16:35:46.183 info script.js.common.Verbrauchszähler: Nach der Aufbereitung: Stromzähler

                  javascript.0 2018-09-28 16:35:46.183 info script.js.common.Verbrauchszähler: Es wird der Aliasname gesetzt:Stromzähler

                  Kann es sein, das er immer noch den "normalen" Preis haben möchte? Also den der für alle Datenpunkte gilt?

                  Grüße

                  Manfred

                  1 Reply Last reply Reply Quote 0
                  • hg6806
                    hg6806 Most Active last edited by

                    Guten Morgen,

                    ich habe auch das 1.3.3er Script genommen und zwei Smartmeter eingefügt:

                    [ 'smartmeter.0.1-0:16_7_0_255.value', 'Strom.Allgemeinstrom', 'Wh', 'kWh' ],
                    [ 'smartmeter.1.1-0:16_7_0_255.value', 'Strom.Heizungsstrom', 'Wh', 'kWh' ],
                    

                    Komischerweise ist aber beim "Allgemeinstrom" ein Fehler von Faktor 10 drin.

                    Das Script zählt 10x mehr als ich wirklich verbrauche.

                    "Heizungsstrom" funktioniert 1a.

                    Noch etwas.

                    Das Script legt Datenpunkte für "Leistungsmessungaußen" an, obwohl ich im Script gar nichts angegeben habe.

                    Sucht es automatisch nach Homematic Leistungsmessern?

                    1 Reply Last reply Reply Quote 0
                    • Lenny.CB
                      Lenny.CB Most Active last edited by

                      @hg6806:

                      Sucht es automatisch nach Homematic Leistungsmessern? ` Das war bei mir auch so. Ich glaube https://github.com/hdering/homematic_verbrauchszaehler/blob/master/Zaehlerstande_protokollieren.js#L231 passiert das.

                      1 Reply Last reply Reply Quote 0
                      • hg6806
                        hg6806 Most Active last edited by

                        OK, das kann gut sein mit dem Homematic Leistungsmesser.

                        Aber woher kommt der Fehler mit dem Faktor 10?

                        Klar könnte ich das schnell fixen, mich würde aber interessieren wo das her kommt.

                        1 Reply Last reply Reply Quote 0
                        • hg6806
                          hg6806 Most Active last edited by

                          Ich muss mich korrigieren. Beide Smartmeter werden um Faktor 10 falsch gezählt.

                          1 Reply Last reply Reply Quote 0
                          • hg6806
                            hg6806 Most Active last edited by

                            Guten Morgen,

                            kann hier bitte jemand helfen?

                            Stromverbrauch wird noch immer um groben Faktor 10 falsch gezählt.

                            Es wird im Skript mehr gezählt als tatsächlich verbraucht.

                            Ich habe lediglich das Skript genommen und meine beiden IR-USB Smartmeter inkludiert.

                            Danke für Hinweise!

                            1 Reply Last reply Reply Quote 0
                            • K
                              knudi76 last edited by

                              Hallo Forengemeinde,

                              ich versuche mich gerade an diesem Script, leider bekomme ich von meiner PV-Anlage nur die Leistungswerte und keine Energiewerte. Diese benötige ich aber damit dieses Script funktioniert. Ich habe bislang im Forum nur etwas zur Umrechung von Energie zu Leistung gefunden. Gibt es eine Möglichkeit die Leistung auf Wertänderung zu prüfen und diese dann über die verstrichende Zeit in Energie zu berechnen? Diese Energie kann ich dann vernünftig in dieses Script einfügen und so meinen Ertrag protokollieren.

                              Vielen Dank

                              Stephan

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

                                Hallo allerseits,

                                ich hab das script vor einer halben Stunde laufen lassen, soweit alles gut.

                                Auffällig ist jedoch das mein LOG mit Fehlermeldungen vom history Adapter überläuft. Wenn ich das script pausiere sind die Meldungen weg.

                                Weiß jemand woran das liegt?
                                1342_log_verbrausz_hler.jpg

                                1 Reply Last reply Reply Quote 0
                                • Dutchman
                                  Dutchman Developer Most Active Administrators last edited by

                                  Ich sehe keine Fehlermeldung aber Meldungen das Datenpunkte geloggt werden?

                                  Sent from my iPhone using Tapatalk

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

                                    Hallo Dutchman,

                                    Danke , ich habs falsch interpretiert weil´s beim Start so viele Meldungen waren und bei einem Zähler alias=false stand.

                                    1 Reply Last reply Reply Quote 0
                                    • Dutchman
                                      Dutchman Developer Most Active Administrators last edited by

                                      Ich würde mir an deiner Stelle auch abfragen ob du so viele Datenpunkte loggen musst.

                                      Von diesem Script loggen ich insgesamt 15 oder so und das reicht vollkommen

                                      Sent from my iPhone using Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • W
                                        w00dy last edited by w00dy

                                        Hallo,

                                        wie @hg6806 habe ich ebenfalls das Problem, dass die ermittelten Werte um den Faktor +10 nicht stimmen.

                                        Ist es möglich, den Umrechnungsfaktor irgendwo im Script anzupassen?

                                        Im Script selber habe ich einen eigenen Datenpunkt angelegt. Dieser übernimmt Daten, die vom Modbus ermittelt werden.

                                        1 Reply Last reply Reply Quote 0
                                        • Dutchman
                                          Dutchman Developer Most Active Administrators last edited by

                                          Nein das kann das Script nicht.

                                          Ich würde es mit einem Script lösen welches erst den Wert mit Factor in einen anderen Datenpunkt schreiben und das Script auf diesen Datenpunkt loslassen

                                          Sent from my iPhone using Tapatalk

                                          1 Reply Last reply Reply Quote 0
                                          • W
                                            w00dy last edited by w00dy

                                            Hallo Dutchman,

                                            daran habe ich auch schon gedacht, einfach den ermittelten Wert vom Modbus entsprechend anzupassen.

                                            Da stoße ich aber mit meinen bescheidenen Blockly-Fähigkeiten an meine Grenzen.

                                            Im Modbus-Adapter selber kann man zwar einen Faktor einstellen, allerdings fehlen dann die notwendigen Nachkommastellen, was die Sache dann sehr ungenau macht.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            855
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            81
                                            455
                                            104870
                                            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