Seite 1 von 1
mathematische Formeln darstellen
Verfasst: 30. Jan 2019 12:50
von madmike
Hallo zusammen,
weiß jemand wie man aus vorhanden Zahlenwerten und einer mathematischen Formel ein neuen Eintrag erstellt ????
mfg
Madmike
Re: mathematische Formeln darstellen
Verfasst: 30. Jan 2019 14:56
von seppy
Hi,
meinst Du in einer Rule? Und welche Formlen schweben Dir denn vor?
Ich würde mal aus dem Bauch heraus sagen, in einer Rule ein neues Item mit Deinem berechneten Wert beglücken?
Grüße,
Seppy
Re: mathematische Formeln darstellen
Verfasst: 30. Jan 2019 15:28
von madmike
hallo seppy,
ja genau spannenderweise habe ich in einem anderen Thread genau das bekommen was ich suchte. es ging um die Berechnung der "gefühlten Temperatur".
Mathematisch setzt sich das Ganze aus folgender Formel zusammen:
Gefühlte Temperatur=W
Temperatur=T
Windgeschwindigkeit=V
W= 13,12 +0,6215 x T -11,37 x Vhoch0,16 + 0,3965 x T x Vhoch0,16
Ich habe eine Rule bekommen, die funktioniert Top. Dennoch würde ich gerne verstehen, wie die Werte zustande kommen.
Das wäre die Rule:
Code: Alles auswählen
var chillCount = 4
rule "Windchill_Calculate" // thx to @Udo_Hartmann for the Rule-Body and @dmaillie for the math-stuff - 2019-01-13
when
Item localCurrentTemperature received update
then
if(!(localCurrentWindSpeed.state instanceof Number))
{
logWarn("windchill","Windspeed not of Type Number!")
return;
}
if(!(localCurrentTemperature.state instanceof Number))
{
logWarn("windchill","Temperature not of Type Number!")
return;
}
var speedCurrent = Math.pow((((localCurrentWindSpeed.state as Number).floatValue) * 3.6), 0.16)
//logInfo("windchill","Speed: " + speedCurrent)
var tempCurrent = (localCurrentTemperature.state as Number).floatValue
//logInfo("windchill","Temp: " + tempCurrent)
owm_localCurrentWindchill.postUpdate(13.12 + 0.6215 * tempCurrent - 11.37 * speedCurrent + 0.3965 * tempCurrent * speedCurrent )
chillCount ++
if (chillCount >= 4) // logInfo every 2 hours (or every 4th time) - Temperature is updated every 30 Minutes by another Rule/Binding(localCurrentTemperature)
{
logInfo("windchill"," I'm still alive")
chillCount = 0
}
end
Danke an alle für die Unterstützung im Voraus !
mfg
madmike
Re: mathematische Formeln darstellen
Verfasst: 30. Jan 2019 18:09
von peter-pan
Hallo Micha,
schau doch mal hier bei Wikipedia:
https://de.wikipedia.org/wiki/Windchill, da gibt es die allgemeine Formel und dann noch hier
https://community.openhab.org/t/solved- ... hill/63884, da kannst du die Entstehung der Rule mitverfolgen.
Ich glaube dass, das alles ok ist, auch wenn ich den einen Wert (3,6) nicht interpretieren kann.
Gruss - Peter
Re: mathematische Formeln darstellen
Verfasst: 30. Jan 2019 18:54
von madmike
Erstmal vielen Dank für Dein schnelles Feedback,
es kommt dunkel ins Licht !!!
Die 3.6 ist der Umrechnungsfaktor von m/s auf km/h 60x60 / 1000 =3,6
Ich prüfe gerade mal ob man Ihn braucht, da wir die Wetterdaten eh als km/h bekommen, dann müsste dort der Wert 1.0 stehen.
Sobald ich was weiss melde ich mich !
mfg
Micha
Re: mathematische Formeln darstellen
Verfasst: 30. Jan 2019 19:12
von madmike
Hallo Peter,
ich habe den Wert 3.6 gegen 1.0 ersetzt und bin mit den Werten deutlich dichter an den Werten meiner HandyApp.
hier ein Link mit Erklärung der Formel und welche Einheiten genommen werden:
https://www.welt.de/wissenschaft/articl ... -kann.html.
mfg
Micha
Re: mathematische Formeln darstellen
Verfasst: 30. Jan 2019 20:27
von peter-pan
Hallo Micha,
ich hab nochmal im internationalen Forum geschaut. Tatsächlich hat David
Code: Alles auswählen
Number OWM_Current_Windspeed "Current Wind Speed [%.1f m/s]" <wind>
(Weather)
{ channel="openweathermap:weather-and-forecast:86b42b76:local:current#wind-speed" }
dieses Item genommen, also Meter/Sek. genommen.
Na, dann mach ich da auch mal ne 1 draus.
Gruss - Peter