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