Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Betriebsstundenzähler & Verbrauchsrechner

    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] Betriebsstundenzähler & Verbrauchsrechner

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

      Hi Christian,

      schaue ich mir an. Könnte aber Morgen werden.

      vG Looxer

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

        Hi looxer01,

        vielen Dank nochmal für dein Script, läuft bereits paar Wochen lang und zählt schön mein Gasverbrauch.

        Jetzt habe ich mich heran gemacht und versuche den Strom zu erfassen.

        Als Grundlage habe ich wieder ein Sketch für "Gaszähler an Wemo D1 mini" genommen, etwas abgeändert und ein TCRT5000 Reflexionslichtschranke an das gute Teil angeschlossen.

        Ich bekomme jetzt jede Umdrehung des Stromzählers einen Wert von 0,1 dazugezählt….

        demnach nach 10 Umdrehungen der Scheibe wird eine glatte 1,00 ausgegeben. Die Werte kommen schön in den Iobroker mit Jawascript herein....

        Jetzt zur meiner Frage aber.... Laut meinem Stromzähler, ergeben 96 Umdrehungen der Scheibe = 1 KWh.

        Um den Tagesverbrauch zu ermitteln, müsste ich normal nur noch die Umdrehungen pro Tag zählen. Das sowiet klar.. Wie komme ich auf den Momentanverbrauch. Da spielt natürlich Zeit im Spiel. Kannst Du mir helfen Looxer01?

        1 Reply Last reply Reply Quote 0
        • L
          looxer01 last edited by

          Hi Christian,

          zum Thema korrekter Umrechnung

          kannst du mal die Werte aus den unterliegenden Datenpunkten der folgenden Objekte zeigen ?

          javascript.0.BSZ.System.Grp02Kum

          javascript.0.BSZ.System.Grp02MSec

          javascript.0.BSZ.System.Grp03Kum

          javascript.0.BSZ.System.Grp03MSec

          Hintergrund ist, dass dort die realen Werte ohne Umrechnung gespeichert werden.

          Falls dort die Werte stimmen, dann gib in das Runden für kwh und Euro mal jeweils 9 ein.

          Mit Rundungen hatte ich mal Probleme. Die Originalwerte aus dem Systembereich verändern sich dabei nicht.

          Zum Thema "before" habe ich im Moment noch keine Idee. Da gab es noch nie ein Problem.

          "before" wird ja auch nicht gerechnet sondern einfach beim Tageswechsel in den Datenpunkt übertragen.

          Ich schaue mir nochmal das Coding an.

          vG Looxer

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

            Das mit dem runden war bei mir mal ein Problem.

            Hattest du dann aber irgendwie gelöst.

            Ist diese Verbesserung garnicht als Update in deinem Script eingeflossen?

            Gruß

            1 Reply Last reply Reply Quote 0
            • L
              looxer01 last edited by

              Hi

              @knopers1:

              Wie komme ich auf den Momentanverbrauch. Da spielt natürlich Zeit im Spiel. `

              Was liefert denn der Zähler genau für Daten ? Darauf kommt es ja an wie eine Lösung aussehen könnte.

              Theoretisch kannst du einen annähernden Momentanverbrauch (abhängig von der Laufzeit einer Umrundung) erhalten.

              jede Umdrehung = ungefähr 100 Watt . Wenn die Scheibe dafür 60 Sekunden braucht, dann hast du 6 kWh Verbrauch

              bei 0,5 kWh Verbrauch dürfte eine Scheibenumdrehung also 12 Minuten brauchen - korrekt ?

              Bei diesen Werten ist der Momentanverbrauch also eher ein letzter Verbrauch.

              Wie du schon gesagt hast. Du brauchst die letzte Umdrehungszeit. Wenn die geliefert wird, dann kannst du mit dem BSZ einfach umrechnen (Methode CALC)

              Wenn aber nur "0,1" geliefert wird, dann wird es eher schwierig für den BSZ, bzw. es bräuchte zusätzliches Coding über den UserExit.

              vG Looxer

              1 Reply Last reply Reply Quote 0
              • L
                looxer01 last edited by

                @ple:

                Ist diese Verbesserung garnicht als Update in deinem Script eingeflossen? `
                Nein, es gab noch keine neue Version.

                vG Looxer

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

                  Die Aufzeichnung der Verbrauchsdaten läuft jetzt super, danke für das großartige Script BSZ.

                  Der Name Betriebsstundenzähler legt nahe, dass es möglich ist Startzeiten und Betriebsdauer zu erfassen. ich habe jetzt schon alles mögliche ausprobiert, bekomme es einfach nicht hin.

                  Ich habe eine Variable(Objekt) angelegt, diese wird durch einen Temperaturwert auf false/True geschaltet. diese habe ich in dem BSZ als Objekt eingefügt, aber dann? Spalte 9 ist ja offenbar für die Berechnungen, bzw die dritte Tabelle. Ich habe aber leider keinen Schimmer wie das zu konfigurieren ist.

                  Für eine Hilfestellung wäre ich sehr dankbar.
                  4489_bildschirmfoto_2017-12-29_um_17.36.47.png
                  4489_bildschirmfoto_2017-12-29_um_17.41.06.png

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

                    Hallo Looxer, hab den Sketch des Wemos umgeschrieben und bekomme jetzt glatte Zahlen pro Umdrehung! siehe Bild. Ich hoffe das es damit einfacher wird zu arbeiten.

                    Bis dato habe ich ein paar Angaben für Gas und deren Berechnung! Deine obige Rechnung machtSinn…

                    Aber: ich komme aber bei jeder Umdrehung = ungefähr auf 10 Watt aufgerundet. Wenn ich es mit 100 " Umdrehungen" multipliziere , komme ich auf 1000Watt was 1KW entspricht.... Kann das? Ich habe dir unten meine Tabelle vom deinem Script eingefügt. Kannst Du grob sagen, wie ich es (Methode CALC) bei meinem Beispiel anwenden soll?

                    Gruß 🙂

                    //              1.Homematic ID,                    2.Thema(no spaces)                    3.History  4.DAY  5.Week  6.Month 7.Year  8.Switch   9 - 18 Status to log                                                         19.stop 20.Loesch
                    Gruppen[ 0]  = ['javascript.0.GasMeter.Wert'                           ,'Heizung'                               ,true  ,true  ,true  ,true  ,true  ,false  ,'delta'      ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false]; //
                    Gruppen[ 1]  = ['javascript.0.BSZ.Counter.Heizung.DELTA.GAS.1-DAY'           ,'Heizung_KWh'                           ,true  ,true  ,true  ,true  ,true  ,false  ,'CALC'      ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false]; //
                    Gruppen[ 2]  = ['initial'                                ,''                                 ,false  ,false  ,false  ,false  ,false  ,false  ,''      ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false]; //
                    Gruppen[ 3]  = ['initial'                                ,''                                 ,false  ,false  ,false  ,false  ,false  ,false  ,''      ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false]; //
                    
                    var logname = [];
                    //              Stat1           Stat2       Stat3       Stat4               Stat5       Stat6       Stat7       Stat8   Stat9   Stat10
                    logname[0]  =   ['GAS'          ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                    logname[1]  =   ['GAS_KWh'      ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                    logname[2]  =   ['EinAus3'      ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                    logname[3]  =   ['EinAus3'      ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                    
                    var special = [];
                    //             1.Round 2.add1   3.Faktor                4\. Divisor  5.add2  6.Individuallogik  7: DELTA(M)Grenze    8.Warten auf Bestaetigung  9.Durchschnitt - 10.Zaehlschwelle     11 Schedule    12\. Min/MAX     13\. MehrfachStatus  14\. Selektives Logging
                    special[0]  =   ['2'    ,''     ,''                     ,''         ,''     ,''                 ,''                 ,'false'                    ,''             ,''             ,''                 ,''             ,''                 , ''     ]; 
                    special[1]  =   ['2'    ,''     ,'11.432'               ,''         ,''     ,''                 ,''                 ,'false'                    ,''             ,''             ,''                 ,''             ,''                 ,''      ]; 
                    special[2]  =   [''     ,''     ,''                     ,''         ,''     ,''                 ,''                 ,''                         ,''             ,''             ,''                 ,''             ,''                 ,''      ]; 
                    special[3]  =   [''     ,''     ,''                     ,''         ,''     ,''                 ,''                 ,''                         ,''             ,''             ,''                 ,''             ,''                 ,''      ]; 
                    

                    1526_unbenannt.png

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

                      @looxer01:

                      @ple:

                      Ist diese Verbesserung garnicht als Update in deinem Script eingeflossen? `
                      Nein, es gab noch keine neue Version.

                      vG Looxer `

                      Danke für deine Rückmeldung,

                      @Ple hat mir sein Script zu Verfügung gestellt mit dem läuft es jetzt wie gewünscht allerdings habe ich keine unterscheide in seinem zu meinem Script gefunden.

                      Da hattest du aber wohl schon irgendwas geändert, deshalb läuft es jetzt.

                      Gruß Christian

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

                        Hallo Looxer

                        nach Neuinstallation von iobroker hab ich 2 *.csv Dateien, eine vom Zeitraum 04/17 bis 12/17 und eine von der aktuellen Installation '(ab28.12.17). Kann man die "zusammenlegen" ? Hatte meine vorherige iobroker installation zerschossen.

                        1 Reply Last reply Reply Quote 0
                        • L
                          looxer01 last edited by

                          Hi,

                          ich nehme an, dass du die Dateien brauchst, um Folgebearbeitungen durchzuführen.

                          Mache ich auch so mit Excel.

                          in diesem Fall, ja. CSV Dateien sind reine Textdateien und enthalten keine Formatierungen.

                          Du kannst sie mit einem Editor einfach zusammenfügen.

                          vG Looxer

                          1 Reply Last reply Reply Quote 0
                          • L
                            looxer01 last edited by

                            @cvidal:

                            Ple hat mir sein Script zu Verfügung gestellt mit dem läuft es jetzt wie gewünscht allerdings habe ich keine unterscheide in seinem zu meinem Script gefunden.

                            Da hattest du aber wohl schon irgendwas geändert, deshalb läuft es jetzt. `

                            Dann scheint sich die Aenderung ja zu bewähren.

                            Ich mache eine neue Version und stelle sie online.

                            vG Looxer

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

                              Hallo Looxer,

                              ich hänge immer noch fest bei der Umrechnung!

                              Mein Zähler:

                              96 Umdrehungen = 1000 Watt

                              1 Umdrehung = 10,42 Watt aufgerundet ( 1000%96=10,42 Watt pro Drehung des Zählers)

                              Meine Daten werden minütlich an IObroker vom Zähler übetragen.

                              Demnach mußte für Leistung in Watt/min so rechnen: Umdrehungen x 10,42 Watt x 60 (Zeit-damit ich auf die Minute komme) = Leistung in Watt/min

                              Beispiel: 2(Umdrehungen) x 10,42 = 20,84 Watt/min x 60 = 1250,4 Watt/min

                              Für kWh muß man es noch durch 1000 teilen

                              Also Umdrehung x 10,42 Watt x 60 % 1000

                              Beispiel: 2x10,42 x60 %1000 = 1,2504 KW

                              Jetzt das ganze etwas aufgerundeter, damit es nicht zu kompliziert wird…

                              Ich rechne so wie Du vorgerechnet hast.

                              1 Umdrehung = 10 Watt

                              Die Rechnung was ich benötige ist:

                              Also eine Umdrehung(=10Watt) x 60 (damit ich auf die 1 min. komme) = 600 Watt/min (Momentanverbrauch)

                              Ich würde gerne noch den Wert in kWh haben.

                              Also eine Umdrehung(=10Watt) x 60 (damit ich auf die 1 min. komme) = 600 Watt/min % 1000 = 0,6 kW/h

                              Ich habe jetzt nur mit einer Umdrehung gerechnet. Natürlich sind die Verbrauchswete immer unterschiedlich und werden pro min als Umdrehung des Zählers frisch übetragen.

                              Kannst Du helfen? Ich würde zum anfang erst mit dem Momentanverbrauch beginnen... Kannst Du sagen, wie dies in der Tabelle einzutragen ist?

                              PS: hier noch zwei Bilder von dem "Selbsbau" des Stromzählers 🙂
                              1526_2.2.jpg
                              1526_1.1.jpg

                              1 Reply Last reply Reply Quote 0
                              • L
                                looxer01 last edited by

                                Hi,
                                @knopers1:

                                1 Umdrehung = 10 Watt `

                                ok, das hört sich schon besser an. Mit der Auflösung 10 Watt per Umdrehung kann man da ja was mit anfangen.

                                Durch die minütliche Übertragung ist das natürlich wieder etwas eingeschränkt aber wohl noch ok. Hängt halt nach.

                                Könntest du mir die Datenpunkte per JSON Objektliste als PN senden ?

                                1. IoBroker - Admin

                                2. Objekte

                                3. Auf das überlegende Strukturelement navigieren und markieren

                                4. ICON oben links (das äusserst rechte)

                                Das File als txt umbenennen.

                                vG Looxer

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

                                  die PN ist raus:

                                  hier noch zwei Bilder der Konfig!
                                  1526_uifrhi6f.txt
                                  1526_unbenannt.png
                                  1526_unbenannt1.png

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    looxer01 last edited by

                                    Hi,

                                    also bekommst du die Umdrehungen geliefert.

                                    Im Screen sehe ich einen Wert von 5.00.

                                    Bedeutet das, dass seit dem letzten update des Datenpunktes 5 Umdrehungen gemessen wurden ?

                                    vG Looxer

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

                                      ja, das sind Umdrehungen…

                                      Ich bekomme jede min. den aktuellen Zählerstand. Wenn kein Strom entnommen worden ist, dann bleibt es nach einer Minute weiterhin auf 5. Sonst kommen Werte hinzu. Wie gesagt, jede min. frisch ausgelesen und zu der 5 dazugezählt.

                                      Der Wert ist zwar deshalb so niedrig, da das ganze Zeug noch auf dem Schreibtisch liegt. Das Einbauen wird noch kommen. Der Sensor erkennt aber die Scheibe des Stromzählers ohne Probleme wenn es gut ausgerichtet und über dem Poti eingestellt ist.

                                      In der Praxis, wirt der Wert ständig steigen mit der Entnahme des Stromes.

                                      In der Theorie ist das nur ein dummer Zähler was hoch zählen kann...

                                      1 Reply Last reply Reply Quote 0
                                      • L
                                        looxer01 last edited by

                                        Hi,
                                        @knopers1:

                                        ja, das sind Umdrehungen…

                                        Ich bekomme jede min. den aktuellen Zählerstand. Wenn kein Strom entnommen worden ist, dann bleibt es nach einer Minute weiterhin auf 5. Sonst kommen Werte hinzu. Wie gesagt, jede min. frisch ausgelesen und zu der 5 dazugezählt. `

                                        also ich bin noch nicht klar.

                                        • Bekommst du einen Zählerstand ? (zusätzlich zu den Umdrehungen ?

                                        • Mich irritiert, dass dort eine 5 steht. Wenn ständig addiert werden würde, dann müsste die Anzahl der Umdrehungen ja viel groesser sein

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

                                          siehe nochmal oben, habe mein Post vorhin editiert!

                                          Das ist ein dummer Zähler, was praktisch hochzählt und den Wert minütlich an IOBroker sendet! Ich bekomme nur die Umdrehungszahl. Die 5 ist an sich ein Zählerstand. Ich könnte es auf Wert 2000 setzen. Nur wofür? Nach einer min. würde er dann eine zB. eine 2002 ausgeben….

                                          Der Wert steigt nur, und ist deshalb so niedrig, da das ganze Zeug noch auf dem Schreibtisch liegt. Um an den Wert für die letzte min. zu kommen, müsste man den alten Wert von dem neuen abziehen. ZB: Wert alt 2000, frisch aktualiesiert 2002.

                                          EDIT:

                                          Betrachte es als ein neuer Zähler was frisch eingebaut ist. Der fängt auch an von 0 hoch zu zählen. Mann könnte sagen dass es ein Zählerstand ist!

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            looxer01 last edited by

                                            Hi,

                                            es gibt tatsächlich eine Möglichkeit, da die Delta Werte im System Bereich vorgehalten werden.

                                            Ich habe es getestet. Du musst nur deine Datenpunkte eintragen. Wichtig: die richtige Gruppennummer für GRP24 eintragen.

                                            Sieht dann so aus anhand meiner Testdatenpunkte. Der Test war erfolgreich Du bekommst den Verbrauch der letzten Minute in kWh

                                            vG Looxer

                                            Gruppentabelle

                                            Gruppen[24] = ['javascript.0.StromzaehlerTest.StromzaehlerTest', 'Stromzaehler'            ,false  ,false  ,false  ,false  ,false  ,false  ,'delta' ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false];
                                            Gruppen[25] = ['javascript.0.BSZ.System.Grp24MSec.UmdrDelta' , 'Stromzaehler'            ,false   ,false ,false  ,false  ,false  ,false  ,'calc'  ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false];
                                            
                                            /*-------------------------------------------------------------------------------
                                            
                                            

                                            LogName Tabelle

                                            `logname[24] =   ['UmdrDelta'    ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                                            logname[25] =   ['MomVerbr'         ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                                            
                                            special Tabelle
                                            [code]
                                            special[24] =   ['9'    ,''     ,''                     ,''         ,''     ,''                 ,''                 ,'false'                         ,''         ,''                 ,''   ,''             ,''                  ,''];
                                            special[25] =   ['9'    ,''     ,'10'                   ,'1000'     ,''     ,''                 ,''                 ,'false'                         ,''             ,''                 ,''             ,''         ,''              ,''];
                                            
                                            [/code]`
                                            
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            851
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            51
                                            333
                                            79252
                                            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