Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Werteabhängiges loggen per Skript

    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

    Werteabhängiges loggen per Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AndyGR42 @Homoran last edited by

      @homoran sagte in Werteabhängiges loggen per Skript:

      Bedingung ist dass alle 0 und alle Werte über einer gewissen Schwelle (im Moment 1000W) sofort geschrieben werden, alles andere soll gemittelt und alle 2 Minuten geschrieben werden.
      Kommt innerhalb der 2 Minuten ein (oder mehrere) "Priority Wert" soll erst danach in 2 Minuten der nächster gemittelte Wert geschrieben werden.

      Was willst Du damit erreichen? Im Grunde verfälschst Du damit deine Daten und alle Aggregationen von Flott wären mehr oder weniger falsch (vermutlich fast immer zu hoch).

      Ich vermute mal, Du möchtest zwei Dinge erreichen:

      • Reduzierung der Daten für die Langzeitaufzeichnung. Bei einer Aggregation über Monate oder Jahre spielt eine Auflösung von 1 Sekunden keine Rolle. Dennoch sollten die Mittelwerte halbwegs stimmen.

      • Eine sehr granulare Sicht auf einen kurzen Zeitraum, mit der Möglichkeit sekundengenau zu beobachten, das System zu optimieren und Fehler zu finden.

      Das bekommst Du meiner Meinung nach nicht unter einen Hut. Ich würde daher zwei Werte nutzen. Den hochfrequenten Messwert, ggf. mit Glättung im Flott Diagramm, aber nur 2 Wochen oder einen Monat History. Mehr macht hier auch kaum Sinn. Das Langzeitdiagramm verwendet dann die gemittelten Werte für einen sehr langen Zeitraum.

      Natürlich könnte man die Langzeit Daten auch von Flott aggregieren und Glätten lassen. Das würde aber einen große, robuste Datenbank vorrausetzen. Bei den meisten Benutzern würden wahrscheinlich schon bei deinen aktuellen 50GB Probleme auftreten.

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @AndyGR42 last edited by

        @andygr42 sagte in Werteabhängiges loggen per Skript:

        Was willst Du damit erreichen?

        ich benötige die Übersicht über Leistungsspitzen
        und die 0 damit es nicht zu den Artefakten kommt.
        Screenshot_20230206-170115_Firefox.jpg
        Das war der Aufhänger für die gesamte Diskussion.

        A 1 Reply Last reply Reply Quote 0
        • A
          AndyGR42 @Homoran last edited by AndyGR42

          @homoran Über welchen Zeitraum?

          P.S.: anders gefragt, wie lange willst Du diese Ansicht mit diesem Zeitausschnitt aufbewahren?

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @AndyGR42 last edited by

            @andygr42 den Kontext zu dieser Frage sehe ich jetzt nicht.

            Insgesamt soll die Datenaufzeichnung darauf ausgelegt sein.
            Ich will nicht alle Werte doppelt aufzeichnen und eigentlich auch nicht per Skript manipulieren.
            Deswegen war das Ursprungsthema auf die Filterrfunktionen von History bezogen.

            A 1 Reply Last reply Reply Quote 0
            • A
              AndyGR42 @Homoran last edited by

              @homoran In der Regel manipuliert man die Daten in der Ansicht und nicht in der Speicherung. Daher halt meine Frage, wie weit eine so granulare Ansicht zurückreichen soll. Und wie genau die historischen Werte sein sollen, wenn Du z.B. mal die Daten über mehrere Monate vergleichst

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @AndyGR42 last edited by

                @andygr42 sagte in Werteabhängiges loggen per Skript:

                wie weit eine so granulare Ansicht zurückreichen soll.

                die soll ja nur die Spitzen zeigen, der Rest ist nicht feingranular

                A 1 Reply Last reply Reply Quote 0
                • A
                  AndyGR42 @Homoran last edited by

                  @homoran Hast Du mal mit der Aggregation von Flott rumgespielt? Vielleicht reicht es hier die Parameter zu ändern, dann brauchst Du gar nichts an den Messwerten zu manipulieren.

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @AndyGR42 last edited by

                    @andygr42 sagte in Werteabhängiges loggen per Skript:

                    Hast Du mal mit der Aggregation von Flott rumgespielt?

                    Natürlich!
                    aber das setzt die feingranuläre Historisierung voraus, von der ich weg will.

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      AndyGR42 @Homoran last edited by AndyGR42

                      @homoran Wie wäre dann die Idee, keinen absoluten Wert der Differenz als Trigger zu wählen, sondern einen prozentualen? Das würde das Problem am unteren Skalenende wieder auf Null zu kommen zumindest deutlich mittigeren

                      (geht natürlich nicht mit der vorhandenen Version von History)

                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Homoran last edited by paul53

                        @homoran sagte: Datenpunkt mit wechselndem Vorzeichen.

                        Das habe ich berücksichtigt. Zur Erläuterung:
                        Wenn die Differenz des aktuellen Wertes zum zuletzt geschriebenen Wert(lastPower) innerhalb von 2 Minuten einen bestimmten Betrag überschreitet, wird geschrieben. Andernfalls wird der Mittelwert der letzten 2 Minuten geschrieben. Die Auswertung "Ladung/Entladung" erfolgt erst beim Schreiben.

                        Homoran 1 Reply Last reply Reply Quote 1
                        • Homoran
                          Homoran Global Moderator Administrators @paul53 last edited by

                          @paul53 Soweit hab ich das auch verstanden.
                          Lediglich einzelne Details muss ich noch ventilieren.

                          Außerdem kann ich immer noch die Aussage

                          @paul53 sagte in Werteabhängiges loggen per Skript:

                          Meiner Meinung wird zu früh zwischen Laden und Entladen unterschieden.

                          nicht zuordnen.

                          Bei dir ist die Grenze +/- 100W, bei mir war sie beim Entladen auf 1000W, das Laden hatte ich noch nicht implementiert.
                          Natürlich weiss ich dass ich auch in deinem Blockly den Wert hochsetzen kann.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Homoran last edited by

                            @homoran
                            Das sagt nichts anderes aus als
                            @paul53 sagte in Werteabhängiges loggen per Skript:

                            Die Auswertung "Ladung/Entladung" erfolgt erst beim Schreiben.

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @paul53 last edited by

                              @paul53 Danke!
                              jetzt hab ich noch was zum nachdenken 🤔

                              Aber ich glaube da komm ich noch hin.

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                AndyGR42 @Homoran last edited by AndyGR42

                                @homoran Ich habe das mal eben hingeklimpert. Es schreibt den zweiten DP (mit einem geht das nicht, da die Änderung ja sofort in History geschrieben wird) nur bei Änderungen >20%. Das müsste eigentlich deinem Ziel, schnelle, große Peaks sofort und nicht geglättet zu schreiben ebenso entgegenkommen wie das Erreichen von Null bei Änderungen im unteren Skalenbereich. Zur Not könnte man beim Prozentwert auch noch zwischen Steigen und Fallen unterscheiden.

                                cb599453-219a-400f-abe2-45c07d5787ce-image.png

                                Vielleicht übernimmt apollon ja die Idee für den History Adapter 🙂

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @AndyGR42 last edited by Homoran

                                  @andygr42 sagte in Werteabhängiges loggen per Skript:

                                  Vielleicht übernimmt apollon ja die Idee für den History Adapter

                                  dazu muss es erst einmal laufen.

                                  @andygr42 sagte in Werteabhängiges loggen per Skript:

                                  Ich habe das mal eben hingeklimpert.

                                  DANKE!
                                  aber ich fürchte, dass ich den Versuch sofort wieder verworfen habe, da bei einer Abtastrate von 1Hz, nur der erste Messwert im Vergleich zum vorherigen die Kriterien erfüllt.
                                  Bei 45 Sekunden Mikrowelle (oder 3 Minuten Duschen) wäre das nur 1 Messpunkt, der geschrieben wird.

                                  Auch die 0 rutscht durch, wenn der Absturz bis auf wenige Watt stattfindet und dann langsam Richtung 0 geht.

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    AndyGR42 @Homoran last edited by AndyGR42

                                    @homoran Ersteres ist ja kein Problem. Man könnte ja auch noch den vorherigen Wert schreiben. Der Zweite Punkt hängt vom Prozentsatz ab. Alternativ schreibt man unter eine Schwelle wieder jeden Wert.

                                    cabd0391-64a8-41ba-b5c8-1652e174b313-image.png

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @AndyGR42 last edited by Homoran

                                      @andygr42 sagte in Werteabhängiges loggen per Skript:

                                      Alternativ schreibt man unter eine Schwelle wieder jeden Wert.

                                      das soll ja vermieden werden. Die plätschernde Grundlast ist (mir) egal.

                                      Ersteres ist ja kein Problem. Man könnte ja auch noch den vorherigen Wert schreiben.

                                      Ja! War dann auch mein Ansatz.
                                      Aber das wurde dann nicht mehr das schnelle "mal eben" Skript, dass ich für diverse DP nutzen wollte.

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        AndyGR42 @Homoran last edited by AndyGR42

                                        @homoran Entweder unter einer bestimmten Last auf Null setzen oder an der Stelle den Mittelwert errechnen, was aber deutlich aufwändiger wird. (wobei das hier Quick & Dirty ist und nochmal überarbeitet werden muss)

                                        Ohne Script wird das vermutlich nicht funktionieren, es sei denn jemand baut die Logik in History ein.

                                        ff1b6686-2aa3-4ae2-8fd1-f62f1260b947-image.png

                                        A Homoran 2 Replies Last reply Reply Quote 0
                                        • A
                                          AndyGR42 @AndyGR42 last edited by

                                          So ist's besser: 4005af8a-7a57-4efe-9a48-2c6d35d8dc5b-image.png

                                          A 1 Reply Last reply Reply Quote 0
                                          • A
                                            AndyGR42 @AndyGR42 last edited by

                                            @andygr42 Jetzt aber:

                                            98eb3cd1-f534-4198-b809-4a541e349111-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            836
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            53
                                            1957
                                            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