Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Betriebsstundenzähler & Verbrauchsrechner

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

[Vorlage] Betriebsstundenzähler & Verbrauchsrechner

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
333 Beiträge 51 Kommentatoren 93.0k Aufrufe 26 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • blauholstenB Offline
    blauholstenB Offline
    blauholsten
    Developer
    schrieb am zuletzt editiert von
    #34

    Wollte mal ein kurzes Feedback geben. Erstmal grosses Lob für die tolle Arbeit!!!!!!!!!!!!

    Ich nutze "Ihn" seit einigen Tagen produktiv, ohne Fehler! Klappt alles wunderbar, hoffe aber dennoch das du nicht wieder eine neue Version raus bringst! :D ;) …Denn die Arrays umzuschreiben macht etwas Arbeit. :oops:

    Gibt es die Möglichkeit das man z.B. auch einen Tagesverbrauch oder ähnliches machen kann? ...Überwache meine Öltanks, und mache in einem ähnlichen Skript einen Tages, Wochen-verbrauch usw... würde das gerne alles in deinem Skript machen!

    Mfg blauholsten

    Entwickler vom: - Viessman Adapter
    - Alarm Adapter

    1 Antwort Letzte Antwort
    0
    • L Offline
      L Offline
      looxer01
      schrieb am zuletzt editiert von
      #35

      Hi blauholsten,

      Das freut mich, dass es jemand einsetzt :)

      die Time Funktion ist -glaube ich- recht stabil. Auch die Stomverbauchsmessung läuft.

      Für andere Funktionen musste ich doch noch tiefer in die Programmierkiste greifen.

      Die neue Version 0.65, die bald fertig ist:

      Die kann alles was Verbrauch und Silo braucht. Dafür musste ich aber noch die Tabelle "special" anpassen.

      Ansonsten sind keine weiteren Änderungen notwendig

      Ich teste die Version aber noch ein wenig bevor ich sie hochlade.

      Für Silorechnung kannst du dann folgendes machen:

      • Messung der Füllzeiten anhand der Laufzeiten der Düse vermute ich mal (irgendwoher muss ja die Grundlage kommen)

      • Umrechnung in Literverbrauch mit Kumulation und darstellung in perioden (DAY,WEEK,MONTH,YEAR) inklusiver Vorperioden für die Graphische Darstellung

      • Darstellung des Restbestandes im Tank/Silo. (Subtraktion des Verbrauches fom letzten Tankstand). Der Tank muss natürlich dann nach Füllung auf "voll" gesetzt werden

      • Umrechnung in Euroverbrauch mit Kumulation und darstellung in perioden inklusiver Vorperioden für die Graphische Darstellung

      • Darstellung des AN AUS Zustandes der Düsenlaufzeit auch in Werten wie z.B. 1 und zwei statt true und false (So lassen sich die Schaltzustände in FLOT darstellen (Dafür gibt es eine neue Methode "BOOL"

      Zusätzlich lassen sich alle Datenpunkte auch wieder automatisch loeschen (nicht nur nullen). Falls mal was umgebaut werden muss

      Ich selber habe eine Schnecke deren Schnittstelle dummerweise immer false meldet, wenn sie läuft. Dafür habe ich noch eine Reverse funktion eingebaut. Ist aber wohl special

      Ich hoffe, dass ist es was du brauchst.

      vG Looxer

      1 Antwort Letzte Antwort
      0
      • blauholstenB Offline
        blauholstenB Offline
        blauholsten
        Developer
        schrieb am zuletzt editiert von
        #36

        Hi,

        ja das könnte klappen.

        Kurz zum Hintergrund. :

        Ich habe Öltanks und dort ist eine Ultraschall Messung installiert. Ich liefere an iobroker dann einem wert in Liter. (Über S7 Adapter) , dieser Wert ist zwar relativ statisch aber nur vor dem Komma. Ich will nun das zu einer bestimmten Zeit (z.B. Tages Wechsel) der aktuelle Wert vom Vortag abgezogen wird. Kumulierte Werte dann auf Woche…. Usw...

        Ich hoffe du hast verstanden was ich will. Vom Handy lässt sich nicht so gut schreiben.

        Entwickler vom: - Viessman Adapter
        - Alarm Adapter

        1 Antwort Letzte Antwort
        0
        • L Offline
          L Offline
          looxer01
          schrieb am zuletzt editiert von
          #37

          Hi,

          das sollte ohnehin schon funktionieren. Das Prinzip ist ja wie beim Stromzähler.

          Ein Wert kommt rein und dieser ist der letzte Stand. Differenzbildung zum vorherigen Stand ist der Verbrauch.

          Der Unterschied ist, dass sich der letzte Stand beim Stromzähler immer erhöht während er sich bei dir immer verringert. (negative Verbrauchswerte)

          Ich habe das Feedback, dass der Stromzähler funktioniert, also wird es wohl auch bei dir schon jetzt gehen, und zwar mit der Methode DELTA.

          Die Differenz wird dabei immer gebildet, wenn der Zählerstand eingeht und in die Perioden (Tag,Woche,Monat,Jahr) eingetragen.

          Wäre super, wenn du das mal testen könntest.

          Mit der Version 0.65 kommt dann noch der Vorperiodenwert.

          Damit hast du nur einen update je Periode (Tag,Woche,Monat,Jahr), der sich erst bei Periodenwechsel ändert.

          vG Looxer

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            starfish
            schrieb am zuletzt editiert von
            #38

            Anwendungsbeispiel Stromverbrauch

            291_obj-verbrauch.png

            291_verbrauch.png

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              starfish
              schrieb am zuletzt editiert von
              #39

              Anwendungsbeispiel bool offset , Darstellung von mehreren Statussignalen übereinander

              291_mehrfachgraph.png
              291_objecttree.png

              genauere Anleitung hier: http://forum.iobroker.net/viewtopic.php … 933#p19780

              1 Antwort Letzte Antwort
              0
              • L Offline
                L Offline
                looxer01
                schrieb am zuletzt editiert von
                #40

                Hi,

                es gibt ein umfängliches update - Jetzt Version 0.70. (siehe erster Post)

                Da die Einstellungen doch recht komplex sind habe ich ich eine recht ausführliche Dokumentation hinzugefügt.

                Dafür sind die Beschreibungen im ersten Post gekürzt

                major changes:

                ….........Version 0.70 Die Datenpunkte werden jetzt nicht zurückgesetzt sondern geloescht, wenn das loeschkennzeichen gesetzt wird

                ............................bei der Berechnung der Methoden ist ein Divisor eingefügt worden um leichter von Millisekunden auf Verbrauchswerte zu rechnen, oder auch für alternative Darstellungen für Zeitwerte

                ............................DELTAM - Methode hinzugefügt um automatische Tankmessungen zu unterstützen (absteigende gemeldete Werte)

                ............................Zusammenführung der Methoden ADD und SUB in TIME. Das wird durch die Anwendung der Rechenregel auch für TIME gemacht. Damit kann bei negativen faktor SUB - also Bestandsrechnung umgesetzt werden

                ............................Auch kann jederzeit von Darstellung DDDD:HH:MM:SS auf Sekunden/Minuten/Stunden/Tage etc durch Umrechnung umgestellt werden

                ............................Durch Tabelle specials kann eingestellt werden, ob der BSZ für einen Datenpunkt auf ack = true oder false reagieren soll (false sitzt i.d.R. bei selbsdefinierten Datenpunkten)

                ............................Die Anzal der möglichen IDs ist auf 26 erhöht

                ............................Eine Fluktuationsgrenze für Delta und deltaM ist in Tabelle special eingefügt. Bei blank(also '') wird 100 angenommen. Damit können Schwankungen von Messgeraeten ausgeglichen werden (i.d.R sollte 100 ausreichend sein)

                ............................Zur Vermeidung von Eingabefehlern in den Tabellen sind Zahlen in hochkomma erlaubt aber auch Zahlen ohne hochkomma- bei der Angabe von status true/false ist ebenfalls beides möglich

                ............................Es besteht die Möglichkeit eine Individuallogik einzubauen. Beispiel ist hier "oekofen". Der gemessene Wert wird vor Anwendung der Rechenregel an die function individual(funktion,nummer,runtime) gegeben.

                ............................wobei funktion = Name der Individual-Funktion / nummer = nummer des Geraetes aus der ersten Tabelle / runtime = gemessener Wert und Rückgabewert (damit wird der gemessene Wert uebersteuert)

                ............................Tabelle special Nummer 10 eingefügt zur Vorbereitung einer gleitenden Durchschnittsberechnung

                ............................Es wurden Reserveplätze für tabelle specials eingefügt (10 und 11).

                ............................Logging fuer die Aenderung von Datenpunkten wurde erneuert

                vG Looxer

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  looxer01
                  schrieb am zuletzt editiert von
                  #41

                  Hi,

                  die funktionale Entwicklung ist jetzt so gut wie beendet. Also, mir fällt nicht mehr so viel ein: :D

                  Die Version 0.90 ist jetzt hochgeladen (erster Post) und hat folgende Erweiterungen:

                  • Durchschnittsfunktion um z.B. Durchschnittliche Temperaturen (z.B. Aussentemperatur) oder durchschnittliche Einschaltzeiten zu loggen

                  Die Funktion kann für alle Methoden (TIME, DELTA und CALC) verwendet werden.

                  • Schedulefunktion als Alternative zu den Triggern. Um z.B. eine Mittagstemperatur zu loggen und nicht 24 Stunden jede Temperatur oder auch um z.B.

                  nicht immer alle Messwerte eines Sensors zu verarbeiten sondern ggf nur stündlich etc. Das macht natürlich keinen Sinn bei Methode TIME

                  • Es wurden wesentlich mehr Absicherungen eingebaut, um Fehleingaben zu vermeiden. (Plausibilitätsprüfungen, Defaultwerte etc)

                  • Die Dokumentation enthält jetzt auch eine Programmablaufbeschreibung mit Referenzpunkten zum Programm.

                  Aufgrund der Veränderungen habe ich mich entschieden die History auf Level der Perioden zu verschieben. Und auch die Perioden umzubenennen, um eine sinnvolle Reihenfolge zu zeigen. Wie damit umgegangen werden kann steht im ersten Post.

                  vG Looxer

                  1 Antwort Letzte Antwort
                  0
                  • ThisoftT Offline
                    ThisoftT Offline
                    Thisoft
                    schrieb am zuletzt editiert von
                    #42

                    Hallo Looxer,

                    zuerst einmal ein großes Kompliment für das Script. Ich habe jetzt gerade die ersten Implementierungen vorgenommen. Mal sehen was so rauskommt, ob ich alles richtig verstanden habe ;)

                    Allerdings vermisse ich noch etwas - ich hätte gerne für eine Temperatur die Max und Min Werte über die jeweiligen Zeiträume mit ausgewertet. Habe ich die Funktion nur nicht gefunden oder hast Du das wirklich noch nicht eingebaut :?: ;)

                    22 HM-Geräte; PivCCU2 auf RasPi

                    ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                    1 Antwort Letzte Antwort
                    0
                    • L Offline
                      L Offline
                      looxer01
                      schrieb am zuletzt editiert von
                      #43

                      Hallo Thisoft, das ist tatsächlich noch nicht eingebaut, allerdings schon zu 60 % entwickelt, dann beende ich das mal über das WE und stelle eine neue Version ein :)

                      VG looxer

                      Gesendet von meinem S600 mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • ThisoftT Offline
                        ThisoftT Offline
                        Thisoft
                        schrieb am zuletzt editiert von
                        #44

                        Hallo Looxer,

                        das ist super dass Du das schon mit geplant hast. Ich will dir damit aber keinesfalls das schöne lange Wochenende verderben! Es drängelt nicht so sehr. Mach das wenn du mal Zeit hast.

                        Vielen Dank und einen schönen Männertag.

                        22 HM-Geräte; PivCCU2 auf RasPi

                        ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                        1 Antwort Letzte Antwort
                        0
                        • L Offline
                          L Offline
                          looxer01
                          schrieb am zuletzt editiert von
                          #45

                          Hi,

                          es gibt eine neue Version (jetzt 0.95) mit drei neuen Funktionen

                          • Minimum und Maximum Werte könnten geloggt werden (z.B. Temperaturen ) Das kann eingestellt werden für alle Methoden

                          • Sonderfunktion Mehrfachstatus (wird wohl die Ausnahme sein) Falls es gewünscht ist auch ohne effektive Statusänderung zu loggen (siehe Doku)

                          • Selektives Logging = Erzeugen von Excel Dateien für einzelne Datenpunkte , (z.B. um die Daten in Excel weiter zu verarbeiten.

                          vG Looxer

                          1 Antwort Letzte Antwort
                          0
                          • L Offline
                            L Offline
                            looxer01
                            schrieb am zuletzt editiert von
                            #46

                            Ich habe gerade -danke an Thisoft- festgestellt, dass die Version 0.95 nicht korrekt hochgeladen war.

                            Daher steht jetzt Version 0.96b bereit.

                            vG Looxer

                            1 Antwort Letzte Antwort
                            0
                            • L Offline
                              L Offline
                              looxer01
                              schrieb am zuletzt editiert von
                              #47

                              leider gab es im Skript noch einen Fehler.

                              Beim Wochenwechsel wurde ein Parameter für das Logging falsch übergeben und damit brach das Skript ab.

                              Das ist jetzt mit Version 0.96 behoben

                              vG Looxer

                              1 Antwort Letzte Antwort
                              0
                              • HomoranH Offline
                                HomoranH Offline
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #48

                                Habe das jetzt auch endlich geschafft auf die website zu laden.

                                Dabei habe ich mir erlaubt in der ersten Zeile die Versionsnummer von 0.95 auf 0.96 zu ändern ;-)

                                Gruß

                                Rainer

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                1 Antwort Letzte Antwort
                                0
                                • L Offline
                                  L Offline
                                  looxer01
                                  schrieb am zuletzt editiert von
                                  #49

                                  Danke Rainer,

                                  ich habe es jetzt auch im ersten Post angepasst. :)

                                  vG

                                  1 Antwort Letzte Antwort
                                  0
                                  • L Offline
                                    L Offline
                                    looxer01
                                    schrieb am zuletzt editiert von
                                    #50

                                    Hi,

                                    es gibt ein update auf Version 0.97. (erster Post)

                                    Nur das Coding muss ausgetauscht werden. Im Einstellungsbereich hat sich nichts geändert

                                    Die Änderung beseitigt einen Fehler, der beim Schreiben von Änderungen in eine CSV-Datei (externes Logging) von einzelnen IDs auftrat.

                                    Es wurde immer in die Datei "BSZExtLog_1.csv" geschrieben. Auch, wenn das Logging für z.B. Zeile 15 eingestellt war und

                                    damit eigentlich in "BSZExtLog_15.csv" geschrieben werden sollte.

                                    vG Looxer

                                    1 Antwort Letzte Antwort
                                    0
                                    • E Offline
                                      E Offline
                                      eastcoast
                                      schrieb am zuletzt editiert von
                                      #51

                                      Hallo Looxer,

                                      erst Mal vielen Dank für Dein Skript!

                                      Ich verwende es zur Messung der Einschaltzeit von HM Aktoren.

                                      Eine Sache würde ich mir jedoch noch wünschen:

                                      Das Format DDD:HH:MM:SS bei TIME ist für manche Anwendungen unübersichtlich,

                                      z.B. für DAY würde HH:MM:SS reichen, meistens würde ich ein HHH:MM bevorzugen.

                                      Perfekt wäre natürlich, wenn man das Ausgabeformat für DAY, WEEK, MONTH, YEAR konfigurieren könnte! ;)

                                      1 Antwort Letzte Antwort
                                      0
                                      • E Offline
                                        E Offline
                                        eastcoast
                                        schrieb am zuletzt editiert von
                                        #52

                                        Hallo,

                                        habe noch ein kleines Problem mit dem Skript:

                                        Beim Tageswechsel (vermutlich auch Woche, Monat und Jahr) werden die Werte nicht auf 0 zurückgesetzt.

                                        Ich verwende noch eine sehr einfache Konfiguration:

                                        ! var Gruppen = []; // 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] = ['hm-rpc.0.MEQ0001234.1.STATE' ,'heating' ,false ,true ,true ,true ,true ,true ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,false ,false]; // Gruppen[ 1] = ['hm-rpc.0.MEQ0005678.1.STATE' ,'heating' ,false ,true ,true ,true ,true ,true ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,false ,false]; // ... ! var logname = []; // Stat1 Stat2 Stat3 Stat4 Stat5 Stat6 Stat7 Stat8 Stat9 Stat10 logname[0] = ['E-Heizung 1' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'']; logname[1] = ['E-Heizung 2' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'']; ... ! 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] = ['' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' , '' ]; special[1] = ['' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ]; ... ! var TimeSetStunde = "00"; // Bitte Uhrzeit - hier Stunde eingeben im 24 Stunden Format z.B. 00 für Mitternacht var TimeSetMinute = "04"; // Bitte Minuten eingeben z.B. 10 - = 00:10 für Null Uhr Zehn var logflag = false; // wenn auf true dann wird das logging in Datei /opt/iobroker/iobroker-data/BSZLog.csv eingeschaltet bei false vice versa var Timelogflag = false; // wenn auf true dann wird das logging in Datei /opt/iobroker/iobroker-data/BSZTimeLog.csv eingeschaltet bei false vice versa ... !
                                        …habe ich irgendein Setting übersehen?

                                        Danke!

                                        1 Antwort Letzte Antwort
                                        0
                                        • L Offline
                                          L Offline
                                          looxer01
                                          schrieb am zuletzt editiert von
                                          #53

                                          @eastcoast:

                                          .habe ich irgendein Setting übersehen?

                                          Danke! `

                                          Hi,

                                          sorry, bin gerade erst zurück von einer Geschäftsreise.

                                          Also, sieht eigentlich ok aus. Zum Testen kannst du das auch auf irgendeine Zeit setzen. Z.B. in 5 Minuten.

                                          Ich habe meinen Wechsel auf 00:59 stehen.

                                          Falls das nicht klappt, dann schicke mir bitte deine Konfig über eine PN. Lässt sich besser lesen.

                                          lG Looxer

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          310

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe