Really?
I have a free account and use the forecast exactly for the same purpose.
I must admit, that it’s complicated to use the hourly FC and put it into a daily FC, but here is how I do it:
items:
/******************************************* Weather (OWM) **********************************************/
String W_OWM_Key "OWM API Key" (G_jdbc)
Switch WeatherThing "Wetter" (G_jdbc,G_Things,Group_HabPanel_Dashboard)
// Open Weather Map
Number:Temperature W_OWM_Temp "Temperature [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#temperature"}
Number:Dimensionless W_OWM_Humidity "Humidity [%d %unit%]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#humidity"}
Number:Length W_OWM_Rain "Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:current#rain"}
Number:Speed W_OWM_Wind_Speed "Wind Speed [%d %unit%]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#wind-speed"}
Number W_OWM_Wind_Dir "W Dir [SCALE(wind.scale):%s]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#wind-direction"}
String W_OWM_Station_Name "Station Name [%s]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:station#name"}
DateTime W_OWM_Time "Observation time" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#time-stamp"}
String W_OWM_Cond "Condition [%s]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#condition"}
String W_OWM_CondID "ConditionId [%s]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#condition-id"}
String W_OWM_CondID_Form "Cond Formatted" (G_jdbc)
Image W_OWM_CondIcon "Icon [%s]" {channel="openweathermap:weather-and-forecast:OWM:local:current#icon"}
String W_OWM_CondIconID "IconId [%s]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:OWM:local:current#icon-id"}
// ******* Forecast final items based on data below
Number:Temperature W_OWM_TempMinDay0 "Temp Min [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Temperature W_OWM_TempMinDay1 "Temp Min [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Temperature W_OWM_TempMinDay2 "Temp Min [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Temperature W_OWM_TempMinDay3 "Temp Min [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Temperature W_OWM_TempMaxDay0 "Temp Max [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Temperature W_OWM_TempMaxDay1 "Temp Max [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Temperature W_OWM_TempMaxDay2 "Temp Max [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Temperature W_OWM_TempMaxDay3 "Temp Max [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
DateTime W_OWM_TimeDay0 "FC Time" (G_jdbc,Group_HabPanel_Dashboard)
DateTime W_OWM_TimeDay1 "FC Time" (G_jdbc,Group_HabPanel_Dashboard)
DateTime W_OWM_TimeDay2 "FC Time" (G_jdbc,Group_HabPanel_Dashboard)
DateTime W_OWM_TimeDay3 "FC Time" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondDay0 "FC Cond" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondDay1 "FC Cond" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondDay2 "FC Cond" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondDay3 "FC Cond" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay0 "FC CondID" (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay1 "FC CondID" (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay2 "FC CondID" (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay3 "FC CondID" (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay0_Form "FC CondID" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay1_Form "FC CondID" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay2_Form "FC CondID" (G_jdbc,Group_HabPanel_Dashboard)
String W_OWM_CondIDDay3_Form "FC CondID" (G_jdbc,Group_HabPanel_Dashboard)
Number:Dimensionless W_OWM_CloudDay0 "FC Cloud [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Dimensionless W_OWM_CloudDay1 "FC Cloud [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Dimensionless W_OWM_CloudDay2 "FC Cloud [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Dimensionless W_OWM_CloudDay3 "FC Cloud [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Length W_OWM_RainDay0 "FC Rain [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Length W_OWM_RainDay1 "FC Rain [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Length W_OWM_RainDay2 "FC Rain [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
Number:Length W_OWM_RainDay3 "FC Rain [%.1f %unit%]" (G_jdbc,Group_HabPanel_Dashboard)
// ******* END of Forecast final items
// Forecast data 3 to 96 hrs for forecasting the daily items above
// G_W_Min0,G_W_Max0 are workarounds to get a min and max temp for the entire day. This will be done in rules once a day at 0 am
// This is neccessary to let the min / max value fit: e.g. today at 0 am: min / max of the next 24 hrs - this will not match if it's 12 pm for instance
// FC Temperature
Number:Temperature W_OWM_Temp3 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours03#temperature"}
Number:Temperature W_OWM_Temp6 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours06#temperature"}
Number:Temperature W_OWM_Temp9 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours09#temperature"}
Number:Temperature W_OWM_Temp12 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours12#temperature"}
Number:Temperature W_OWM_Temp15 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours15#temperature"}
Number:Temperature W_OWM_Temp18 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours18#temperature"}
Number:Temperature W_OWM_Temp21 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours21#temperature"}
Number:Temperature W_OWM_Temp24 "Temp [%.1f %unit%]" (G_Num,G_W_Min0,G_W_Max0) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours24#temperature"}
Number:Temperature W_OWM_Temp27 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours27#temperature"}
Number:Temperature W_OWM_Temp30 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours30#temperature"}
Number:Temperature W_OWM_Temp33 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours33#temperature"}
Number:Temperature W_OWM_Temp36 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours36#temperature"}
Number:Temperature W_OWM_Temp39 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours39#temperature"}
Number:Temperature W_OWM_Temp42 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours42#temperature"}
Number:Temperature W_OWM_Temp45 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours45#temperature"}
Number:Temperature W_OWM_Temp48 "Temp [%.1f %unit%]" (G_Num,G_W_Min1,G_W_Max1) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours48#temperature"}
Number:Temperature W_OWM_Temp51 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours51#temperature"}
Number:Temperature W_OWM_Temp54 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours54#temperature"}
Number:Temperature W_OWM_Temp57 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours57#temperature"}
Number:Temperature W_OWM_Temp60 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours60#temperature"}
Number:Temperature W_OWM_Temp63 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours63#temperature"}
Number:Temperature W_OWM_Temp66 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours66#temperature"}
Number:Temperature W_OWM_Temp69 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours69#temperature"}
Number:Temperature W_OWM_Temp72 "Temp [%.1f %unit%]" (G_Num,G_W_Min2,G_W_Max2) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours72#temperature"}
Number:Temperature W_OWM_Temp75 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours75#temperature"}
Number:Temperature W_OWM_Temp78 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours78#temperature"}
Number:Temperature W_OWM_Temp81 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours81#temperature"}
Number:Temperature W_OWM_Temp84 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours84#temperature"}
Number:Temperature W_OWM_Temp87 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours87#temperature"}
Number:Temperature W_OWM_Temp90 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours90#temperature"}
Number:Temperature W_OWM_Temp93 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours93#temperature"}
Number:Temperature W_OWM_Temp96 "Temp [%.1f %unit%]" (G_Num,G_W_Min3,G_W_Max3) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours96#temperature"}
// FC TimeStamp
DateTime W_OWM_Time3 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours03#time-stamp"}
DateTime W_OWM_Time6 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours06#time-stamp"}
DateTime W_OWM_Time9 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours09#time-stamp"}
DateTime W_OWM_Time12 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours12#time-stamp"}
DateTime W_OWM_Time15 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours15#time-stamp"}
DateTime W_OWM_Time18 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours18#time-stamp"}
DateTime W_OWM_Time21 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours21#time-stamp"}
DateTime W_OWM_Time24 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours24#time-stamp"}
DateTime W_OWM_Time27 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours27#time-stamp"}
DateTime W_OWM_Time30 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours30#time-stamp"}
DateTime W_OWM_Time33 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours33#time-stamp"}
DateTime W_OWM_Time36 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours36#time-stamp"}
DateTime W_OWM_Time39 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours39#time-stamp"}
DateTime W_OWM_Time42 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours42#time-stamp"}
DateTime W_OWM_Time45 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours45#time-stamp"}
DateTime W_OWM_Time48 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours48#time-stamp"}
DateTime W_OWM_Time51 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours51#time-stamp"}
DateTime W_OWM_Time54 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours54#time-stamp"}
DateTime W_OWM_Time57 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours57#time-stamp"}
DateTime W_OWM_Time60 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours60#time-stamp"}
DateTime W_OWM_Time63 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours63#time-stamp"}
DateTime W_OWM_Time66 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours66#time-stamp"}
DateTime W_OWM_Time69 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours69#time-stamp"}
DateTime W_OWM_Time72 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours72#time-stamp"}
DateTime W_OWM_Time75 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours75#time-stamp"}
DateTime W_OWM_Time78 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours78#time-stamp"}
DateTime W_OWM_Time81 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours81#time-stamp"}
DateTime W_OWM_Time84 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours84#time-stamp"}
DateTime W_OWM_Time87 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours87#time-stamp"}
DateTime W_OWM_Time90 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours90#time-stamp"}
DateTime W_OWM_Time93 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours93#time-stamp"}
DateTime W_OWM_Time96 "FC Time" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours96#time-stamp"}
// FC Condition
String W_OWM_Cond3 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours03#condition"}
String W_OWM_Cond6 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours06#condition"}
String W_OWM_Cond9 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours09#condition"}
String W_OWM_Cond12 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours12#condition"}
String W_OWM_Cond15 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours15#condition"}
String W_OWM_Cond18 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours18#condition"}
String W_OWM_Cond21 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours21#condition"}
String W_OWM_Cond24 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours24#condition"}
String W_OWM_Cond27 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours27#condition"}
String W_OWM_Cond30 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours30#condition"}
String W_OWM_Cond33 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours33#condition"}
String W_OWM_Cond36 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours36#condition"}
String W_OWM_Cond39 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours39#condition"}
String W_OWM_Cond42 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours42#condition"}
String W_OWM_Cond45 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours45#condition"}
String W_OWM_Cond48 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours48#condition"}
String W_OWM_Cond51 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours51#condition"}
String W_OWM_Cond54 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours54#condition"}
String W_OWM_Cond57 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours57#condition"}
String W_OWM_Cond60 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours60#condition"}
String W_OWM_Cond63 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours63#condition"}
String W_OWM_Cond66 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours66#condition"}
String W_OWM_Cond69 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours69#condition"}
String W_OWM_Cond72 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours72#condition"}
String W_OWM_Cond75 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours75#condition"}
String W_OWM_Cond78 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours78#condition"}
String W_OWM_Cond81 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours81#condition"}
String W_OWM_Cond84 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours84#condition"}
String W_OWM_Cond87 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours87#condition"}
String W_OWM_Cond90 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours90#condition"}
String W_OWM_Cond93 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours93#condition"}
String W_OWM_Cond96 "FC Cond" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours96#condition"}
// FC Condition ID
String W_OWM_CondID3 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours03#condition-id"}
String W_OWM_CondID6 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours06#condition-id"}
String W_OWM_CondID9 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours09#condition-id"}
String W_OWM_CondID12 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours12#condition-id"}
String W_OWM_CondID15 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours15#condition-id"}
String W_OWM_CondID18 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours18#condition-id"}
String W_OWM_CondID21 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours21#condition-id"}
String W_OWM_CondID24 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours24#condition-id"}
String W_OWM_CondID27 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours27#condition-id"}
String W_OWM_CondID30 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours30#condition-id"}
String W_OWM_CondID33 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours33#condition-id"}
String W_OWM_CondID36 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours36#condition-id"}
String W_OWM_CondID39 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours39#condition-id"}
String W_OWM_CondID42 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours42#condition-id"}
String W_OWM_CondID45 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours45#condition-id"}
String W_OWM_CondID48 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours48#condition-id"}
String W_OWM_CondID51 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours51#condition-id"}
String W_OWM_CondID54 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours54#condition-id"}
String W_OWM_CondID57 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours57#condition-id"}
String W_OWM_CondID60 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours60#condition-id"}
String W_OWM_CondID63 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours63#condition-id"}
String W_OWM_CondID66 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours66#condition-id"}
String W_OWM_CondID69 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours69#condition-id"}
String W_OWM_CondID72 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours72#condition-id"}
String W_OWM_CondID75 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours75#condition-id"}
String W_OWM_CondID78 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours78#condition-id"}
String W_OWM_CondID81 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours81#condition-id"}
String W_OWM_CondID84 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours84#condition-id"}
String W_OWM_CondID87 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours87#condition-id"}
String W_OWM_CondID90 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours90#condition-id"}
String W_OWM_CondID93 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours93#condition-id"}
String W_OWM_CondID96 "FC CondID" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours96#condition-id"}
// FC Cloudiness
Number:Dimensionless W_OWM_Cloud3 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours03#cloudiness"}
Number:Dimensionless W_OWM_Cloud6 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours06#cloudiness"}
Number:Dimensionless W_OWM_Cloud9 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours09#cloudiness"}
Number:Dimensionless W_OWM_Cloud12 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours12#cloudiness"}
Number:Dimensionless W_OWM_Cloud15 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours15#cloudiness"}
Number:Dimensionless W_OWM_Cloud18 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours18#cloudiness"}
Number:Dimensionless W_OWM_Cloud21 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours21#cloudiness"}
Number:Dimensionless W_OWM_Cloud24 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours24#cloudiness"}
Number:Dimensionless W_OWM_Cloud27 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours27#cloudiness"}
Number:Dimensionless W_OWM_Cloud30 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours30#cloudiness"}
Number:Dimensionless W_OWM_Cloud33 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours33#cloudiness"}
Number:Dimensionless W_OWM_Cloud36 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours36#cloudiness"}
Number:Dimensionless W_OWM_Cloud39 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours39#cloudiness"}
Number:Dimensionless W_OWM_Cloud42 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours42#cloudiness"}
Number:Dimensionless W_OWM_Cloud45 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours45#cloudiness"}
Number:Dimensionless W_OWM_Cloud48 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours48#cloudiness"}
Number:Dimensionless W_OWM_Cloud51 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours51#cloudiness"}
Number:Dimensionless W_OWM_Cloud54 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours54#cloudiness"}
Number:Dimensionless W_OWM_Cloud57 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours57#cloudiness"}
Number:Dimensionless W_OWM_Cloud60 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours60#cloudiness"}
Number:Dimensionless W_OWM_Cloud63 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours63#cloudiness"}
Number:Dimensionless W_OWM_Cloud66 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours66#cloudiness"}
Number:Dimensionless W_OWM_Cloud69 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours69#cloudiness"}
Number:Dimensionless W_OWM_Cloud72 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours72#cloudiness"}
Number:Dimensionless W_OWM_Cloud75 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours75#cloudiness"}
Number:Dimensionless W_OWM_Cloud78 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours78#cloudiness"}
Number:Dimensionless W_OWM_Cloud81 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours81#cloudiness"}
Number:Dimensionless W_OWM_Cloud84 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours84#cloudiness"}
Number:Dimensionless W_OWM_Cloud87 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours87#cloudiness"}
Number:Dimensionless W_OWM_Cloud90 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours90#cloudiness"}
Number:Dimensionless W_OWM_Cloud93 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours93#cloudiness"}
Number:Dimensionless W_OWM_Cloud96 "Bewölkung [%.d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours96#cloudiness"}
// FC Rain forecast - sums up rain 3 hrs before this point in time in mm
Number:Length W_OWM_Rain3 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours03#rain"}
Number:Length W_OWM_Rain6 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours06#rain"}
Number:Length W_OWM_Rain9 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours09#rain"}
Number:Length W_OWM_Rain12 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours12#rain"}
Number:Length W_OWM_Rain15 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours15#rain"}
Number:Length W_OWM_Rain18 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours18#rain"}
Number:Length W_OWM_Rain21 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours21#rain"}
Number:Length W_OWM_Rain24 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours24#rain"}
Number:Length W_OWM_Rain27 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours27#rain"}
Number:Length W_OWM_Rain30 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours30#rain"}
Number:Length W_OWM_Rain33 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours33#rain"}
Number:Length W_OWM_Rain36 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours36#rain"}
Number:Length W_OWM_Rain39 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours39#rain"}
Number:Length W_OWM_Rain42 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours42#rain"}
Number:Length W_OWM_Rain45 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours45#rain"}
Number:Length W_OWM_Rain48 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours48#rain"}
Number:Length W_OWM_Rain51 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours51#rain"}
Number:Length W_OWM_Rain54 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours54#rain"}
Number:Length W_OWM_Rain57 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours57#rain"}
Number:Length W_OWM_Rain60 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours60#rain"}
Number:Length W_OWM_Rain63 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours63#rain"}
Number:Length W_OWM_Rain66 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours66#rain"}
Number:Length W_OWM_Rain69 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours69#rain"}
Number:Length W_OWM_Rain72 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours72#rain"}
Number:Length W_OWM_Rain75 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours75#rain"}
Number:Length W_OWM_Rain78 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours78#rain"}
Number:Length W_OWM_Rain81 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours81#rain"}
Number:Length W_OWM_Rain84 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours84#rain"}
Number:Length W_OWM_Rain87 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours87#rain"}
Number:Length W_OWM_Rain90 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours90#rain"}
Number:Length W_OWM_Rain93 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours93#rain"}
Number:Length W_OWM_Rain96 "FC Rain [%d %unit%]" (G_jdbc) {channel="openweathermap:weather-and-forecast:OWM:local:forecastHours96#rain"}
rules:
// ***************** Extract Data from OWM hourly forecast into daily forecast
import org.eclipse.smarthome.model.script.ScriptServiceUtil
rule "daily forecast for DayX"
when
// Item Trigger_Debug changed or
Time cron "01 01 * * * ?" // every hour at x:01:01
// Item W_OWM_ObservationTime changed
then
var i = 0
while ((i=i+1) < 5) {
var j = i-1
// check actual hour
var Number hour = now.getHourOfDay
var max = (((j * 24) + 12 - hour) / 3)
var l = Math::round(max.floatValue)
val int y = l * 3
if(y > 0) { // means it's before 12 pm
if(now.getHourOfDay == 0) { // at 0 am for min max temps of the entire day arranged in groups over 24 hrs
// TempMin
var tempMin = "G_W_Min" + j.toString // create item name string from prefix and approx hour for forecast
val tempMinItem = ScriptServiceUtil.getItemRegistry.getItem(tempMin)
var tempMinDay = "W_OWM_TempMinDay" + j.toString // create item name string from FC prefix and FC Day No
val tempMinDayItem = ScriptServiceUtil.getItemRegistry.getItem(tempMinDay)
tempMinDayItem.postUpdate(tempMinItem.state) // postUpdate to W_OWM_TempMinDay i with data from W_OWM_Time in x hours
// TempMax
var tempMax = "G_W_Max" + j.toString // get max value for the group covering
val tempMaxItem = ScriptServiceUtil.getItemRegistry.getItem(tempMax)
var tempMaxDay = "W_OWM_TempMaxDay" + j.toString // create item name string from FC prefix and FC Day No
val tempMaxDayItem = ScriptServiceUtil.getItemRegistry.getItem(tempMaxDay)
tempMaxDayItem.postUpdate(tempMaxItem.state) // postUpdate to W_OWM_TempMaxDay i with data from W_OWM_Time in x hours
}
else { // means y >= 0 && x >= 0, so before 4 am (and 12 pm)
// Time
var time = "W_OWM_Time" + y.toString // create item name string from prefix and approx hour for forecast
val timeItem = ScriptServiceUtil.getItemRegistry.getItem(time)
var timeDay = "W_OWM_TimeDay" + j.toString // create item name string from FC prefix and FC Day No
val timeDayItem = ScriptServiceUtil.getItemRegistry.getItem(timeDay)
timeDayItem.postUpdate(timeItem.state) // postUpdate to W_OWM_TimeDay i with data from W_OWM_Time in x hours
// Cond
var cond = "W_OWM_Cond" + y.toString // create item name string from prefix and approx hour for forecast
val condItem = ScriptServiceUtil.getItemRegistry.getItem(cond)
var condDay = "W_OWM_CondDay" + j.toString // create item name string from FC prefix and FC Day No
val condDayItem = ScriptServiceUtil.getItemRegistry.getItem(condDay)
condDayItem.postUpdate(condItem.state) // postUpdate to W_OWM_CondDay i with data from W_OWM_Time in x hours
// CondID
var condID = "W_OWM_CondID" + y.toString // create item name string from prefix and approx hour for forecast
val condIDItem = ScriptServiceUtil.getItemRegistry.getItem(condID)
var condIDDay = "W_OWM_CondIDDay" + j.toString // create item name string from FC prefix and FC Day No
val condIDDayItem = ScriptServiceUtil.getItemRegistry.getItem(condIDDay)
condIDDayItem.postUpdate(condIDItem.state) // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
// Clouds
var cloud = "W_OWM_Cloud" + y.toString // create item name string from prefix and approx hour for forecast
val cloudItem = ScriptServiceUtil.getItemRegistry.getItem(cloud)
var cloudDay = "W_OWM_CloudDay" + j.toString // create item name string from FC prefix and FC Day No
val cloudDayItem = ScriptServiceUtil.getItemRegistry.getItem(cloudDay)
cloudDayItem.postUpdate(cloudItem.state) // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
// Rain
var rain = "W_OWM_Rain" + y.toString // create item name string from prefix and approx hour for forecast
val rainItem = ScriptServiceUtil.getItemRegistry.getItem(rain)
var rainDay = "W_OWM_RainDay" + j.toString // create item name string from FC prefix and FC Day No
val rainDayItem = ScriptServiceUtil.getItemRegistry.getItem(rainDay)
rainDayItem.postUpdate(rainItem.state) // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
}
}
else { // means y < 0, so after 12 pm (and x < 0 anyway)
if(j != 0) {
// Time
var time = "W_OWM_Time" + y.toString // create item name string from prefix and approx hour for forecast
val timeItem = ScriptServiceUtil.getItemRegistry.getItem(time)
var timeDay = "W_OWM_TimeDay" + j.toString // create item name string from FC prefix and FC Day No
val timeDayItem = ScriptServiceUtil.getItemRegistry.getItem(timeDay)
timeDayItem.postUpdate(timeItem.state) // postUpdate to W_OWM_TimeDay i with data from W_OWM_Time in x hours
// Cond
var cond = "W_OWM_Cond" + y.toString // create item name string from prefix and approx hour for forecast
val condItem = ScriptServiceUtil.getItemRegistry.getItem(cond)
var condDay = "W_OWM_CondDay" + j.toString // create item name string from FC prefix and FC Day No
val condDayItem = ScriptServiceUtil.getItemRegistry.getItem(condDay)
condDayItem.postUpdate(condItem.state) // postUpdate to W_OWM_CondDay i with data from W_OWM_Time in x hours
// CondID
var condID = "W_OWM_CondID" + y.toString // create item name string from prefix and approx hour for forecast
val condIDItem = ScriptServiceUtil.getItemRegistry.getItem(condID)
var condIDDay = "W_OWM_CondIDDay" + j.toString // create item name string from FC prefix and FC Day No
val condIDDayItem = ScriptServiceUtil.getItemRegistry.getItem(condIDDay)
condIDDayItem.postUpdate(condIDItem.state) // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
// Clouds
var cloud = "W_OWM_Cloud" + y.toString // create item name string from prefix and approx hour for forecast
val cloudItem = ScriptServiceUtil.getItemRegistry.getItem(cloud)
var cloudDay = "W_OWM_CloudDay" + j.toString // create item name string from FC prefix and FC Day No
val cloudDayItem = ScriptServiceUtil.getItemRegistry.getItem(cloudDay)
cloudDayItem.postUpdate(cloudItem.state) // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
// Rain
var rain = "W_OWM_Rain" + y.toString // create item name string from prefix and approx hour for forecast
val rainItem = ScriptServiceUtil.getItemRegistry.getItem(rain)
var rainDay = "W_OWM_RainDay" + j.toString // create item name string from FC prefix and FC Day No
val rainDayItem = ScriptServiceUtil.getItemRegistry.getItem(rainDay)
rainDayItem.postUpdate(rainItem.state) // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
}
}
}
// logInfo("+++ WEATHER", "Weather Forecast updated.")
end
// **************** END of OWM Stuff