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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Betriebsstundenzähler & Verbrauchsrechner

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                              • L
                                looxer01 last edited by

                                Hi,

                                Ich habe die Version 0.99 hochgeladen.

                                Sie enthält ein paar Fixe. Der wichtigste ist der Rundungsfix, der hier schon öfter Thema war.

                                Der Einstellbereich inkl Experteneinstellungen hat sich nicht geändert. Es kann also nach dem Einstellungsbereich einfach kopiert werden.

                                vG Looxer

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

                                  vielen Dank Looxer,

                                  ich habe soweit alles eingetragen: siehe unten…

                                  Gruppen[ 2]  = ['javascript.0.StromMeter.Wert'                                ,'Stromzaehler'                                 ,false  ,false  ,false  ,false  ,false  ,false  ,'delta'      ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false]; //
                                  Gruppen[ 3]  = ['javascript.0.BSZ.System.Grp02MSec.UmdrDelta'                                ,'Stromzaehler'                                 ,false  ,false  ,false  ,false  ,false  ,false  ,'CALC'      ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,''     ,false ,false]; //
                                  
                                  logname[2]  =   ['UmdrDelta'      ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                                  logname[3]  =   ['MomVerbr'      ,''         ,''         ,''                 ,''         ,''         ,''         ,''     ,''     ,''];
                                  
                                  special[2]  =   ['9'     ,''     ,''                     ,''         ,''     ,''                 ,''                 ,'false'                         ,''             ,''             ,''                 ,''             ,''                 ,''      ]; 
                                  special[3]  =   ['9'     ,''     ,'10'                     ,'1000'         ,''     ,''                 ,''                 ,'false'                         ,''             ,''             ,''                 ,''             ,''                 ,''      ]; 
                                  

                                  Schaust Du mal was ich da raus bekommen habe? siehe Bild…

                                  Der Zähler ist mitlerweile montiert und zählt fleißig. Ich bekomme bei Momentanverbrauch ständig zwischen 0,01 und 0,03...

                                  Was sind das für Werte?

                                  Haben wir jetzt einfach die Umdrehung x 10 % 1000 gerechnet ??? Danach sieht es aus...

                                  Der Momentanverbrauch müsste aber so gerechnet werden. Umdrehung x 10 x 60 (um auf die min. zu kommen)

                                  Demnach müsste soetwas wie: 2 x 10 x 60 = 1800 Watt kommen bei Momentanverbrauch

                                  Lässt sich soetwas in deinem Script überhaupt einstellen? Da müsste man zwei mal die Werte miteinander multiplizieren 😐
                                  1526_unbenannt.png

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

                                    Hi,

                                    also geliefert wird die Anzahl der Umdrehungen.
                                    @knopers1:

                                    1 Umdrehung = 10,42 Watt aufgerundet ( 1000%96=10,42 Watt pro Drehung des Zählers) `
                                    Ich hatte das so verstanden, dass eine Umdrehung ungeführ 10 Watt ist.

                                    Im Datenpunkt GrpMsec wird die letzte Anzahl der Umdrehungen geliefert. Also habe ich Umdrehungen * 10 / 1000 gerechnet = kWh

                                    Wenn du also 0,01 gemeldet bekommst dann sind das 10 wH Momentanverbrauch also eine Umdrehung offensichtlich. Ist jetzt tatsächlic etwas wenig aber eben eine Umdrehung.

                                    Sollte die Umrechnung aber * 10 * 60 sein, dann brauchst du ja nur im Faktor 600 einzugeben.

                                    bei einer Umdrehung also 600 wH - korrekt ?

                                    wenn ja, dann stelle im Faktor 600 ein.

                                    vG Looxer

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

                                      ehm,,, bin selbt mitlerweile verwirrt…

                                      auf dem Zähler steht 96 Umdrehungen = 1kW/h

                                      Eine Umdrehung = 1000 Watt geteil 96 = 10,41Watt/h

                                      demnach um den Momentaverbrauch /min zu bekommen, müsste die Rechnung so aussehen

                                      Umdrehung x 10 x 60 = Wert/min

                                      Beispiel: 2 x 10 x 60 = 1200W/min.

                                      Kann mab das im Script einstellen?

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

                                        jap,

                                        du gibst im Faktor 600 ein.

                                        Wenn du das Ganze als kWh sehen willst dann noch im Divisor 1000 oder eben nichts, wenn es denn wH sein sollen.

                                        Die Umdrehungen der letzten Minute haben wir ja ermittelt. Mehr braucht's doch nicht.

                                        vG Looxer

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

                                          Geil Looxer,

                                          Faktor 600 eingetragen und schon geht es mit Watt/ min. :mrgreen:

                                          Wenn ich noch in Diwisor einen Wert 1000 eintrage, müßte ich dann einen Momentanwert für eine min. bekommen in kWh 😄

                                          Danke Looxer für Deine Arbeit. Bist ein hilsbereiter Typ.

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

                                            Hallo zusammen,

                                            hat wer sich die Daten Day 1 oder before bereits im mobile Adapter anzeigen lassen?

                                            Normal geht es ja so, dass wenn ich den States einen Raum und Funktion zuweise, dass sich diese automatisch sich in Aufzählungen befinden.

                                            Somit dann auch in mobileui.

                                            Leider hat das gestern bei mir nicht funktioniert. Ich denke mal, dass liegt daran, wie das Objekt erstellt wurde. Andere States von meinen anderen Scripten lassen sich in mobileui aufrufen.

                                            Ich muss die Datenpunkte mal mit dem WM-Bus Daten vergleichen, was da anders ist, aber vielleicht hat so schon einer eine Idee.

                                            Gruß

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            862
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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