NEWS
Test Adapter Smoothed
-
@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ß!
-
@marc_el_k
Also hier eine Testeingabe:
Dies erzeugt:
Den Ordner Testwert mit den darunter liegenden Werten.
-
@ben1983 Super, ja so habe ich es verstanden. D.h. ich muss nun die geglätteten neuen Werte mittels History Adapters mitschreiben und in meinen Charts einbauen.
Habe lang nach dieser Funktion gesucht, da ich festgestellt habe, dass in den Visualisierungen wie zum Beispiel echarts keine Funktion existiert!
-
@marc_el_k ganz genau.
nutzt Du gleitender Mittelwert, oder PT1? -
@daniel_iobroker Ich habe Dir etwas eingebaut, mit dem Du die Standardabweichung auch in dem Modus "ungefiltert" nutzen kannst.
Hier kannst Du auswählen, auf welchen Zeitraum sich die Standardabweichung bezieht.
-
@Ben1983 Zur Berechnung meiner Verbrauchswerte, Strom, Gas, Wasser, wäre es interessant den Smoothed Adapter einzusetzen. Wie bekomme ich denn die Histroy Werte aus meinen vorhandenen DP integriert und geglättet?
-
@marc_el_k ich verstehe die Frage nicht / oder nicht richtig.
Du musst Du nur die Id auswählen, die geglättet werden soll. -
@ben1983 Sorry, dann habe ich mich schlecht ausgedrückt. Ich formuliere es mal anders: Mein Datenpunkt hat Werte aus den letzten 2 Jahren. Diese hätte ich gern geglättet sowie die Werte welche neu hinzukommen. Bisher nahm ich an, dass es der Adapter nur ermöglicht, auf neue Werte einzugehen!?
-
@marc_el_k Ja das ist auch so, der Adapter holt sich Werte bei Änderung, oder im eingestellten Intervall in das interne Array. (Je nach Konfiguration)
Das Array ist aber nur so lange (Zeitlich), wie die Gättungszeit ist.
History-Werte können nicht nachträglich analysiert werden.Wäre das nicht in Source Analytics?
-
@ben1983 sagte in Test Adapter Smoothed:
Okay, dann hatte ich es doch richtig verstanden.
Wäre das nicht in Source Analytics?
Was ist das? In iobroker wird mir kein Adapter angezeigt...
EDIT: Musste auf BETA umstellen, jetzt klappt es.
-
@marc_el_k Bist Du soweit zufrieden, oder suchst Du noch nach deiner passenden Lösung?
Ich habe ja noch nichts bezüglich des Verfahrens implementiert. -
@Ben1983 Warum ist die Glättungszeit auf 60 Minuten begrenzt? Ich würde zb. gerne die Außentemperatur über 24 Stunden mitteln...
-
@dax OK,
das müsste ich mir ansehen.
Du könntest Allerdings zu Testzwecken schon einmal einfach in der config den Wert manuell auf deinen gewünschten Wert setzen.