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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    127

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

[Vorlage] Betriebsstundenzähler & Verbrauchsrechner

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
333 Beiträge 51 Kommentatoren 93.2k 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.
  • 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 Nicht stören
              HomoranH Nicht stören
              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
                        • L Offline
                          L Offline
                          looxer01
                          schrieb am zuletzt editiert von
                          #54

                          @eastcoast:

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

                          Hallo eascost

                          noch eine Frage: schau dir bitte mal das log an. Um 00:04 sollte ein LogEintrag vorhanden sein:

                          "EVENT Betriebsstundenzaehler werden zurueckgesetzt TAG: …....."

                          Wenn der nicht da ist, dann wurde die schedule funktion nicht aufgerufen. Das könnte mehrere Ursachen haben:

                          • läuft noch was um diese Zeit im System ?

                          • systemseitig irgend ein Problem mit schedule ?

                          Falls das log ausgeführt wurde und trotzdem nicht zurückgesetzt wurde, dann brauche ich mal dein Programm.

                          Damit würde ich das bei mir debuggen.

                          vG Looxer

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

                            @looxer01:

                            @eastcoast:

                            Beim Tageswechsel (vermutlich auch Woche, Monat und Jahr) werden die Werte nicht auf 0 zurückgesetzt. `
                            noch eine Frage: schau dir bitte mal das log an. Um 00:04 sollte ein LogEintrag vorhanden sein:

                            "EVENT Betriebsstundenzaehler werden zurueckgesetzt TAG: …....." `
                            Hallo Looxer,

                            erstmal vielen Dank für deine rasche Unterstützung!

                            Leider kam ich erst jetzt dazu, mir das anzusehen:

                            ! Schedule scheint zu passen:

                            javascript.0 script.js.test: EVENT Betriebsstundenzaehler werden zurueckgesetzt TAG:09 Wochentag 0Monat 10
                            >! ````
                            Habe das ganze mittels log Ausgaben bis in
                            

                            function TimeNull(...)

                            ! ````
                            weiterverfolgt, hier scheint dann die Nullung bei folgender Abfrage zu scheitern:

                            //  zurücksetzen der  DAY  variablen
                            ...
                            if (ObjectExists(updateobj))  {
                            ...
                            >! ````
                            Die Objekte scheinen aber korrekt zu exisitieren:
                             ![1408_clipboard01.jpg](/assets/uploads/files/1408_clipboard01.jpg) 
                            1 Antwort Letzte Antwort
                            0
                            • E Offline
                              E Offline
                              eastcoast
                              schrieb am zuletzt editiert von
                              #56

                              @eastcoast:

                              @looxer01:

                              @eastcoast:

                              Beim Tageswechsel (vermutlich auch Woche, Monat und Jahr) werden die Werte nicht auf 0 zurückgesetzt. `
                              noch eine Frage: schau dir bitte mal das log an. Um 00:04 sollte ein LogEintrag vorhanden sein:

                              "EVENT Betriebsstundenzaehler werden zurueckgesetzt TAG: …....." `
                              Hallo Looxer,

                              erstmal vielen Dank für deine rasche Unterstützung!

                              Leider kam ich erst jetzt dazu, mir das anzusehen:

                              ! Schedule scheint zu passen:

                              javascript.0 script.js.test: EVENT Betriebsstundenzaehler werden zurueckgesetzt TAG:09 Wochentag 0Monat 10
                              >! ````
                              Habe das ganze mittels log Ausgaben bis in
                              

                              function TimeNull(...)

                              ! ````
                              weiterverfolgt, hier scheint dann die Nullung bei folgender Abfrage zu scheitern:

                              //  zurücksetzen der  DAY  variablen
                              ...
                              if (ObjectExists(updateobj))  {
                              ...
                              >! ````
                              Die Objekte scheinen aber korrekt zu exisitieren:
                              >! Clipboard01.jpg `  
                              

                              Habe gerade meinen Fehler gefunden:

                              Meine Feldnamen in "var logname" enthielten ein Leerzeichen! :oops:

                              Sorry dass ich Dich belästigt habe.

                              Nochmals vielen Dank für Dein Skript und Deine Hilfe!

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

                                @eastcoast:

                                Meine Feldnamen in "var logname" enthielten ein Leerzeichen! :oops: `

                                super - sehr gut. Hätte ich wahrscheinlich erst beim Debugging gesehen.

                                Eigentlich habe ich versucht die meisten Fehler abzufangen entweder durch Korrektur oder durch Hinweise im Log. -

                                bei einem Skript ist es eben was anderes als in der Dialog Programmierung.

                                bezüglich deiner Format habe ich mir Gedanken gemacht.

                                Ich speichere die ermittelten Werte für TIME immer in ms ab. Somit liesse sich jederzeit eine Umrechnung vornehmen und auch eine Aenderung der Umrechnung.

                                Ich könnte mir vorstellen eine flexible Lösung zu machen mit allen Konstellation von links nach rechts, also

                                DDD:HH:MM:SS:MS beispielsweise auch für DDD oder MM oder MS oder HH:MM etc

                                Ich schaue mir das am nächsten WE an.

                                lG Looxer

                                1 Antwort Letzte Antwort
                                0
                                • R Offline
                                  R Offline
                                  ralalla
                                  schrieb am zuletzt editiert von
                                  #58

                                  Noch mal bitte eine kurze Info zu State und Level.

                                  Ich will z.B. aus einem Wert 0-100% Betriebsstunden erzeugen.

                                  Ab 1% soll die Zeit laufen.

                                  Im ioBroker wird der Wert unter "Typ" mit state dargestellt und unter "Rolle" auch.

                                  Der Wert selbst als 0-100%.

                                  Kann ich den Wert in dem Zustand verarbeiten ?

                                  Also würde meine Geräte ID so aussehen: hm-rega.0.6822.7155.state

                                  ioBroker auf Intel NUC mit Proxmox / PiVCCU auf Pi3

                                  1 Antwort Letzte Antwort
                                  -1
                                  • L Offline
                                    L Offline
                                    looxer01
                                    schrieb am zuletzt editiert von
                                    #59

                                    Hallo Ralalla,

                                    Deine GeräteID deutet nicht auf ein Level Gerät hin.

                                    Ein State Gerät hat vordefinierte zustände wie z.B. "aus" oder "ein".

                                    Ein Level Gerät zeigt den Zustand in Prozent an, wobei 1% z.B. 1% geöffnet oder eingeschaltet heisst. (Beispiel Rolllade oder Dimmer")

                                    Ein Level-Gerät wird im Programm als solches erkannt wenn in der ID ein "LEVEL" enthalten ist. Das ist bei deiner ID nicht der Fall.

                                    Um was für ein Gerät handelt es sich denn ?

                                    vG Looxer

                                    1 Antwort Letzte Antwort
                                    0
                                    • R Offline
                                      R Offline
                                      ralalla
                                      schrieb am zuletzt editiert von
                                      #60

                                      Das sind z. B. Werte meiner Heizung. Die lese ich aus dem Ebus aus über cuxd

                                      Gesendet von iPhone mit Tapatalk

                                      ioBroker auf Intel NUC mit Proxmox / PiVCCU auf Pi3

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

                                        @ralalla:

                                        Das sind z. B. Werte meiner Heizung. Die lese ich aus dem Ebus aus über cuxd `

                                        aaah, sorry. Das sollte ich gesehen haben, da es ja REGA werte sind.

                                        Es gibt zwar die States 9-18, die man loggen kann aber das hilft dir nicht da ich verstehe, dass es ja beliebige Zahlen zwischen 1 bis 100 betreffen kann.

                                        Es gibt zwei Möglichkeiten.

                                        1 Programm Anpassung für deinen Fall um den Level Fall anzuwenden für diese ID

                                        2 Du schreibst ein Mini-Programm und setzt ein Flagg auf "true", wenn der Wert groesser 0 ist und auf "false", wenn der Wert = 0 ist.

                                        Dann kann der BSZ die Zeiten exakt messen. Nr. 2 ist wenig Aufwendig und wäre somit der bessere Weg.

                                        vG Looxer

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          syber
                                          schrieb am zuletzt editiert von
                                          #62

                                          Hallo looxer,

                                          Viele Dank für Dein Script ich nutze es zur Laufzeitmessung, Zählen Schaltvorgänge und zur Energiemessung(Strom,Gas, Wasser).

                                          Es funktioniert Supi, nun zu meiner Frage ..gibt es die Möglichkeit alte Zählerstände einzutragen und wenn ja wo.

                                          Am besten wäre so eine Funktion wie bei deinem Stromzähler mit HT und NT

                                          Grüße Steffen

                                          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

                                          500

                                          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