Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Umgerechneten Sensorwert glätten

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Umgerechneten Sensorwert glätten

    This topic has been deleted. Only users with topic management privileges can see it.
    • Azrael42
      Azrael42 last edited by

      Grüßt euch!
      Ich habe einen selbst gebastelten Füllstandssensor für meine Zisterne in Betrieb. Funktioniert über einen Ultraschallsensor den ich an einen Arduino angeschlossen habe, der die Entfernung zur Wasseroberfläche misst. Mittels NodeRed und einem 'function' Node rechne ich den Wert von cm in % um gebe den Wert zur Weiterverarbeitung aus.
      Funktioniert wunderbar, bis auf eine Kleinigkeit: Der gemessene Wert springt öfters einfach so auf einen komplett anderen Wert. z.B. von 30% aktuellem Füllstand auf 130% und wieder zurück. Ich meine das das Insekten sind, die in der Zisterne ihr Unwesen treiben und so die falschen Messwerte produzieren.
      Ich würde diese sprunghaft veränderten Werte gerne herausfiltern. Evtl über eine maximale Veränderung des Wertes. Meine Ansatz wäre, ignoriere den aktuellen Wert, sollte er mehr als 10% zum vorherigen verändert sein. Leider habe ich gerade nicht wirklich eine Idee, wie ich das umsetzen kann. Mag mir jemand auf die Sprünge helfen?

      Vielen Dank!

      Azrael42 1 Reply Last reply Reply Quote 0
      • Azrael42
        Azrael42 @Azrael42 last edited by

        Sieht in Flot dann so aus:
        1f13b3c5-5ff1-4879-990b-06c85e99446e-image.png

        Und so der function Node:
        283c70a5-5dfe-4e2f-a1db-c126bfbda407-image.png

        S 1 Reply Last reply Reply Quote 0
        • S
          superflip @Azrael42 last edited by

          @azrael42 ich würde versuchen mir den Wert in eine Kontext-Variable zu schreiben: context.lastvalue z.B.

          • den kannst du beim nächsten Flow wieder abgreifen und mit dem aktuellen Wert vergleichen.
            Starten würde ich mit einer fix eingegebene maximalen Abweichung (den Wert kannst du dir später auch aus einem ioBroker Objekt holen)
          • ich würde auch gleich Dist1 vergleichen - so in etwa könnte dass dann aussehen - Syntax hab ich jetzt im Code nicht gecheckt. (in der ersten Zeile hast du den ; vergessen.)
          var Dist1 = msg.payload;
          var maxdeviation = 20; //hab ich mal als Beispiel genommen
          
          // das brauchst du, damit der Vergleich unten beim ersten Mal nicht fehl schlägt
          if (!context.lastvalue) {
              context.lastvalue = Dist1;
           }
          
          //Vergleich des letzten Wertes mit dem aktuellen Wert
          if (Dist1 > (context.lastvalue + maxdeviation) || Dist1 < (context.lastvalue - maxdeviation)) {
              Dist1 = context.lastvalue;
          } else {
              context.lastvalue = Dist1;
          }
          

          Falls du noch mehr Infos brauchst, gerne.

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

            Nimm einfach eine Filternode und nutz einfach die Filternnode im Nahbandmodus.

            Ich verstehe nicht, warum man immer selbst programmieren will, anstatt die Möglichkeiten vorhandenere Nodes zu nutzen.

            S Azrael42 3 Replies Last reply Reply Quote 0
            • S
              superflip @mickym last edited by superflip

              @mickym ganz einfach, wenn man den Node nicht kennt (weil erst ein paar wenige Wochen mit Node-Red unterwegs, so wie ich), dann kann man ihn auch nicht benutzen. 😉 - Danke für den Tip!

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @superflip last edited by

                @superflip sagte in Umgerechneten Sensorwert glätten:

                @mickym ganz einfach, wenn man den Node nicht kennt (weil erst ein paar wenige Wochen mit Node-Red unterwegs, so wie ich), dann kann man ihn auch nicht benutzen. 😉 - Danke für den Tip!

                Ja deswegen sage ich immer - function Nodes nur in wenig Einzelfällen zu nutzen - sonst macht man sich das hervorragende Tool mit vorgefertigten Bausteinen, die gerade dann beim Debuggen viel Vorteile bilden - irgendwann kaputt.

                Man kann auch den ganzen Flow in eine function Node packen und nur noch triggern und output anderen Nodes überlassen.

                Deswegen rate ich gerade Anfängern function Nodes so lange wie möglich zu meiden, weil man sonst wieder ins herkömmliche Programmieren verfällt. 😉

                S 1 Reply Last reply Reply Quote 0
                • S
                  superflip @mickym last edited by

                  @mickym bin grundsätzlich voll bei dir! - hab bei meinen vielen Flows (ca. 40) bisher erst ein einziges Mal selbst die Function Node benutzt.

                  • meine Antwort hat sich auch hauptsächlich auf "Ich verstehe nicht, warum ...." bezogen. Ich werde nach solchen Sätzen halt in Zukunft 3x überlegen, ob ich überhaupt auf eine Frage antworten soll ...
                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @superflip last edited by mickym

                    @superflip sagte in Umgerechneten Sensorwert glätten:

                    @mickym bin grundsätzlich voll bei dir! - hab bei meinen vielen Flows (ca. 40) bisher erst ein einziges Mal selbst die Function Node benutzt.

                    • meine Antwort hat sich auch hauptsächlich auf "Ich verstehe nicht, warum ...." bezogen. Ich werde nach solchen Sätzen halt in Zukunft 3x überlegen, ob ich überhaupt auf eine Frage antworten soll ...

                    Na falls ich mich unverschämt ausgedrückt haben sollte, dann entschuldige ich mich . Man soll immer schreiben, was man sich denkt - und auch wenn man mal Widerspruch erntet, finde ich das nicht schlimm, sondern durchaus belebend.

                    Das Schlimmste wäre, wenn ich Dir die Lust verderben würde, hier weiterhin Hilfestellung für andere leisten zu wollen, das wollte ich auf keinen Fall.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      superflip @mickym last edited by

                      @mickym 👍 danke!

                      1 Reply Last reply Reply Quote 0
                      • Azrael42
                        Azrael42 @mickym last edited by

                        @mickym said in Umgerechneten Sensorwert glätten:

                        Nimm einfach eine Filternode und nutz einfach die Filternnode im Nahbandmodus.

                        Okay, schaue ich heute Abend rein und erstatte Bericht.

                        Zum anderen Thema: Ich muss gestehen, mir geht es sehr häufig auch so wie @superflip. Das kann man an meiner Frage hier auch sehen. Recht häufig fehlt mir die Erfahrung und das Wissen, wie ich etwas angehe. Um so dankbarer bin ich über die Hilfe hier im Forum.
                        Hätte ich den function Node in meinem Flow auch mit Bordmitteln einfach umsetzen können?

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Azrael42 last edited by mickym

                          @azrael42 sagte in Umgerechneten Sensorwert glätten:

                          Hätte ich den function Node in meinem Flow auch mit Bordmitteln einfach umsetzen können?

                          Ja function Node ist Bestandteil der Standardnodes - aber die Filternode ist auch Bestandteil der Standardnodes und insofern auch ein Boardmittel - da muss nichts installiert werden.

                          Früher hieß die Filternode nur RBE Node:

                          e2f0fc91-bba3-4332-9362-7472188a631f-image.png

                          1 Reply Last reply Reply Quote 0
                          • P
                            peterfido last edited by

                            @azrael42 Da die Hardware selbst gebaut ist, könnte man auch direkt im Arduino unplausible Werte herausfiltern.

                            Azrael42 1 Reply Last reply Reply Quote 0
                            • Azrael42
                              Azrael42 @peterfido last edited by Azrael42

                              @mickym 👍

                              @peterfido Du hast Recht. Das ding ist nur IN der Zisterne verbaut und glorreicher Weise habe ich das Kabel ohne Möglichkeit zur Trennung eingebaut. Nicht besonders Weitsichtig...
                              Lange Rede, kurzer Sinn: Nochmal da dran zu gehen, ist mir zu aufwendig.

                              46096c33-c4dd-4be5-a9c4-7983bfe5eecf-image.png

                              1 Reply Last reply Reply Quote 0
                              • Azrael42
                                Azrael42 @mickym last edited by

                                @mickym said in Umgerechneten Sensorwert glätten:

                                Nimm einfach eine Filternode und nutz einfach die Filternnode im Nahbandmodus.

                                Hab ich verwendet und funktioniert. Danke!

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                732
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                379
                                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