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
    11
    1
    326

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

[Vorlage] Betriebsstundenzähler & Verbrauchsrechner

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
333 Beiträge 51 Kommentatoren 93.4k 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
    #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
                    • L Offline
                      L Offline
                      looxer01
                      schrieb am zuletzt editiert von
                      #63

                      @syber:

                      .gibt es die Möglichkeit alte Zählerstände einzutragen und wenn ja wo. `

                      im Prinzip ja. Ich mache das auch so bei meiner Pelletverbrauchsrechnung (time)

                      Dazu nutze ich das Widget JQUI Input.

                      Gib mir doch mal deine Konfig und sage mir wo du Korrekturen machen möchtest. Dann schaue ich mir das an

                      vG Looxer

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

                        Hallo,

                        es geht um Gruppe 24 und 25

                        edit aber mache es bitte nicht so schwer …ich hab 0 Ahnung vom Script ;)
                        842_bsz.txt

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

                          Hi,

                          vielen Dank für die Konfig.

                          Wenn ich das richtig sehe, dann hast du fuer Strom einen EnergyCounter. (bei Gas wirds ja aehnlich funktionieren)

                          Dieser liefert regelmaessig (z.B. alle 30 sekunden) einen Wert vom Counter.

                          Die Konfig ist auf Delta eingestellt. Damit wird die Differenz jeweils vom letzten Zaehlerstand gezogen.

                          So weisst du den Verbrauch. Der Verbrauch wird in DAY WEEK Month YEAR gespeichert.

                          Den Zaehlerstand kannst du nicht direkt beeinflussen, denn der kommt ja immer vom energy-counter.

                          Den Verbrauch kannst du jederzeit manuell korrigieren, da ja immer die Differenz auf DAY WEEK MONTH YEAR aufgeschlagen wird.

                          Es gibt mehrere Möglichkeiten auf den Zaehlerstand einfluss zu nehmen,

                          1. durch Umrechnen.

                          In der Tabelle special kannst du einen Wert addieren oder subtrahieren, was einer Korrektur gleichkommt.

                          2. durch individuallogik (indivduelle Erweiterung innerhalb des scriptes)

                          das ist schon etwas aufwendiger und muesste programmiert werden

                          Wie oft kommen denn solche Korrekturen vor ?

                          vG Looxer

                          1 Antwort Letzte Antwort
                          0
                          • E Offline
                            E Offline
                            ein-bayer
                            schrieb am zuletzt editiert von
                            #66

                            Hallo,

                            das ist ja ein super script !! Hab es relativ schnell hinbekommen.

                            Ich benutze es zur kwh erfassung meiner Zähler. Ich habe jetzt testweise 2 Zähler angelegt und wollte die Anzeige in KWH haben. Der Eintrag in Tabelle special wirkt sich nicht auf das Ergebnis der Objekte aus, hier bekomme ich zb 625.121. Der Wert entspricht der Beobachtung nach der gemessenen Leistung in Watt

                            Hab ich etwas falsch eingestellt?
                            1342_bildschirmfoto_2017-01-22_um_19.16.26.png
                            1342_bildschirmfoto_2017-01-22_um_19.17.27.png

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

                              @ein-bayer:

                              er Eintrag in Tabelle special wirkt sich nicht auf das Ergebnis der Objekte aus, `

                              Hi,

                              die 0.001 ist richtig als Faktor. Du hast allerdings eine Addition (Spalte 2) hinzugefügt.

                              Eine Spalte weiter und es sollte gehen.

                              vG Looxer

                              1 Antwort Letzte Antwort
                              0
                              • E Offline
                                E Offline
                                ein-bayer
                                schrieb am zuletzt editiert von
                                #68

                                Danke für die schnelle Antwort, wenn man die Anleitung genau lesen würede ….. :-)

                                jetzt passts

                                1 Antwort Letzte Antwort
                                0
                                • 0 Offline
                                  0 Offline
                                  0018
                                  schrieb am zuletzt editiert von
                                  #69

                                  Hallo zusammen,

                                  super Sache mit dem Script, funktioniert perfekt!

                                  Was muss ich machen wenn ich ein Geräte aus dem Script wieder rausnehmen will? Und wie sieht es mit eine Anpassung im Status der Gruppen aus (zb von delta auf calc)

                                  Reicht nur Script anpassen oder muss ich auch den zugehörigen Ordner den Objekten löschen oder passiert das automatisch?

                                  Mfg

                                  Mfg
                                  0018

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

                                    @0018:

                                    Was muss ich machen wenn ich ein Geräte aus dem Script wieder rausnehmen will? Und wie sieht es mit eine Anpassung im Status der Gruppen aus (zb von delta auf calc)

                                    Reicht nur Script anpassen oder muss ich auch den zugehörigen Ordner den Objekten löschen oder passiert das automatisch? `

                                    Hi,

                                    ich bin zur Zeit unterwegs und kann keine Screenshots posten.

                                    Es gibt dazu zwei Einstellungen und die letzten beiden Spalten der ersten Tabelle.

                                    Die vorletzte Spalte stoppt alle Speichervorgänge für diese Zeile.

                                    Die letzte Spalte löscht zusätzlich die zugehoerigen Objekte.

                                    Vorgehensweise ist also

                                    1. Die lezten beiden Spalten der zu ändernden oder löschenden Zeile auf true true setzen und script speichern

                                    2. Dann die ànderungen durchführen

                                    3. Die letzten beiden Spalten der ersten Tabelle auf false false setzen und speichern.

                                    vG Looxer

                                    1 Antwort Letzte Antwort
                                    0
                                    • 0 Offline
                                      0 Offline
                                      0018
                                      schrieb am zuletzt editiert von
                                      #71

                                      Danke, durch erneutes lesen wird es mir auch klar :)

                                      Position 19 = stop Refresh = true  Es werden kene  Daten mehr aktualsieirt. Solange Refresh auf true steht werden keine neuen Daten aufgezeichnet - standard ist also false
                                      Position 20 = Loesch Datenpunkte = True   Es werden alle Daten geloescht - standard ist also false - damit geloescht wird muss auch stop refresh auf true stehen
                                      
                                      

                                      Danke.

                                      Mfg
                                      0018

                                      1 Antwort Letzte Antwort
                                      0
                                      • E Offline
                                        E Offline
                                        ein-bayer
                                        schrieb am zuletzt editiert von
                                        #72

                                        Jetzt hab ich das script am laufen und bin super zufrieden.

                                        Eine Frage stellt sich mir jedoch noch, wenn ich jetzt 8 Stromzähler habe, wie bekomme ich da eine summe heraus , zb die summe des Tagesverbrauchs oder Monat , Jahr…..

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

                                          Hi .

                                          Das geht, braucht aber einige wenige Zeilen code. Das mache ich gerne,komme aber erst Freitag dazu

                                          Wenn Du mir die 8 datenpunkte schickst kann ich das schon voreinstellen

                                          Vg looxer

                                          Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                                          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

                                          519

                                          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