NEWS
10 Werte, sortieren und nur die mittleren 6 nehmen
-
@michl75
wie liegen die daten vor?
wenn in javascript als array dann[5,3,8,1,4,9,0,2,6,7].sort((a,b)=>a-b).slice(2,8).reduce((c,el)=>c+el)/6
Ausgangsarray
[5,3,8,1,4,9,0,2,6,7]Ergebnis nach Sort
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]Ergebnis nach slice (einen Teil aus einem Array extrahieren
[2, 3, 4, 5, 6, 7]Ergebnis nach reduce (summieren des array)
27Ergebnis nach teilen / 6
4.5@oliverio ja noch gar nicht irgendwie... ich habe mir einen Datenpunkt angelegt als Array und dann habe ich einen Datenpunkt aus MQTT der alle x Sekunden einen Wert bringt. Diesen MQTT Wert versucht ich gerade in einen "Array" zu bringen ... aber mit Blockly
Korrektur, da ich es mit Datenpunkt Array gar nicht hinbekommen habe, habe ich es erst mal mit einem String versucht (zusammengesetzt eben)
-
@homoran eben gerade erst deinen Beitrag gesehen ... dass muss ich mir sofort anschauen...
hier mein erster Versucht, ich hab sowas noch nie gemacht... also Top-Einsteiger-Variante...


Funktionieren tut das natürlich nicht wirklich ... eigentlich gar nicht da ich kein Ergebnis bekomme, da ich es nicht hinbekomme mit der Liste erzeugen und ergänzen... Katastrophen-Ausführung ist das mein Versuch...
Na ich esse erstmal was und dann schau ich mir deine Infos genauer an...
vielen Dank aber schon mal
@michl75 sagte in 10 Werte, sortieren und nur die mittleren 6 nehmen:
Na ich esse erstmal was und dann schau ich mir deine Infos genauer an...
ich denke da wären immer nur 10 Werte drin?
Jetzt wird es komplexer.Entweder die Liste auf 10 Werte begrenzen, oder die Länge der Liste auslesen und dann mehr (????) Datenpunkte oben und unten (Ausreißer??) entfernen
-
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
ich denke da wären immer nur 10 Werte drin?
ja war mein Ziel... aber die muss ich ja erst aus dem MQTT Datenpunkt sammeln... und da fängts schon an das ich's nicht hinbekommen
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
Entweder die Liste auf 10 Werte begrenzen, oder die Länge der Liste auslesen und dann mehr (????) Datenpunkte oben und unten (Ausreißer??) entfernen
Ausreißer entfernen ... darum wollte ich eben 10 mal sammeln, dann sortieren... die ersten beiden weg und die letzten beiden auch --- Rest dann 6 Stück und damit den Durchschnitt machen
-
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
ich denke da wären immer nur 10 Werte drin?
ja war mein Ziel... aber die muss ich ja erst aus dem MQTT Datenpunkt sammeln... und da fängts schon an das ich's nicht hinbekommen
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
Entweder die Liste auf 10 Werte begrenzen, oder die Länge der Liste auslesen und dann mehr (????) Datenpunkte oben und unten (Ausreißer??) entfernen
Ausreißer entfernen ... darum wollte ich eben 10 mal sammeln, dann sortieren... die ersten beiden weg und die letzten beiden auch --- Rest dann 6 Stück und damit den Durchschnitt machen
@michl75 auf die Schnelle mit der heißen Nadel:

ist es das was ihr suchet?
Hab hier mal 20 als Listenlänge vorgegeben und der Wert wird auch erst berechnet wenn 21 Mwssungen vorliegen
-
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
ich denke da wären immer nur 10 Werte drin?
ja war mein Ziel... aber die muss ich ja erst aus dem MQTT Datenpunkt sammeln... und da fängts schon an das ich's nicht hinbekommen
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
Entweder die Liste auf 10 Werte begrenzen, oder die Länge der Liste auslesen und dann mehr (????) Datenpunkte oben und unten (Ausreißer??) entfernen
Ausreißer entfernen ... darum wollte ich eben 10 mal sammeln, dann sortieren... die ersten beiden weg und die letzten beiden auch --- Rest dann 6 Stück und damit den Durchschnitt machen
erzähle mal doch was so dein gesamtziel ist. bisher hast du nur einen kleinen ausschnitt erzählt. evtl bist du ja schon vom ansatz falsch unterwegs und es gibt einen einfacheren weg.
was für daten möchtest du den sammeln?
warum willst du die obersten und untersten abschneiden/webschmeißen?
und aus dem Rest den durchschnitt berechnen.
Wenn wir den Gesamtkontext wissen kann man besser helfen.
du hast halt eine detailfrage gestellt und hast eine detailantwort erhalten.
aus deinen weiteren posts entnehme ich aber, das das gesamtkonstrukt noch nicht klar ist. -
erzähle mal doch was so dein gesamtziel ist. bisher hast du nur einen kleinen ausschnitt erzählt. evtl bist du ja schon vom ansatz falsch unterwegs und es gibt einen einfacheren weg.
was für daten möchtest du den sammeln?
warum willst du die obersten und untersten abschneiden/webschmeißen?
und aus dem Rest den durchschnitt berechnen.
Wenn wir den Gesamtkontext wissen kann man besser helfen.
du hast halt eine detailfrage gestellt und hast eine detailantwort erhalten.
aus deinen weiteren posts entnehme ich aber, das das gesamtkonstrukt noch nicht klar ist.@oliverio soweit ich das aus anderen Threads zusammenreime hat er eine (gewöhnungsbedürftige) pH-Elektrode im Teich und möchte diese Kurve glätten.
@oliverio sagte in 10 Werte, sortieren und nur die mittleren 6 nehmen:
warum willst du die obersten und untersten abschneiden/webschmeißen?
Ausreißerbereinigung
-
@oliverio soweit ich das aus anderen Threads zusammenreime hat er eine (gewöhnungsbedürftige) pH-Elektrode im Teich und möchte diese Kurve glätten.
@oliverio sagte in 10 Werte, sortieren und nur die mittleren 6 nehmen:
warum willst du die obersten und untersten abschneiden/webschmeißen?
Ausreißerbereinigung
-
@oliverio na dann bin ich mal raus
-
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
ich denke da wären immer nur 10 Werte drin?
ja war mein Ziel... aber die muss ich ja erst aus dem MQTT Datenpunkt sammeln... und da fängts schon an das ich's nicht hinbekommen
@homoran said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
Entweder die Liste auf 10 Werte begrenzen, oder die Länge der Liste auslesen und dann mehr (????) Datenpunkte oben und unten (Ausreißer??) entfernen
Ausreißer entfernen ... darum wollte ich eben 10 mal sammeln, dann sortieren... die ersten beiden weg und die letzten beiden auch --- Rest dann 6 Stück und damit den Durchschnitt machen
@michl75 sagte: 10 mal sammeln, dann sortieren... die ersten beiden weg und die letzten beiden auch --- Rest dann 6 Stück und damit den Durchschnitt machen
Vorschlag:

Nimmt immer die 10 letzten Werte (gleitend), sortiert diese und lässt die Ausreißer weg.
-
@michl75 sagte: 10 mal sammeln, dann sortieren... die ersten beiden weg und die letzten beiden auch --- Rest dann 6 Stück und damit den Durchschnitt machen
Vorschlag:

Nimmt immer die 10 letzten Werte (gleitend), sortiert diese und lässt die Ausreißer weg.
Ich melde mich gleich ... ich muss essen kosten ... Kinder....
Schaue es mir an so schnell ich kann ... schon mal Danke!EDIT
Frau nicht zuhause, ich bin heute der Herr im Haus
Also .. ja richtig, ich versuche die Werte des pH-Sensors weiter zu "glätten" .. bisher nehme ich 10 Werte und dann geteilt durch 10. Aber dieser Sensor bringt mich noch ins Grab. Daher dieser Versuch, wie er auch oft in so diversen Anleitungen geschrieben ist.
@paul53 das werde ich eben noch probieren sofern mich Kinder nicht weiter auf Trapp halten ... Ansonsten morgen Früh ...
Nochmals danke an alle!
-
@paul53 said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
Nimmt immer die 10 letzten Werte (gleitend), sortiert diese und lässt die Ausreißer weg.
So habe das eben noch ausprobiert. ....
Frage dazu:
Muss man die Werte nicht in einem Datenpunkt speichern ? Also Werte 1...2...3...4 ... weil ja jedes mal wenn Trigger für den Sensor ausgelöst wird eine "neue Instanz" ausgelöst wird und die Daten im einer Variable weg sind bzw neu gesetzt werden?und
Wie kann ich die Liste leeren, wenn ich den Mittelwert errechnet habe und von vorne anfangen möchte?
Und das ist derzeit das Ergebnis:

-
@paul53 said in 10 Werte, sortieren und nur die mittleren 6 nehmen:
Nimmt immer die 10 letzten Werte (gleitend), sortiert diese und lässt die Ausreißer weg.
So habe das eben noch ausprobiert. ....
Frage dazu:
Muss man die Werte nicht in einem Datenpunkt speichern ? Also Werte 1...2...3...4 ... weil ja jedes mal wenn Trigger für den Sensor ausgelöst wird eine "neue Instanz" ausgelöst wird und die Daten im einer Variable weg sind bzw neu gesetzt werden?und
Wie kann ich die Liste leeren, wenn ich den Mittelwert errechnet habe und von vorne anfangen möchte?
Und das ist derzeit das Ergebnis:

@michl75 sagte: Wie kann ich die Liste leeren, wenn ich den Mittelwert errechnet habe und von vorne anfangen möchte?
Du möchtest den Mittelwert nicht gleitend ermitteln, sondern wenn 10 Werte eingelesen wurden, von vorn beginnen?

In dem Fall braucht man die Listenwerte nicht in einem Datenpunkt speichern, denn sie bleiben bis zum nächsten Skriptstart erhalten.
-
@michl75 sagte: Wie kann ich die Liste leeren, wenn ich den Mittelwert errechnet habe und von vorne anfangen möchte?
Du möchtest den Mittelwert nicht gleitend ermitteln, sondern wenn 10 Werte eingelesen wurden, von vorn beginnen?

In dem Fall braucht man die Listenwerte nicht in einem Datenpunkt speichern, denn sie bleiben bis zum nächsten Skriptstart erhalten.
@paul53 Super... funktioniert nun viel besser als wenn ich "nur" 10 Werte sammel und diese dann auch durch 10 Teile, weil einfach diese Ausreißer da sind. Mit dieser Version habe ich deutlich bessere Werte ....
Vielen Dank!
Hab's noch biss angepasst, das ich auch Zwischenstände erhalte...

Werde es zur "Dokumentation des pH-Sensors" auch hinzufügen....
Nochmals vielen Dank für die Unterstützung!
Viele Grüße
M.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden