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.
    • D
      dering last edited by

      @cvidal:

      @dering:

      @ple:

      Leerzeichen sind nicht vorhanden. Umlaute ja, aber nicht überall.

      Screen kommt leider nur vom iPhone, hoffe das reicht. `

      Kannst du in dem config Ordner die Objekte Tag, Monat….ändern? also von false auf true ändern. `

      Ich Antworte einfach mal weil ich das selbe Problem habe…

      Ja in der Config kann ich ändern, habe alles auf false stehen.

      Gruß Christian `

      Waren das eigene Datenpunkte? oder werden die automatisch eingelesen (also homematic)?

      1 Reply Last reply Reply Quote 0
      • D
        dering last edited by

        @ple:

        Ich kann’s auch ändern.

        Frage an die anderen, seid ihr alle mit einem rpi unterwegs?

        Wir sind mit einem odroid und ubuntu mate dabei.

        Nicht das es daran liegt, was ich mir aber nicht vorstellen kann. `

        Waren das eigene Datenpunkte? oder werden die automatisch eingelesen (also homematic)?

        1 Reply Last reply Reply Quote 0
        • cvidal
          cvidal Forum Testing last edited by

          Beide,

          Automatisch eingelesene habe ich zwei Geräte und habe eins händisch zugefügt.

          Verhalten sich alle gleich.

          Gruß

          1 Reply Last reply Reply Quote 0
          • D
            dering last edited by

            @cvidal:

            Beide,

            Automatisch eingelesene habe ich zwei Geräte und habe eins händisch zugefügt.

            Verhalten sich alle gleich.

            Gruß `

            bitte diese Funktion

            function setRecognizedChange(type) {
                cacheSelectorStateMeter.each(function (id, i) {
                    var geraetename = parseObjects(id);
            
                    setState(pfad + geraetename + '.config.' + type, true);
                });
            
                cacheSelectorStateEnergyCounter.each(function (id, i) {
                    var geraetename = parseObjects(id);
            
                    setState(pfad + geraetename + '.config.' + type, true);
                });    
            }
            

            durch folgende ersetzen:

            `function setRecognizedChange(type) {
                cacheSelectorStateMeter.each(function (id, i) {
                    var geraetename = parseObjects(id);
            
                    setState(pfad + geraetename + '.config.' + type, true);
                });
            
                cacheSelectorStateEnergyCounter.each(function (id, i) {
                    var geraetename = parseObjects(id);
            
                    setState(pfad + geraetename + '.config.' + type, true);
                });
            
                if (eigeneDatenpunkte.length > 0) {
            
                    for(var i = 0; i < eigeneDatenpunkte.length; i++) {
                        var alias = eigeneDatenpunkte[i][1];
            
                        setState(pfad + alias + '.config.' + type, true);
                    }
                }
            }`
            
            Das ist für den Tageswechsel von eigenen Datenpunkten.[/i]
            
            1 Reply Last reply Reply Quote 0
            • P
              ple last edited by

              Wird gleich mal gemacht,

              also bei mir, denke auch bei cvidal, werden nach Tag und Woche der Configwert auf true gesetzt.

              Das scheint soweit zu funktionieren.

              Mit welcher Nodeverion bis du unterwegs? Wir haben die 6.xxx drauf.

              Deine Änderung lasse ich mal einfließen. Werde danach mal die Datenpunkte wieder löschen und den morgen abwarten.

              Gruß und Danke
              1241_iobroker.png

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

                Jetzt scheint es super zu klappen. Endlich kann ich mir eine entsprechende Übersicht erstellen.

                4489_bildschirmfoto_2018-03-19_um_12.11.25.png

                Die Ordner im JS sehen jetzt so aus:

                4489_bildschirmfoto_2018-03-19_um_10.21.22.png

                Bin sehr gespannt auf die nächsten Tage, dann kann ich mir dann eine Entwicklung darstellen, bzw einen Verlauf.

                Noch verstehe ich nicht, warum tag und Woche verschieden sind von Quartal, Monat und Jahr?

                <size size="150">Noch eine Idee zu der Grundgebühr: Wäre es evtl. sinnvoll den Wert mal 12/360 zu Teilen und dann dem Tagesumsatz hinzuzurechen?</size>

                Beste Grüße und Danke

                1 Reply Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active last edited by

                  Hallo, kann es nicht installieren,

                  geht es nicht unter Windows?

                  2858_screenshot__443_.png

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

                    Ist doch kein Adapter sondern nur ein Script.

                    Also aus Git laden und in Javascript als neues Script kopieren sollte gehen.

                    1 Reply Last reply Reply Quote 0
                    • sigi234
                      sigi234 Forum Testing Most Active last edited by

                      Ich bin ein Vollkoffer…......... :shock:

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

                        Guten morgen,

                        habe mich gewundert, warum die kW/h nur mit 2 nachkommastellen geschrieben werden, obwohl ich 3 angegeben habe.

                        Grund: Hab nen Fehler in Zeile 355 entdeckt und geändert. Und siehe da, jetzt sind es 3 nachkommastellen.

                        Aus

                        // aktualisiere den Verbrauch und die Kosten
                                    _zaehler    = (getState(idKumuliert).val / 1000).toFixed(AnzahlKommastellenKosten);
                                    _preis      = getState(idStrompreis).val;
                        

                        wurde

                        // aktualisiere den Verbrauch und die Kosten
                                    _zaehler    = (getState(idKumuliert).val / 1000).toFixed(AnzahlKommastellenZaehlerstand);
                                    _preis      = getState(idStrompreis).val;
                        
                        1 Reply Last reply Reply Quote 0
                        • D
                          dering last edited by

                          @Kampfratte:

                          Guten morgen,

                          habe mich gewundert, warum die kW/h nur mit 2 nachkommastellen geschrieben werden, obwohl ich 3 angegeben habe.

                          Grund: Hab nen Fehler in Zeile 355 entdeckt und geändert. Und siehe da, jetzt sind es 3 nachkommastellen.

                          Aus

                          // aktualisiere den Verbrauch und die Kosten
                                      _zaehler    = (getState(idKumuliert).val / 1000).toFixed(AnzahlKommastellenKosten);
                                      _preis      = getState(idStrompreis).val;
                          

                          wurde

                          // aktualisiere den Verbrauch und die Kosten
                                      _zaehler    = (getState(idKumuliert).val / 1000).toFixed(AnzahlKommastellenZaehlerstand);
                                      _preis      = getState(idStrompreis).val;
                          ```` `  
                          

                          Vielen Dank für den Hinweis. Hab ich gleich in github geändert.

                          1 Reply Last reply Reply Quote 0
                          • D
                            dering last edited by

                            Version 1.1.3 ist nun online:

                            https://github.com/hdering/homematic_st … okollieren

                            1.1.3 (2018-03-20)

                            (hdering) AnzahlKommastellenZaehlerstand korrigiert

                            1.1.2 (2018-03-19)

                            (hdering) Tages-, Wochen-, Monats-.... bei eigenen Datenpunkten vergessen zu setzen

                            1 Reply Last reply Reply Quote 0
                            • D
                              dering last edited by

                              @ple:

                              Wird gleich mal gemacht,

                              also bei mir, denke auch bei cvidal, werden nach Tag und Woche der Configwert auf true gesetzt.

                              Das scheint soweit zu funktionieren.

                              Mit welcher Nodeverion bis du unterwegs? Wir haben die 6.xxx drauf.

                              Deine Änderung lasse ich mal einfließen. Werde danach mal die Datenpunkte wieder löschen und den morgen abwarten.

                              Gruß und Danke `

                              Ich habe auch node 6.

                              Kannst du mal die log in ioBroker um 0:00 Uhr offen lassen um zu sehen, ob irgendwelche Fehler kommen?

                              Irgendwas muss ja kommen.

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

                                danke für das Update. Habe deine Änderungen bei mir rein kopiert.

                                Musste nur aufpassen, ab wo ich von github kopiere, da ich dein Script ziemlich oben heute früh vor der Arbeit angepasst habe.

                                Ich habe das Script heute früh in soweit geändert, dass es bei Tages-, Wochen-, Monats-, u.s.w. Wechsel nicht mehr "true" in die config… schreibt, sondern gleich das kopieren der Zahlen in die Tag1, Tag2, Tag3 u.s.w. durchführt und den aktuellen Tag auf 0 setzt. Und das Nachts um 0 Uhr.

                                Habe dann nach einbau den schedule Tag statt auf 0 0 auf 35 5 und so gestellt um zu sehen was passiert. Und siehe da, es klappte bei allen drei Versuchen.

                                Grund für diese Arbeit bei mir war, dass Steckdosen in diesem Log mit dabei sind, die nicht jeden Tag an sind, sondern ganz sporadisch nur ab und an. Das Problem war, dass das sogenannte "true" ja nur abgearbeitet wurde und die Daten übertragen wurden, wenn die Steckdose an ist und einen Wert schickt. Wenn die Steckdose nun aber 2 Tage nicht in Betrieb ist, dann bekomme ich den Verbrauch aber nicht nach Tag 3, wo er eigentlich hin sollte, sondern nach Tag 1 eingetragen. Aber genau das wollte ich nicht.

                                Wenn jemand Interesse daran hat, bitte melden.

                                1 Reply Last reply Reply Quote 0
                                • P
                                  ple last edited by

                                  @dering:

                                  @ple:

                                  Wird gleich mal gemacht,

                                  also bei mir, denke auch bei cvidal, werden nach Tag und Woche der Configwert auf true gesetzt.

                                  Das scheint soweit zu funktionieren.

                                  Mit welcher Nodeverion bis du unterwegs? Wir haben die 6.xxx drauf.

                                  Deine Änderung lasse ich mal einfließen. Werde danach mal die Datenpunkte wieder löschen und den morgen abwarten.

                                  Gruß und Danke `

                                  Ich habe auch node 6.

                                  Kannst du mal die log in ioBroker um 0:00 Uhr offen lassen um zu sehen, ob irgendwelche Fehler kommen?

                                  Irgendwas muss ja kommen. `

                                  So, gerade noch mal alles neu gemacht mit deinem aktuellen Script und mal ein paar Minuten später die Daten schieben lassen. Ohne die WM-Bus Teilnehmer ging das schon mal.

                                  Ich aktiviert die jetzt auch mal und sehe morgen früh mehr.

                                  Nun scheint es zu funktionieren.

                                  Besteht noch die Möglichkeit eventuell ein paar Features einzubauen?

                                  Schön wäre es, wie auch beim eigenen Preis, auch die Einheit anzugeben, eventuell noch einen Teiler. Somit könnte man das Script für Wasser, Gasverbrauch nehmen.

                                  Gruß und Danke

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dering last edited by

                                    @ple:

                                    @dering:

                                    @ple:

                                    Wird gleich mal gemacht,

                                    also bei mir, denke auch bei cvidal, werden nach Tag und Woche der Configwert auf true gesetzt.

                                    Das scheint soweit zu funktionieren.

                                    Mit welcher Nodeverion bis du unterwegs? Wir haben die 6.xxx drauf.

                                    Deine Änderung lasse ich mal einfließen. Werde danach mal die Datenpunkte wieder löschen und den morgen abwarten.

                                    Gruß und Danke `

                                    Ich habe auch node 6.

                                    Kannst du mal die log in ioBroker um 0:00 Uhr offen lassen um zu sehen, ob irgendwelche Fehler kommen?

                                    Irgendwas muss ja kommen. `

                                    So, gerade noch mal alles neu gemacht mit deinem aktuellen Script und mal ein paar Minuten später die Daten schieben lassen. Ohne die WM-Bus Teilnehmer ging das schon mal.

                                    Ich aktiviert die jetzt auch mal und sehe morgen früh mehr.

                                    Nun scheint es zu funktionieren.

                                    Besteht noch die Möglichkeit eventuell ein paar Features einzubauen?

                                    Schön wäre es, wie auch beim eigenen Preis, auch die Einheit anzugeben, eventuell noch einen Teiler. Somit könnte man das Script für Wasser, Gasverbrauch nehmen.

                                    Gruß und Danke `

                                    Perfekt wäre ein eigener Adapter dafür. Ich bin mich schon am einlesen wie sowas funktioniert :).

                                    Was man natürlich machen könnte. Alle Geräte ob Homematic oder nicht Homematic über eigene Datenpunkte anlegen. So könnte man zumindest die Einheit selbst wählen.

                                    Teiler müsste dann noch hinzugefügt werden.

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      ple last edited by

                                      Dein Script nähert sich diesem hier

                                      viewtopic.php?f=21&t=2175

                                      schön das sich was in die Richtung entwickelt, leider kann ich dabei nicht unterstützen, da mir das Wissen fehlt.

                                      Bin schon froh dass ich meine Standard Sachen in Javascript hinbekomme 🙂

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

                                        Wie muss ich die Zeile für telegram richtig anpassen? Ich bekomme nämlich einen Fehler.

                                        Meine Anpassung:

                                        // 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 ++++++++++++++++++++++++
                                        

                                        Fehler:

                                        javascript.0	2018-03-21 14:40:46.237	info	Stop script script.js.common.Stromzaehler_homematic
                                        javascript.0	2018-03-21 14:38:38.880	error	at Object. (script.js.common.Stromzaehler_homematic:437:4)
                                        javascript.0	2018-03-21 14:38:38.880	error	at run (script.js.common.Stromzaehler_homematic:355:30)
                                        javascript.0	2018-03-21 14:38:38.880	error	at send_message (script.js.common.Stromzaehler_homematic:60:5)
                                        javascript.0	2018-03-21 14:38:38.880	error	Error in callback: ReferenceError: sendTelegram is not defined
                                        javascript.0	2018-03-21 14:38:38.879	info	script.js.common.Stromzaehler_homematic: Stromverbrauch und -kosten 
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          dering last edited by

                                          @lobomau:

                                          Wie muss ich die Zeile für telegram richtig anpassen? Ich bekomme nämlich einen Fehler.

                                          Meine Anpassung:

                                          // 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 ++++++++++++++++++++++++
                                          

                                          Fehler:

                                          javascript.0	2018-03-21 14:40:46.237	info	Stop script script.js.common.Stromzaehler_homematic
                                          javascript.0	2018-03-21 14:38:38.880	error	at Object. (script.js.common.Stromzaehler_homematic:437:4)
                                          javascript.0	2018-03-21 14:38:38.880	error	at run (script.js.common.Stromzaehler_homematic:355:30)
                                          javascript.0	2018-03-21 14:38:38.880	error	at send_message (script.js.common.Stromzaehler_homematic:60:5)
                                          javascript.0	2018-03-21 14:38:38.880	error	Error in callback: ReferenceError: sendTelegram is not defined
                                          javascript.0	2018-03-21 14:38:38.879	info	script.js.common.Stromzaehler_homematic: Stromverbrauch und -kosten 
                                          ```` `  
                                          

                                          Hi lobomau,

                                          du musst Telegram installiert und konfiguriert haben. Ich habe in meinem javascript\global Ordner eine Hilfsfunktion dafür geschrieben die überall verfügbar ist.

                                          Anstatt

                                          > sendTelegram(text);

                                          könntest du auch folgendes schreiben:

                                          ` > sendTo("telegram.0", {

                                          text: text,

                                          chatId: <deine id="">});</deine> `

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

                                            @lobomau:

                                            Wie muss ich die Zeile für telegram richtig anpassen? Ich bekomme nämlich einen Fehler.

                                            Meine Anpassung:

                                            // 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 ++++++++++++++++++++++++
                                            

                                            Fehler:

                                            javascript.0	2018-03-21 14:40:46.237	info	Stop script script.js.common.Stromzaehler_homematic
                                            javascript.0	2018-03-21 14:38:38.880	error	at Object. (script.js.common.Stromzaehler_homematic:437:4)
                                            javascript.0	2018-03-21 14:38:38.880	error	at run (script.js.common.Stromzaehler_homematic:355:30)
                                            javascript.0	2018-03-21 14:38:38.880	error	at send_message (script.js.common.Stromzaehler_homematic:60:5)
                                            javascript.0	2018-03-21 14:38:38.880	error	Error in callback: ReferenceError: sendTelegram is not defined
                                            javascript.0	2018-03-21 14:38:38.879	info	script.js.common.Stromzaehler_homematic: Stromverbrauch und -kosten 
                                            ```` `  
                                            

                                            einfach

                                            // Pushmeldung
                                            function send_message(text) {
                                            
                                                // Hier können die Pushmeldung über alle möglichen Wege verschickt werden.
                                            
                                                //console.log(text);
                                            
                                                //sendTelegram(text);
                                            }
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            488
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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