Hi all,
Has anyone already done something like this, or has an idea how to do it…
if you read 37C and 63% humidity on your smart home sensor, this would make “feels like” 53C
according to this https://www.calculator.net/heat-index-calculator.html
is there a way to do this in openhab, anyone knows a magic formula and how to use it in a rule?
One listed in your link looks promising… Give ir a try in a rule. the forum is to help you develop a solution, not provide a complete one. You need to understand your system to properly maintain it.
The formula below approximates the heat index in degrees Fahrenheit, to within ±1.3 °F (0.7 °C). It is the result of a multivariate fit (temperature equal to or greater than 80 °F (27 °C) and relative humidity equal to or greater than 40%) to a model of the human body.[[1]](https://en.wikipedia.org/wiki/Heat_index#cite_note-SteadmanI-1)[[13]](https://en.wikipedia.org/wiki/Heat_index#cite_note-13) This equation reproduces the above NOAA National Weather Service table (except the values at 90 °F (32 °C) & 45%/70% relative humidity vary unrounded by less than ±1, respectively).
thanks, i managed to find it by searching forum for humidex or heat index what was suggested, not sure who’s post I found, maybe yours
this is my rule
rule "set FeelTemperature"
when
Item BalconyTemperature changed or
Item BalconyHumidity changed
then
var Number Temp = BalconyTemperature.state as DecimalType
var Number Humidity = BalconyHumidity.state as DecimalType
var Number T = Temp * 9/5 + 32
var Number RH = Humidity
var Number HI = 0;
if(T <= 40.0) {
HI = T
} else {
HI = -42.379 + 2.04901523*T + 10.14333127*RH - 0.22475541*T*RH - 0.00683783*T*T - 0.05481717*RH*RH + 0.00122874*T*T*RH + 0.00085282*T*RH*RH - 0.00000199*T*T*RH*RH
if (RH < 13 && T >= 80 && T <= 112) {
var adjust = ((13-RH)/4) * Math.sqrt(17-Math.abs(T-95)/17)
HI -= adjust
} else if (RH > 85 && T >= 80 && T <= 87) {
var adjust = ((RH-85)/10) * ((87-T)/5)
HI += adjust
} else if (T < 80){
HI = 0.5 * (T + 61.0 + ((T-68.0)*1.2) + (RH*0.094))
}
}
var Number RealFeelTemp = (HI - 32) * 5/9
FeelTemperature.postUpdate(RealFeelTemp)
end