Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Betriebsstundenzähler & Verbrauchsrechner

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User @looxer01 last edited by

      @looxer01 sagte in [Vorlage] Generischer Betriebsstundenzähler und Verbrauchsrechner - Script:

      @sigi234
      ja genau - jedenfalls das letzte veröffentlichte.

      erst mal danke für die Entwicklung deines Scripts 👏 , nutze es auch schon sehr lange.
      Aktualisierst du die Version weiter, bzw. lässt du uns an deinen letzten Änderungen teilhaben??

      Eigentlich funktioniert (noch) alles, deswegen nur mal so aus Neugier. 😉

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

        @telekom0815
        Hi,
        Dann scheint das Script ja hier und da noch im Einsatz zu sein.

        Also, was ich gemacht habe ist, die 25 Zeilen Begrenzung aufzuheben.
        Es geht also eine Kürzung auf die erforderliche Anzahl von Zeilen der 3 Tabellen.
        Genauso lassen sich mehr als 25 Zeilen einstellen.

        Ich schau mir das mal an und beseitige den Fehler bezüglicher der schedules (kam mit dem letzten JS update)
        und veröffentliche dann eine aktualisierte Version.
        Kann aber noch 1-2 Wochen dauern.

        Liebe Grüße
        Looxer

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

          @looxer01
          geil, ich freu mich drauf... ich nutze Dein Script auch schon eine halbe Ewigkeit!

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

            @knopers1
            Script Version 1.02. ist hochgeladen.

            sigi234 ? 2 Replies Last reply Reply Quote 0
            • sigi234
              sigi234 Forum Testing Most Active @looxer01 last edited by

              @looxer01 sagte in [Vorlage] Betriebsstundenzähler & Verbrauchsrechner:

              @knopers1
              Script Version 1.02. ist hochgeladen.

              Kannst du das anpassen , verwirrt mich immer.

              /*..........Betriebsstundenzaehler BSZ Extended Version 0.99
              ............Datum: 04.02.2016
              ............Autor: Looxer01
              ............Forum ioBroker
              
              L 1 Reply Last reply Reply Quote 0
              • L
                looxer01 @sigi234 last edited by

                @sigi234
                erledigt

                1 Reply Last reply Reply Quote 1
                • K
                  Kampfratte last edited by

                  Habe das Update gerade eingepflegt. Bis jetzt keine Auffälligkeiten festgestellt.

                  Hätte aber mal eine Frage an @looxer01
                  Das Script zählt ja, wenn ein Gerät an ist, auch über Nacht. Also wenn ein Gerät um 22 Uhr abends eingeschalten wird und morgens dann um 4 Uhr wieder aus. Da schreibt das Script dann für heute 6 Std. Laufzeit rein. Ich hätte es aber lieber, wenn das Script in so einem Falle dann 2 Std. gestern und 4 Std. heute notiert. Also, dass das Script nachts um 0 Uhr die Geräte, die an sind, die Laufzeit des gestrigen Tages bis 0 Uhr auch nach gestern schreibt und dann um 0 Uhr neu anfängt zu zählen. Habe mich daran schon selbst versucht, bin aber bisher kläglich gescheitert.

                  Lg Uwe

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

                    @Kampfratte sagte in [Vorlage] Betriebsstundenzähler & Verbrauchsrechner:

                    Das Script zählt ja, wenn ein Gerät an ist, auch über Nacht. Also wenn ein Gerät um 22 Uhr abends eingeschalten wird und morgens dann um 4 Uhr wieder aus. Da schreibt das Script dann für heute 6 Std. Laufzeit rein.

                    Da hast du recht so ist es programmiert. Ich hatte nie darüber nachgedacht, dass das störend sein könnte.
                    Ein Einbau wäre aufwändig aber möglich. Dazu müßte beim Tageswechsel ermittelt werden welche Zählungen aktuell laufen. Laufende Zählungen müssen dann im Tag/woche/Jahr abgespeichert werden und der Stand für den neuen Tag weiterlaufen.
                    Allerdings schaffe ich das zeitlich einfach nicht 😞

                    lG Looxer

                    K 1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @looxer01 last edited by

                      @looxer01 sagte in [Vorlage] Betriebsstundenzähler & Verbrauchsrechner:

                      @knopers1
                      Script Version 1.02. ist hochgeladen.

                      Hallo,
                      muss ich eigentlich alles neu eingeben, oder reicht es, wenn ich ab Zeile xxx alles aktualisiere. Wenn dem so sein sollte, ab welcher Zeile muss ich es erneuern.

                      Danke

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

                        @telekom0815 sagte in [Vorlage] Betriebsstundenzähler & Verbrauchsrechner:

                        muss ich eigentlich alles neu eingeben, oder reicht es, wenn ich ab Zeile xxx alles aktualisiere. Wenn dem so sein sollte, ab welcher Zeile muss ich es erneuern.

                        Ich gehe davon aus, dass du Version >= 0.99 nutzt.
                        Dann sollte es reichen wenn du den Coding Teil ersetzt.
                        Die Zeilennummer kann ich dir nicht genau sagen aber der Orientierungspunkt ist diese Stelle

                        /* Ende Experten-Einstellungen .......................................................................................................
                        --------------------------------------------------------------------------------------------------------------------------------------*/

                        Darüberhinaus kanns du die Anzahl der Tabellenzeilen auf die notwendigen Zeilen begrenzen.
                        Alle 3 Tabellen müssen aber die gleichen Anzahl von Zeilen haben.
                        Tabelle Gruppen, logname und specials müssen also die gleiche Zeilenanzahl haben.

                        vG Looxer

                        1 Reply Last reply Reply Quote 0
                        • K
                          Kampfratte @looxer01 last edited by

                          @looxer01 sagte in [Vorlage] Betriebsstundenzähler & Verbrauchsrechner:

                          @Kampfratte sagte in [Vorlage] Betriebsstundenzähler & Verbrauchsrechner:

                          Das Script zählt ja, wenn ein Gerät an ist, auch über Nacht. Also wenn ein Gerät um 22 Uhr abends eingeschalten wird und morgens dann um 4 Uhr wieder aus. Da schreibt das Script dann für heute 6 Std. Laufzeit rein.

                          Da hast du recht so ist es programmiert. Ich hatte nie darüber nachgedacht, dass das störend sein könnte.
                          Ein Einbau wäre aufwändig aber möglich. Dazu müßte beim Tageswechsel ermittelt werden welche Zählungen aktuell laufen. Laufende Zählungen müssen dann im Tag/woche/Jahr abgespeichert werden und der Stand für den neuen Tag weiterlaufen.
                          Allerdings schaffe ich das zeitlich einfach nicht 😞

                          lG Looxer

                          Nabend Looser,

                          habe es nun geschafft, das Script ein wenig um zu bauen, so dass die Schaltzeiten Nachts um 0 Uhr auf 0 zurück gesetzt werden indem ich eine neue Funktion geschrieben habe und diese Function dann gleich zu beginn deiner Funktion PeriodChange aufrufen lasse. Es wird also überprüft, welcher Status des Gerätes auf "true" ist, also an ist, dann wird die Laufzeit incl. der bereits gespeicherten Zeit in Tag, Woche, Monat und Jahr geschrieben. Erst danach wird der aktuelle Tag dann genullt und ins BEVORE geschrieben. Wie dann auch bei Monat am 01. oder Jahr beim Jahreswechsel und die Woche am Montag.

                          Lg Uwe

                          ? 1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @Kampfratte last edited by

                            @Kampfratte Hi, bist du so nett, und stellst das Script hier rein? Genau diese Änderung von dir macht es interessant.. 🙂

                            etv 1 Reply Last reply Reply Quote 0
                            • etv
                              etv @Guest last edited by

                              Servus @looxer01,

                              ich hab dein Script nun schon viele Jahre am Laufen und gleich mal danke für das tolle Programm!!

                              Drei Fragen hab ich an dich....

                              1. Problem bei sich auf Null stellenden Zählern
                                Ich verwende ein paar Shelly Plugs die den Verbrauch loggen und hab die in dein Programm eingebunden. Die werden aber ab und an abgesteckt und wieder angesteckt und resetten somit ihren Verbrauchszähler und fangen wieder bei Null an.
                                Wie kann ich das im Programm "abfangen" dass hier nun ein negativer Verbrauch angezeigt wird, also wie sag ich dem Programm, dass er einfach "weiterzählen" soll?

                              2. Mitternachtswechsel day/before, week/before
                                Mir kommt gelegentlich der eine oder andere Wert unter, der zwar auf "before" geschoben wird, aber nicht auf Null gestellt wird.
                                Ich beobachte das z.B. bei meinem Kühlschrank der dann am Vortag 700 Wh verbraucht hat, nun um 8:00 Uhr aber schon 920 Wh....also eindeutig der Wert von gestern + etwa ein Drittel des normalen Tagesverbrauchs.

                              Wo kann ich da zu suchen beginnen um den Fehler zu finden? In welchem Teil des Programms kann ich mir Log-Einträge erzeugen lassen um das zu untersuchen?

                              1. Durchschnitt
                                Im Programm steht unter den Kommentaren bei dieser Position (9), dass dies noch nicht integriert ist. Ist das schon in Planung oder Arbeit, oder dauert das noch ein Zeitchen?
                                Ist eine reine Infofrage - also kein Stress!!

                              Liebe Grüße
                              tom

                              L K 2 Replies Last reply Reply Quote 0
                              • L
                                looxer01 @etv last edited by

                                Hi,
                                @etv

                                ist ja in der Tat schon ein altes Programm aber es läuft auch bei mir so vor sich hin.
                                zu deinen Fragen

                                1. In der Routine ValKum2 werden die Werte errechnet und in den counter geschrieben.
                                  Allerdings ist es eine zentrale routine und wird fuer alle Methoden verwendet ( in deinem Fall ist es die Methode Delta)
                                  Es müsste vermutlich eine Sonderbehandlung bei Null wert eingefügt werden

                                2. der Periodenwechsel wird in Routine TimeNull durchgeführt aufgerufen von PeriodChange.
                                  Parameter dürften bei dir für den Kühlchrank Delta und DAY sein
                                  also hier

                                       //  zurücksetzen der  DAY  variablen
                                        if (type !== "SWITCH" && type !== "AVERAGE" && type !== "MINMAX" && periode === "day" && Gruppen[zaehler][3] === true) {              //  taegliche Summmierung aktiv ?
                                 
                                
                                1. Average habe ich implementiert aber vermutlich die Doku an der Stelle nicht angepasst
                                  Versuche es mal. Dann werden neue Datenpunkte für den Feldnamen angelegt.

                                Lass mich wissen falls du einen Fehler für den Fall2 findest.

                                Ich hoffe, dass es hilft

                                vG Looxer

                                etv 2 Replies Last reply Reply Quote 1
                                • etv
                                  etv @looxer01 last edited by

                                  @looxer01 perfekt, danke dir für die rasche Antwort!

                                  Ich werd' mal die einfach Übung starten und meine Durchschnittswerte für die Temperatur anlegen und dann durch den Punkt zwei "graben" 😆

                                  Liebe Grüße
                                  tom

                                  1 Reply Last reply Reply Quote 0
                                  • etv
                                    etv @looxer01 last edited by

                                    Servus @looxer01 ,

                                    ich hab dein Programm mit diversen weiteren Log Ausgaben erweitert und bin so draufgekommen, warum bei mir so mancher Zähler nicht auf Null gestellt wird!

                                    Es ist mir bei diversen Aktoren immer wieder vorgekommen, dass am nächsten Tag weitergezählt wird und die Nullung nicht erfolgreich ist. Bei weiteren Recherchen bin ich draufgekommen, dass es nur Shelly Aktoren betrifft und es immer Aktoren sind, von Geräten, die eben zu Mitternacht auf jeden Fall EIN sind.

                                    Das Problem war, dass immer wieder die Nullung und der Update des Aktors zusammen gefallen sind und so der Update die Nullung "überschrieben" hat!

                                    Lange Rede kurzer Sinn - ein Ändern der Schedule der Nullung im Sekundenbereich (in meinem Fall 7 Sekunden nach der vollen Minute) hat das Problem "erschlagen"!

                                    Also zur Info - wenn jemand das selbe Problem hat - einfach in der Zeile mit
                                    var cronjob =
                                    und dahinter
                                    TimeSetMinute + " " + TimeSetStunde +" * * *"; // Cron Schedule setzen

                                    die Sekunden einfügen - bei mir sieht die Zeile nun so aus:

                                    var cronjob = "7 " + TimeSetMinute + " " + TimeSetStunde +" * * *";  // Cron Schedule setzen
                                    

                                    ...ist bei mir auf Zeile 200 - das ist aber natürlich bei jedem anders, weil ja davor die Anzahl der zu überwachenden Aktoren bei jedem verschieden ist.

                                    Liebe Grüße
                                    Tom

                                    1 Reply Last reply Reply Quote 2
                                    • K
                                      knopers1 @etv last edited by

                                      @etv said in [Vorlage] Betriebsstundenzähler & Verbrauchsrechner:

                                      Problem bei sich auf Null stellenden Zählern

                                      Hallo looxer01, Hallo etv 🙂

                                      Meine Buderus-Gastherme liefert über den Km200 Adapter die erhitzte Wassermenge/min.

                                      Beispiel:
                                      15:15:01 Uhr - 2,6l/min
                                      15:16:01 Uhr - 2.5l/min
                                      15:17:01 Uhr - 2.6l/min
                                      15:18:01 Uhr - 0l/min

                                      Ich würde gerne die gesamt Menge (Wasser) erfassen/Tag. Da der Zähler nicht wächst und 0l/min zum Schluss meldet, bekomme ich negativen Werte! (In meinem Beispiel -2.6l/Tag

                                      Ich würde gerne daraus verbrauchte Wassermenge in Liter/Tag berechnen. Lässt sich soetwas realisieren?

                                      Gruppen[0] = ['km200.0.blablabla', 'Volumen' ,false ,true ,true ,true ,true ,true ,'delta' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,false ,false]; // l/min Warmwasser
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        nalco last edited by

                                        Bei mir lief javascript in Version 6.0.3. Nach längerer Zeit wollte ich im Script ein Gerät hinzufügen. Beim Speicherm ist iobroker komplett abgestürzt. Nach downgrade auf javascript 5.8.10 konnte ich das Script speichern und der Zähler für das neue Gerät funktioniert. Gibt es Inkompalitäten mit der neuen Java-Version?

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        549
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

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