Blockly Average/Delta/Deviation/Variance

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

Antworten
Oekel
Beiträge: 142
Registriert: 28. Aug 2021 10:34
Answers: 0

Blockly Average/Delta/Deviation/Variance

Beitrag von Oekel »

Abizeit ist schon etwas her und ich wollte die Mathe-Themen noch mal nachschlagen. Tue mich aber etwas schwer damit.

Bezüglich:
https://www.openhab.org/docs/configurat ... tence.html

Durchschnitt ist ja klar ;)
Aber bereits bei Delta/Deviation wüsste ich jetzt nicht, wie der Rückgabewert berechnet wird.
Werden alle Werte beim Delta betrachtet, oder nur die min und max?
Wird bei der Deviation der letzte Wert mit dem Mittelwert verglichen, oder welcher?

Links zu allgemeinen (einfachen) Erklärungen wären sicherlich Hilfreich, aber die konkrete Implementierung ist vielleicht noch interessanter.

Hintergrund: Ich habe im Verteilerschrank einen SmartMeter und meine Waschmaschine auf Phase3 erkannt ;)
Da die normalen Plugs bei 10A zu ende sind und die Maschine 2400W braucht, möchte ich erst mal diesen Weg gehen. (Pieks beim Heizen sind 2200W am Anfang und am Ende sind einige Einweichphasen von 5min, so dass dort nur 50W Trommelbewegung messbar sind. Daher ist alles mit Mittelwert schon interessant.
--> Wann ist die Maschine fertig ;) ?

Oekel
Beiträge: 142
Registriert: 28. Aug 2021 10:34
Answers: 0

Re: Blockly Average/Delta/Deviation/Variance

Beitrag von Oekel »

Ein Blick in den Quellcode: https://github.com/carlossg/openhab/blo ... sions.java
Delta:

Code: Alles auswählen

HistoricItem itemThen = historicState(item, timestamp, serviceName);
if (itemThen != null) {
	DecimalType valueThen = (DecimalType) itemThen.getState();
	DecimalType valueNow = (DecimalType) item.getStateAs(DecimalType.class);
		
	if (( valueThen != null) && ( valueNow != null)) {
		result = new DecimalType(valueNow.doubleValue() - valueThen.doubleValue());
	};
}
Tatsächlich nur Zwei Werte, den jetzigen - den von vor x.

Code: Alles auswählen

double total = 0;
int quantity = 0;
DecimalType histValue = null;
while(it.hasNext()) {
	State state = it.next().getState();
	if (state instanceof DecimalType) {
		histValue = (DecimalType) state;
		total += Math.pow(histValue.doubleValue()- average.doubleValue(), 2);
		quantity++;
	}
}
...
double variance = total / quantity;
Also ist die Varianz = die "gemittelte" Summe aller (Abweichungen zum Durchschnitt)²

Code: Alles auswählen

deviation = Math.sqrt(variance.doubleValue());
...Deviation baut auf der Varianz auf und ist einfach nur ihre Quadratwurzel...

Aber auch wenn ich nun weiß wie die Funktionen mathematisch aufgebaut sind, weiß ich immer noch nicht für welchen praktischen Anwendungsfall ich es gebrauchen kann und wie dann die Schwellwerte aussehen, die ich zu erwarten habe.

LG
Zuletzt geändert von Oekel am 25. Jan 2022 21:00, insgesamt 2-mal geändert.

Benutzeravatar
udo1toni
Beiträge: 13983
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Blockly Average/Delta/Deviation/Variance

Beitrag von udo1toni »

Boah, Statistik... ganz lange her (> 32 a)...
Average ist der Mittelwert,
Deviation ist die Standardabweichung,
Variance ist ist die Varianz,
Delta ... Öhm... vermutlich der Bereich...

Die Varianz beschreibt die Streubreite der Werte um den Mittelwert, die Standardabweichung ist in dem Zusammenhang quasi die gemittelte Abweichung und das Delta ist dann Abstand Minimalwert zu Maximalwert.
Sicher bin ich mir da nicht. Und wann Du welchen der Werte brauchst, ist dann noch mal die nächste Frage, letztlich sind es Statistik-Funktionen, die vermutlich vor allem zur Auswertung von Wetter und anderen Messwerten interessant sein dürften.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Oekel
Beiträge: 142
Registriert: 28. Aug 2021 10:34
Answers: 0

Re: Blockly Average/Delta/Deviation/Variance

Beitrag von Oekel »

udo1toni hat geschrieben: 25. Jan 2022 20:02 Delta ist dann Abstand Minimalwert zu Maximalwert.
Nein, dachte ich auch erst.
Es ist der Abstand des jetzigen Wertes zum Wert vor x Minuten. Also nicht von min. & max. (siehe Quellcode).

Benutzeravatar
udo1toni
Beiträge: 13983
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Blockly Average/Delta/Deviation/Variance

Beitrag von udo1toni »

Oekel hat geschrieben: 25. Jan 2022 21:02 Es ist der Abstand des jetzigen Wertes zum Wert vor x Minuten. Also nicht von min. & max. (siehe Quellcode).
Ah. ja, das ist ja auch ok.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Blockly Average/Delta/Deviation/Variance

Beitrag von peter-pan »

Wenn ich das richtig verstehe, was Tante Google dazu sagt und was mir noch so in Erinnerung ist, bedeutet "Delta" im wesentlichen die Differenz zwischen zwei Werten

https://www.helpster.de/delta-in-der-ma ... ung_213998
https://www.gabler-banklexikon.de/defin ... elta-56919
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Oekel
Beiträge: 142
Registriert: 28. Aug 2021 10:34
Answers: 0

Re: Blockly Average/Delta/Deviation/Variance

Beitrag von Oekel »

Aber um mal wieder zum Topic zurück zu kommen:
Wann würdet ihr Deviation/Variance einsetzen?

Antworten