Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter Tiefpassfilter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter Tiefpassfilter

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @Ben1983 last edited by Homoran

      @ben1983 sagte in Test Adapter Tiefpassfilter:

      na dass Sie entsprechend gefiltert Werden.

      glaubst du allen Ernstes, dass einem Nicht-Elektroniker diese Art einer "Erklärung" ausreichen würde?

      ein Filter ist ein Filter weil er filtert?

      ? 1 Reply Last reply Reply Quote 0
      • Ralla66
        Ralla66 Most Active @Ben1983 last edited by

        @ben1983
        Werte vom type "number" filtern
        Dafür will ich als User kein Studium mit t oder sourcecode machen.

        1 Reply Last reply Reply Quote 0
        • K
          klassisch Most Active last edited by

          Ich habe auch Fragen zur Funktionsweise:

          Das Menu bietet folgende Eingabemöglichkeit
          6e6c613f-513b-48f0-996b-84879caefaca-grafik.png

          Bedeutet das, daß der Wert (State) alle 2 Sekunden abgefragt wird - egal ob er sich geändert hat?

          Das wäre in meinem konkreten Beispiel nicht so vorteilhaft.

          Es geht um die Magenta Kurve:
          e0b7fea7-ddbd-421e-aa8a-e58d217fbe9e-grafik.png

          Das ist eine berechnete Wandfeuchte. Da da mehrfach die Magnus-Formel durchlaufen wird, wird das Ergebnis verrauscht.

          Allerdings kommen die Daten nur alle 5 Minuten.
          Also wäre die Abtastzeit auf 300 Sekunden zu setzen. Gut, geht derzeit nur jede Minute. Filterzeit vielleicht auf 20 Minuten.

          Wo schreibt der Adapter dann die gefilterten Daten hin?

          Ben1983 1 Reply Last reply Reply Quote 0
          • Ben1983
            Ben1983 @klassisch last edited by

            @klassisch erst mal: Nein mach Dir keine Sorgen.
            Der Werte wird nur bei Änderung übernommen.
            Gelesen wird er sonst nie.
            Es wird nur anhand der Aktualisierungszeit eine Berechnung des Filters durchgeführt und der Wert auf den Objekten der Instanz ausgegeben.
            Verständlich?

            K 1 Reply Last reply Reply Quote 0
            • K
              klassisch Most Active @Ben1983 last edited by

              @ben1983 Ich fange jetzt mal von hinten an.
              Wenn ich den Filte aktiviere bleibt mein State unverändert und der Adapter legt in seiner Objekthoheit ein eigenes Objekt an. Macht also nicht kaputt.

              Gelesen wird nur bei Änderung. Wozu gebe ich dann die Aktualiserungszeit ein? Macht er in diesem Zeitschritten Berechungen?

              Ben1983 1 Reply Last reply Reply Quote 0
              • Ben1983
                Ben1983 @klassisch last edited by

                @klassisch Richtig. Genau so ist es.
                Du kannst auch auf "Bei Wertänderung" stellen, wenn Du relativ zyklisch deinen state rein bekommst.

                Ich muss ja sonst irgendwie zeitlich reagieren.
                wenn es nur einen wertesprung gibt, dann wird eben im angegeben zyklus berechnet und ausgegeben

                K 1 Reply Last reply Reply Quote 0
                • K
                  klassisch Most Active @Ben1983 last edited by

                  @ben1983 Ah, bei Wertänderung, ganz oben. Hatte ich nicht gesehen.
                  Paßt bei mir, weil ich jede 5 Minuten einen Wert bekomme - denke ich zumindest.

                  Wenn die Einlieferungszeit halt nicht äquidistant ist, gibt es eben Kuddelmuddel.
                  Wenn die Filterabtastzeit und die zyklische Einlieferungszeit zu nahe beieinander sind, gibt es Schwebungen.

                  Ben1983 1 Reply Last reply Reply Quote 0
                  • Ben1983
                    Ben1983 @klassisch last edited by

                    @klassisch ja, denn wenn die „einlieferubgszeit und die Filterzeit nah beieinander liegen, brauchst Du ja keinen Filter 😉.
                    Deswegeb gibts auch die aktualisierungszeit, damit du innerhalb deiner 5min auch Veränderungen siehst, wie der Wert Richtung Eingangswert läuft.

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      klassisch Most Active @Ben1983 last edited by

                      @ben1983 Sorry, da hatte ich mich falsch ausgedrückt. Wenn Eilieferungszeit udn Abtastzeit nahe beieinander liegen gibt es Schwebung.

                      Ben1983 1 Reply Last reply Reply Quote 0
                      • Ben1983
                        Ben1983 @klassisch last edited by Ben1983

                        @klassisch Sollte es eigentlich nicht geben, da bei änderung sowieso geprüft wird.
                        Wie äußert sich das bei Dir?

                        Ps. zum Hintergrund, es wird schedule verwendet, da man sonst mit timeouts unterschiedliche aktualisierungen bekommen würde.

                        1 Reply Last reply Reply Quote 0
                        • K
                          klassisch Most Active last edited by klassisch

                          Erste Zwischenergebnisse. Die schwarze Linie ist der Filterausgang zur Magenta Linie

                          1839bf6a-a413-4c87-b3d9-a315d4640725-grafik.png

                          Ganz zu Beginn hatte ich auf Werteänderung getriggert. Da sprangen die Werte heftig.
                          Dann habe ich umgestellt
                          140fe0b4-a044-4444-a221-a045bad47c9c-grafik.png

                          Es kommt noch immer zu Sprüngen
                          811efc6f-fa5b-4c50-8d6f-6569aa011ac4-grafik.png

                          Ich habe meine Rohdaten gesichtet und einige "null" Werte entdeckt. Kann es sein, daß der lowpass Adapter die als 0 interpretiert?

                          Hier nochmals das Filtervehalten etwas detaillierter

                          886f49bb-b3ff-4db9-a632-c69a70ab964b-grafik.png

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

                            @homoran said in Test Adapter Tiefpassfilter:

                            ein Filter ist ein Filter weil er filtert?

                            😆

                            Wie mein Vater mir Dinge erklärt hat 🤣

                            K 1 Reply Last reply Reply Quote 0
                            • K
                              klassisch Most Active @Guest last edited by klassisch

                              @alinaclg sagte in Test Adapter Tiefpassfilter:

                              Wie mein Vater mir Dinge erklärt hat 🤣

                              Davon mußte ich mich sehr früh lösen. Denke diesen Begriff hat er Zeit seines Lebens nicht gehört - geschweige denn verstanden. Lauter atechnische Leute in der Familie. Also, selbst ist der Mann.

                              Die Erklärung eines Tiefpasses ist nicht so trivial, wie schon der zugehörige Wikipedia Artikel zeigt.
                              Auch die Analogie zur Federung eines Autos paßt nicht ganz, weil dort mind 2 Energiespeicher mitspielen und es sich damit um ein einen Tiefass mind. 2. Ordnung handelt, hier aber ein gutmütiger TP 1 Ordnung abgebildet wird.

                              Vielleicht ist die Erkläung anhand der Sprungantwort des PT1-Gliedes noch halbwegs intuitiv.
                              Bei einem rechteckigen Sprung des Signals werden die Kanten "verschliffen". Ein verrauschtes Signal wird dadurch etwas geglättet.

                              In dieser Implementierung hier gibt es 2 Parameter.

                              • Einmal die Abtastzeit, die ich erst mal etwas kleiner (vielleicht ein fünftel) als die Änderungszeit des Eingangssignals wähle.
                              • Die Filterzeitkonstante. Dazu legt man an den Eingang des Filters einen Sprung an, der von jetzt auf gleich von 0 auf 100% springt. Nach 1 * Filterzeitkonstante ist der Ausgnag dann bei 63% nach 5 Zeitkonstanten dann bei 99%.
                                949a8ee4-0a6a-4d2c-927d-58a54f19ebfb-grafik.png

                              Bild oben: Wikipedia Chris828

                              6a309c37-2402-440d-a110-a63dd26d7a91-grafik.png

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

                                @klassisch Danke Dir - ich schau es mir an; ist also schon eine tiefergehende Filtermethode 🙂

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  klassisch Most Active @Guest last edited by

                                  @alinaclg naja, sagen wir mal der Einstieg dazu. Der harmloseste und gutmütigste Fall. Nur ein Energiespeicher und ein Element welche Energie vernichtet.
                                  Filter höherer Ordnung haben mehrere Energiespeicher und können damit auch schwingen. Ähnlich wie das Feder-Masse System bei der Autofederung.
                                  Und die Art und Weise wie die Filter höherer Ordnung ein-und auschwingen haben dann großartige Mathegenies wie Butterwoth, Bessel, Cauer und Tschebyscheff berechnet.

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

                                    @klassisch Letzterer sagt mir was vom Namen aus der Stochastik, sollte es der gleiche sein; aber es gibt ja auch einige "Bernoullis"

                                    Danke für deine Zeit zu antworten; so habe ich ein Gefühl für den Anwendungsfall 🙂

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      klassisch Most Active @Guest last edited by klassisch

                                      @alinaclg Denke, es ist der selbe. Ja, die Familien Bernoulli und Euler sind schon phänomenal.
                                      Btw. interessant auch die Bohr-Familie

                                      Wir werden die Filtereigenschaften an meinem Beispiel sehen. Sei es, daß der Filter die Null Werte ausblendet oder mein Skript diese vermeidet

                                      1 Reply Last reply Reply Quote 0
                                      • Ben1983
                                        Ben1983 @klassisch last edited by

                                        @klassisch top Filter Verhalten, würde ich sagen ;-).
                                        0 wird als ganz normaler Wert erkannt und darauf wird auch gefiltert.

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          klassisch Most Active @Ben1983 last edited by klassisch

                                          @ben1983 sagte in Test Adapter Tiefpassfilter:

                                          0 wird als ganz normaler Wert erkannt und darauf wird auch gefiltert.

                                          Bei mir steht aber nicht "0" sondern "null", also "kein gültiger Wert", akademisches Schulterzucken

                                          Beispiel:

                                            {
                                              "val": null,
                                              "ack": 0,
                                              "ts": 1649474110435,
                                              "q": 0,
                                              "c": "script.js.tests.test-climateValues",
                                              "from": "system.adapter.javascript.0",
                                              "user": "system.user.admin"
                                            },
                                          
                                          

                                          Gegenbeispiel

                                          {
                                            "val": 72.0804237247672,
                                            "ack": 0,
                                            "ts": 1649473810456,
                                            "q": 0,
                                            "c": "script.js.tests.test-climateValues",
                                            "from": "system.adapter.javascript.0",
                                            "user": "system.user.admin"
                                          },
                                          

                                          In meinen Graphen fällt das nicht auf, weil FLOT das ausblenden kann und ich das standarmäßig so einstelle.

                                          d5c935b7-e183-494b-91d4-5b202e964e51-grafik.png

                                          Stellt sich die Frage, ob Du auch so eine Möglichkeit einbauen möchtest?

                                          Und ja, ansonsten sieht die Sprungantwort gut aus....

                                          Ben1983 1 Reply Last reply Reply Quote 0
                                          • Ben1983
                                            Ben1983 @klassisch last edited by

                                            @klassisch Für mich stellt sich erst mal die Frage, warum bei Dir NULL Werte kommen 😉

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            480
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            66
                                            3497
                                            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