NEWS
Wackliger Wert, Wert flattert...Traffic minimieren
-
Hallo, sorry für den etwas unklaren Titel, bin mir nicht sicher wie ich es ausdrücken soll, oder nach was ich suchen soll, deswegen hier das neue Thema. Vermutlich gibts da schon was.
Folgendes Problem:Ich hab über ein Abstandsensor meine Zisterne versmartet. Über Node-red bekomme ich den Füllstand übermittelt. Soweit so gut. Nur der angezeigte Wert ist unruhig auch wenn sich theoretisch nix ändert und jede Änderung wird per mqtt ins System geschossen. Den Traffic will ich gern minimieren.
Der Abstand schwankt zb. mal 19cm bis zum Wasser mal 20cm mal 18cm usw.Jetzt, was kann ich da einfügen um nur sinnvolle Infos (Wasserstand sinkt, steigt) als Traffic zu haben?
Vielen Dank für Tipps
-
@hamudulu Es gibt aus meiner Sicht zwei Lösungen für das Problem: die Hysterese oder die Entprellung.
Bei der Hysterese wird die Veränderung des Wertes angeschaut, bei der Entprellung nur die Zeit.
Ich denke, Hysterese macht für dich mehr Sinn.
-
@unclesam Hallo, Danke für den Tip.
Daran hab ich auch schon gedacht, aber ich scheiter an der Konfiguration....
Was muss da in Topic Threshold und Toppic current rein? Und ist Threshold Dynamic richtig? Ich denk schon, da der Wert an sich egal wie groß ja wacklig ist. -
@hamudulu Wenn du eine Hysterese von 1 eingibst, wird er alle Werte schicken, die sich mindestens um 1 ändern. In deinem Fall wäre wohl eher 2 oder sogar 3 angesagt.
Topic Threshold und Topic Current musst du beide auf den Topic der Nachricht setzen. (Er überprüft z.B.
msg.topic === this.TopicThreshold
). Damit könntest du den Threshold von einem anderen Wert aus ändern als der eigentliche Wert; bei dir ist das aber beides dasselbe - muss einfach mit dem Topic deiner Nachricht übereinstimmen. -
@unclesam ich hab jetzt mal das hier gefunden: https://flows.nodered.org/node/node-red-node-smooth
Das ergibt für mich Sinn und funktioniert. So wird der Traffic reduziert und trotzdem Veränderung registriert. Mit dem Dynamic Hysterese kam ich nicht klar.
Vielen Dank trotzdem -
@hamudulu Man hätte es auch mal mit der Standard RBE Node versuchen können. Da kann man auch einstellen, umwieviel % sich der Wert ändern muss, damit eine Nachricht erzeugt wird. Klar gibt es komplexere Lösungen, aber man kann ja auch erst mal schauen, was der Standard so alles bietet. Selbst die Standard iobroker In Nodes bieten an, dass Nachrichten nur generiert werden, wenn sie sich um einen bestimmten % unterscheiden. Ich habs nicht getestet aber könnten man (so als Tipp ) auch mal ausprobieren.
Oder um nur eine Tendenz zu haben, habe ich mir diesmal eine function Node gebastelt, die immer den Vorgängerwert gespeichert hält. Da kann man dann selbst entscheiden wie die Tendenz dargestellt wird. Jeder Input wird wird mit dem Vorgänger verglichen. Ist er kleiner wird 1 abgezogen, größer 1 dazu gezählt. -3 ist dann Tendenz fallend, +3 Tendenz steigend - alles dazwischen gleichbleibend - und natürlich freikonfigurierbar.
Ich nutze sowas für mein eigenes Barometer:
Geht aber auch ohne function Node mit einer Flow-Variablen.