NEWS
Test Adapter Smoothed
-
Aktuelle Test Version 0.4.2 Veröffentlichungsdatum 23.12.2023 Github Link https://github.com/BenAhrdt/ioBroker.smoothed.git Mit dem Adapter, kann man verschiedene Glättungsarten auswählen.
Zusätzlich kann eine zulässige änderung anhand der aktuellen Standardabweichung definiert werden.
Da man in dem Akkordion in der Konfiguration mehrfach die gleiche id Benutzen kann, kann man so auch sehr einfach eine id mehrfach mit unterschiedlichen Zeiten, oder auch Arten glätten.Gerne einmal testen.
Danke
-
@ben1983 Übrigens, der Adapter würde die Funktionalität meines Lowpass Filters beinhalten.
-
@Ben1983
Ich habe heute über einen Link zum iobroker Blog von deinem Adapter erfahren.
Habe ihn gleich installiert (Version 1.0.0 aus dem stable) und wollte damit eigentlich nur Werte ignorieren, wenn diese zu hoch sind. Also eigentlich ohne die glätten Funktion. Habe einen Sensor, der manchmal einen viel zu hohen Wert liefert.Wo kann ich denn den Standard-Abweichungswert eingeben? Pro Datenpunkt kann ich ja "nur" den Abweichungs-Multiplikator angeben oder?
Hab den Multiplikator mal auf 2 gesetzt. Der Adapter ignoriert aber alle folgenden Werte.
Im log werden immer Infos geschrieben, dass der Wert ignoriert wird, da die Abweichung zu hoch ist. Allerdings steht dort auch "The maximal deviation is actual: NaN". Der Adapter (und ich) wissen also nicht, wie hoch die Standard-Abweichung ist. -
@daniel_iobroker
in deinem Fall bräuchtest Du keine Standardabweichung.
Dies Copnfig wäre richtig:
Leider habe ich gerade festgestellt, dass irgendwie der Wert auf 0 gesetzt wird.
Ich schaue mir das mal an. -
@ben1983
In meinem Fall kann ich leider den Maximalwert nicht nehmen. Es geht um den Stromzähler. Der Wert wird also immer höher. Den Stromzähler lese ich aber direkt am Smartmeter aus und manchmal wird mir dort ein falscher Wert übertragen (zu hoch). Diese Werte möchte ich damit rausfiltern. Das wäre also dann der Fall, wenn die Abweichung zu hoch ist. Diese Funktion hat dein Adapter ja bereits integriert. Es geht nur darum, den Standard-Abweichungswert eintragen zu können.
Z.B.
1.) Wenn der neu übertragene Wert um 10 höher ist als der vorherige, dann ignorieren.
2.) Sollten aber mehrere Werte nacheinander hoch sein, dann soll der Wert wieder gültig sein (Z.B. wenn der Smartmeter eine längere Zeit nicht übertragen hat und dann wieder anfängt. Dann wäre der richtige Wert ja logischerweise um einiges höher als der ursprüngliche Wert vor dem "Ausfall")Den zweiten Fall könnte ich jedoch mit einem zusätzlichen Blockly Script abfangen. In dieser Form: Sollten nach einer Totzeit wieder Werte kommne, deinen Adapter neu starten. Dann hat er den aktuellen Wert wieder als gültig. Wäre natürlich schöner, wenn das direkt in deinem Adapter passiert, aber so war ja dein Adapter nicht gedacht
-
@daniel_iobroker OK.
Ich habe den Fehler gefunden, aber gerade bekomme ich bei git Testfehler.
Es besteht aber auch ein Problem, wenn der Wert nicht gefiltert wird, so gibt es eine Zeitlichliche komponente, die rein spielt.
Du könntes mal versuchen, wenn Du es so einstellst.
Die Standardabweichung müsstest Du dann rausfinden, was bei Dir sinn macht. -
@daniel_iobroker Ich habe die 1.0.1 Version im Beta.
Bei ungefilterten Werten greift die Standardabweichung nicht, da diese sich immer auf einen Zeitlichen Wert bezieht.
Dazu nutze ich intern ein Array, welches der Filterzeit entspricht.
Dies müsste man ändern, aber da wäre halt die Frage auf welche Länge.
Aktuell habe ich da noch keine Idee.
Hast Du einen Vorschlag? -
@daniel_iobroker Moin nochmal.
Die 1.0.1 sollte in der Beta verfügbar sein, aber bitte noch auf die 1.0.2 warten (Ich habe in der 1.0.1 ein versehentliches warning in den Logs vergessen zu deaktivieren.
Man kann nun auch ungefilterte Werte begrenzen(Bugfix), allerdings wie gesagt aktuell die Standardabweichung nicht nutzen. In welchem Zyklus bekommst Du denn Werte rein? Vielleicht könnte ich für Dich eine Testversion bauen.Edit:
1.0.2 ist online. -
Hallo @Ben1983 interessanter Adapter.
Bitte um kurze Aufklärung. Wenn ich einen Namen vergebe und einen zu glättenden Datenpunkt auswähle, wird dann ein neuer Datenpunkt generiert mit den neuen Werten?
Danke und Gruß!