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.
    • L
      looxer01 last edited by

      @pix:

      Hallo Looxer,

      Vielleicht solltest du alle Einstellungen eines Gerät zusammenfassen (besser untereinander, auch wenn das Skript länger wird),

      Pix `
      habs mal versuchsweise gemacht - siehe unten- Ich bin mir nicht so sicher. das werden 700 Zeilen.

      @Bluefox:

      Schreib ein Adapte `
      ist mir klar. Das schreit ja danach. Wäre auch gut für die Anwesenheitssimulation.

      ABER - keine Ahnung wie ich überhaupt damit anfangen sollte.

      Wahrscheinlich brauchts eine komplette Entwicklungsumgebung /Raspi/ioBroker/Webstorm damit das produktiv system nicht leidet.

      Dann ist eine Oberflächenentwicklung ja noch etwas vollkommen anderes als eine einfache script entwicklung….

      vG Looxer

      ! var Gruppen = []; Gruppen[0] = /*1.Homematic ID, */ ['hm-rpc.0.JEQ0036841.1.STATE' , // der Text "initial" muss eingetragen sein fuer nicht genutzte Zeilen. Es funktionieren alle LEVEL und STATE Geraete und alles was mit true und false belegt werden kann /*2.Feldname(no spaces)*/ 'Licht_WZ_EsstischStehlampe' , // ist der Variablenname unter dem die Betriebszeiten in ioBroker abgelegt werden. Wichtig: keine Sonderzeichen und keine Spaces verwenden. Statdessen aber Unterstriche eintragen /*3.Freie Beschreibung */ 'Licht Wohnzimmer Esstisch Stehlampe' , //st frei zu vergebener Text (Beschreibung) /*4.DAY */ true , // Variable DAY wird angelegt und kumuliert - täglicher refresh - keine Hochkomma /*5.Week */ true , // Variable DAY wird angelegt und kumuliert - täglicher refresh - keine Hochkomma /*6.Month */ true , // Variable DAY wird angelegt und kumuliert - täglicher refresh - keine Hochkomma /*7.Year */ true , // Variable DAY wird angelegt und kumuliert - täglicher refresh - keine Hochkomma /*8.Switch */ true, // Verwendung eines Zaehlers um die Statuswechsel (anzahl Schaltungen) zu zaehlen /*9 - 18 Status to log */ 'true' , //9 - 18 Eingabe was gezaehlt werden soll. Jeder Eintrag erzeugt eine variable in den Objekten. Sobald ein Status des Homematic-ID gesetzt wird, wird die Zeit bzw. die Anzahl der Schaltvorgaenge gespeichert /*10- 18 Status to log */ '' , //Status kann in hochkomma anagegeben werden z.B. '100' oder 100\. Für Level Geraete wird nur ein Status berücksichtigt. Der Status kann von 0 - 100 eingegeben wird - empfohlen ist 1\. /*11 - Status to log */ '' , // Als eingeschaltet wird alles groesser gleich dem eingegebenen Wert berechnet /*12 - Status to log */ '' , /*13 - Status to log */ '' , /*14 - Status to log */ '' , /*15 - Status to log */ '' , /*16 - Status to log */ '' , /*17 - Status to log */ '' , /*18 - Status to log */ '' , /*19 - Status to log */ /*Refresh */ false // Refresh. Es werden alle Daten geloescht. Solange Refresh auf true steht werden keine neuen Daten aufgezeichnet ]; Gruppen[1] = /*1.Homematic ID, */ ['hm-rpc.0.JEQ0199306.1.LEVEL' , /*2.Feldname(no spaces)*/ 'Licht_WZ_EsstischDecke' , /*3.Freie Beschreibung */ 'Licht Wohnzimmer Esstisch Deckenlampe' , /*4.DAY */ true , /*5.Week */ true , /*6.Month */ false , /*7.Year */ false , /*8.Switch */ true, /*9 - 18 Status to log */ 'true' , /*10- 18 Status to log */ '' , /*11 - Status to log */ '' , /*12 - Status to log */ '' , /*13 - Status to log */ '' , /*14 - Status to log */ '' , /*15 - Status to log */ '' , /*16 - Status to log */ '' , /*17 - Status to log */ '' , /*18 - Status to log */ '' , /*19 - Status to log */ /*Refresh */ false ]; !

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

        Version 030 ist jetzt hochgeladen mit folgenden Erweiterungen:

        ….........Version 0.30

        • Externes Logging (Excel) ist implementiert und kann aktiviert werden und zwar fuer jeden aufgezeichnete Statuswechsel und fuer genullte Werte

        • HISTORY ist implementiert und kann aktiviert werden fuer Monat und Jahr (genullte Werte werden in Form JJJJMM gesichert

        Rahmen der History funktion wurde die freie Bezeichnung entfernt, da sie nirgendwo im Programm genutzt wurde

        • Refresh variable ist einstellbar. Vorläufige Funktion: Updates werden ignoriert falls auf true

        vG Looxer

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

          Hi,

          Version 0.40 ist im ersten post hochgeladen.

          Es gab noch einige grundsätzliche Fehler in der Vorversion beim Monats bzw. Jahreswechsel.

          Das sollte jetzt funktionieren.

          Ich selber setze den Zaehler jetzt produktiv ein.

          vG Looxer
          144_total01.png
          144_total02.png

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

            und jetzt ist die Version 0.60 hochgeladen mit wesentlich erweitertem Funktionsumfang.

            Ich habe den ersten Post upgedated mit einer umfangreicheren Beschreibung.

            Wesentlich ist das neue Methoden hinzugekommen sind die Berechnungen ermöglichen, die über zeitdifferenzbildung hinausgehen.

            Das wird z.B. benötig für Ölverbrauchs-Stromverbrauchs,Pelletverbrauchs Rechnungen in KG/Wh, kWh, Euro etc.

            vG Looxer

            1 Reply Last reply Reply Quote 0
            • S
              starfish last edited by

              gelöscht - update folgt

              1 Reply Last reply Reply Quote 0
              • blauholsten
                blauholsten Developer last edited by

                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! 😄 😉 …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

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

                  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 Reply Last reply Reply Quote 0
                  • blauholsten
                    blauholsten Developer last edited by

                    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.

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

                      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 Reply Last reply Reply Quote 0
                      • S
                        starfish last edited by

                        Anwendungsbeispiel Stromverbrauch

                        291_obj-verbrauch.png

                        291_verbrauch.png

                        1 Reply Last reply Reply Quote 0
                        • S
                          starfish last edited by

                          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 Reply Last reply Reply Quote 0
                          • L
                            looxer01 last edited by

                            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 Reply Last reply Reply Quote 0
                            • L
                              looxer01 last edited by

                              Hi,

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

                              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 Reply Last reply Reply Quote 0
                              • Thisoft
                                Thisoft last edited by

                                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 :?: 😉

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

                                  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 Reply Last reply Reply Quote 0
                                  • Thisoft
                                    Thisoft last edited by

                                    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.

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

                                      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 Reply Last reply Reply Quote 0
                                      • L
                                        looxer01 last edited by

                                        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 Reply Last reply Reply Quote 0
                                        • L
                                          looxer01 last edited by

                                          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 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators last edited by

                                            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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            495
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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