UI Widget: Weather

great, much appreciated.

Someone should check this config based arrengement, but it should work for most of the provided channel-data. If something is missing or wrong please tell me.

openweathermap.things:
you have to fill in yourAPIkey
and your location in latlong at xx.xxx,xx.xxx

Bridge openweathermap:weather-api:api "OpenWeatherMap Account" [apikey="yourAPIkey", refreshInterval=10, language="de"] 
    {
    //Thing onecall local "Local Weather and Forecast" [location="xx.xxx,xx.xxx"]
    Thing weatherandforecast local "Local Weather And Forecast" [location="xx.xxx,xx.xxx", forecastDays=4]
    Thing onecall local "OneCall API" [location="xx.xxx,xx.xxx", forecastHours=48, forecastDays=7]
    }

openweathermap.items: (part1)
item localCurrent_StationName doesn’t work in my case, but I was to lazy to fix this :slight_smile:

//Current Weather
Group                   localCurrent_Weather
String                  localCurrent_StationName "Name [%s]"                                                                         (localCurrent_Weather) { channel="openweathermap:weather-and-forecast:api:local:station#name" }
DateTime                localCurrent_LastMeasurement "Timestamp of Last Measurement [%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS]" <time>    (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#time-stamp" }
DateTime                localCurrent_TodaySunrise "Todays Sunrise [%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS]" <time>                      (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#sunrise" }
DateTime                localCurrent_TodaySunset "Todays Sunset [%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS]"  <time>                       (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#sunset" }
String                  localCurrent_Condition "Current Condition [%s]" <sun_clouds>                                                 (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#condition" }
Image                   localCurrent_Icon "Icon"                                                                                     (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#icon" }
String                  localCurrent_Iconid "[%s]"                                                                                   (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#icon-id" }

Number:Temperature      localCurrent_Temperature "Current Temperature [%.1f %unit%]" <temperature>                                   (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#temperature" }
Number:Temperature      localCurrent_Apparenttemperature "Current Apparent Temperature [%.1f %unit%]" <temperature>                  (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#apparent-temperature" }
Number:Pressure         localCurrent_Pressure "Current barometric Pressure [%.1f %unit%]" <pressure>                                 (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#pressure" }
Number:Dimensionless    localCurrent_Humidity "Current atmospheric Humidity [%d %unit%]" <humidity>                                  (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#humidity" }
Number:Speed            localCurrent_Windspeed "Current wind Speed [%.1f km/h]" <wind>                                               (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#wind-speed" }
Number:Angle            localCurrent_WindDirection "Current wind Direction [%d %unit%]" <wind>                                       (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#wind-direction" }
Number:Speed            localCurrent_GustSpeed  "Current Gust Speed [%.1f km/h]" <wind>                                              (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#gust-speed" }
Number:Dimensionless    localCurrent_Cloudiness "Current cloudiness [%d %unit%]" <clouds>                                            (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#cloudiness" }
Number:Length           localCurrent_RainVolume "Current rain volume [%.1f %unit%]" <rain>                                           (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#rain" }
Number:Length           localCurrent_SnowVolume "Current snow volume [%.1f %unit%]" <snow>                                           (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#snow" }
Number:Length           localCurrent_Visibility "Current visibility [%.1f km]" <visibility>                                          (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#visibility" }
Number:Dimensionless    localCurrent_Uvindex "Current UV Index [%d]"                                                                 (localCurrent_Weather) { channel="openweathermap:onecall:api:local:current#uvindex" }

//Forecast 1 hour
Group                   localForecastHours01
DateTime                localForecastHours01_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>     (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#time-stamp" }
String                  localForecastHours01_Condition "Condition [%s]" <sun_clouds>                                   (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#condition" }
Image                   localForecastHours01_ConditionIcon "Icon"                                                      (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#icon" }
Number:Temperature      localForecastHours01_Temperature "Temperature [%.1f %unit%]" <temperature>                     (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#temperature" }
Number:Temperature      localForecastHours01_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature>   (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#apparent-temperature" }
Number:Pressure         localForecastHours01_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>                 (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#pressure" }
Number:Dimensionless    localForecastHours01_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                   (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#humidity" }
Number:Speed            localForecastHours01_Windspeed  "Wind speed [%.1f km/h]"   <wind>                              (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#wind-speed" }
Number:Angle            localForecastHours01_WindDirection  "Wind direction [%d %unit%]"  <wind>                       (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#wind-direction" }
Number:Speed            localForecastHours01_GustSpeed "Gust speed [%.1f km/h]" <wind>                                 (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#gust-speed" }
Number:Dimensionless    localForecastHours01_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                            (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#cloudiness" }
Number:Length           localForecastHours01_RainVolume "Rain volume [%.1f %unit%]"  <rain>                            (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#rain" }
Number:Length           localForecastHours01_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                            (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#snow" }
//Number:Length           localForecastHours01_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#visibility" }
Number:Dimensionless    localForecastHours01_Precipprobability "Precipitation probability [%.0f]"                      (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#precip-probability" }
String                  localForecastHours01_Iconid "[%s]"                                                             (localForecastHours01) { channel="openweathermap:onecall:api:local:forecastHours01#icon-id" }

//Forecast 2 hours
Group                   localForecastHours02
DateTime                localForecastHours02_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#time-stamp" }
String                  localForecastHours02_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#condition" }
Image                   localForecastHours02_ConditionIcon "Icon"                                                    (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#icon" }
Number:Temperature      localForecastHours02_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#temperature" }
Number:Temperature      localForecastHours02_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#apparent-temperature" }
Number:Pressure         localForecastHours02_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#pressure" }
Number:Dimensionless    localForecastHours02_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#humidity" }
Number:Speed            localForecastHours02_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#wind-speed" }
Number:Angle            localForecastHours02_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#wind-direction" }
Number:Speed            localForecastHours02_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#gust-speed" }
Number:Dimensionless    localForecastHours02_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#cloudiness" }
Number:Length           localForecastHours02_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#rain" }
Number:Length           localForecastHours02_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#snow" }
//Number:Length           localForecastHours02_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#visibility" }
Number:Dimensionless    localForecastHours02_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#precip-probability" }
String                  localForecastHours02_Iconid "[%s]"                                                           (localForecastHours02) { channel="openweathermap:onecall:api:local:forecastHours02#icon-id" }

//Forecast 3 hours
Group                   localForecastHours03
DateTime                localForecastHours03_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#time-stamp" }
String                  localForecastHours03_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#condition" }
Image                   localForecastHours03_ConditionIcon "Icon"                                                    (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#icon" }
Number:Temperature      localForecastHours03_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#temperature" }
Number:Temperature      localForecastHours03_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#apparent-temperature" }
Number:Pressure         localForecastHours03_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#pressure" }
Number:Dimensionless    localForecastHours03_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#humidity" }
Number:Speed            localForecastHours03_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#wind-speed" }
Number:Angle            localForecastHours03_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#wind-direction" }
Number:Speed            localForecastHours03_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#gust-speed" }
Number:Dimensionless    localForecastHours03_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#cloudiness" }
Number:Length           localForecastHours03_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#rain" }
Number:Length           localForecastHours03_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#snow" }
//Number:Length           localForecastHours03_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#visibility" }
Number:Dimensionless    localForecastHours03_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#precip-probability" }
String                  localForecastHours03_Iconid "[%s]"                                                           (localForecastHours03) { channel="openweathermap:onecall:api:local:forecastHours03#icon-id" }

//Forecast 4 hours
Group                   localForecastHours04
DateTime                localForecastHours04_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#time-stamp" }
String                  localForecastHours04_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#condition" }
Image                   localForecastHours04_ConditionIcon "Icon"                                                    (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#icon" }
Number:Temperature      localForecastHours04_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#temperature" }
Number:Temperature      localForecastHours04_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#apparent-temperature" }
Number:Pressure         localForecastHours04_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#pressure" }
Number:Dimensionless    localForecastHours04_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#humidity" }
Number:Speed            localForecastHours04_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#wind-speed" }
Number:Angle            localForecastHours04_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#wind-direction" }
Number:Speed            localForecastHours04_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#gust-speed" }
Number:Dimensionless    localForecastHours04_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#cloudiness" }
Number:Length           localForecastHours04_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#rain" }
Number:Length           localForecastHours04_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#snow" }
//Number:Length           localForecastHours04_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#visibility" }
Number:Dimensionless    localForecastHours04_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#precip-probability" }
String                  localForecastHours04_Iconid "[%s]"                                                           (localForecastHours04) { channel="openweathermap:onecall:api:local:forecastHours04#icon-id" }

//Forecast 5 hours
Group                   localForecastHours05
DateTime                localForecastHours05_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#time-stamp" }
String                  localForecastHours05_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#condition" }
Image                   localForecastHours05_ConditionIcon "Icon"                                                    (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#icon" }
Number:Temperature      localForecastHours05_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#temperature" }
Number:Temperature      localForecastHours05_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#apparent-temperature" }
Number:Pressure         localForecastHours05_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#pressure" }
Number:Dimensionless    localForecastHours05_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#humidity" }
Number:Speed            localForecastHours05_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#wind-speed" }
Number:Angle            localForecastHours05_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#wind-direction" }
Number:Speed            localForecastHours05_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#gust-speed" }
Number:Dimensionless    localForecastHours05_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#cloudiness" }
Number:Length           localForecastHours05_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#rain" }
Number:Length           localForecastHours05_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#snow" }
//Number:Length           localForecastHours05_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#visibility" }
Number:Dimensionless    localForecastHours05_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#precip-probability" }
String                  localForecastHours05_Iconid "[%s]"                                                           (localForecastHours05) { channel="openweathermap:onecall:api:local:forecastHours05#icon-id" }

//Forecast 6 hours
Group                   localForecastHours06
DateTime                localForecastHours06_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#time-stamp" }
String                  localForecastHours06_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#condition" }
Image                   localForecastHours06_ConditionIcon "Icon"                                                    (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#icon" }
Number:Temperature      localForecastHours06_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#temperature" }
Number:Temperature      localForecastHours06_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#apparent-temperature" }
Number:Pressure         localForecastHours06_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#pressure" }
Number:Dimensionless    localForecastHours06_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#humidity" }
Number:Speed            localForecastHours06_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#wind-speed" }
Number:Angle            localForecastHours06_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#wind-direction" }
Number:Speed            localForecastHours06_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#gust-speed" }
Number:Dimensionless    localForecastHours06_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#cloudiness" }
Number:Length           localForecastHours06_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#rain" }
Number:Length           localForecastHours06_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#snow" }
//Number:Length           localForecastHours06_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#visibility" }
Number:Dimensionless    localForecastHours06_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#precip-probability" }
String                  localForecastHours06_Iconid "[%s]"                                                           (localForecastHours06) { channel="openweathermap:onecall:api:local:forecastHours06#icon-id" }

//Forecast 7 hours
Group                   localForecastHours07
DateTime                localForecastHours07_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#time-stamp" }
String                  localForecastHours07_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#condition" }
Image                   localForecastHours07_ConditionIcon "Icon"                                                    (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#icon" }
Number:Temperature      localForecastHours07_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#temperature" }
Number:Temperature      localForecastHours07_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#apparent-temperature" }
Number:Pressure         localForecastHours07_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#pressure" }
Number:Dimensionless    localForecastHours07_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#humidity" }
Number:Speed            localForecastHours07_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#wind-speed" }
Number:Angle            localForecastHours07_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#wind-direction" }
Number:Speed            localForecastHours07_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#gust-speed" }
Number:Dimensionless    localForecastHours07_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#cloudiness" }
Number:Length           localForecastHours07_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#rain" }
Number:Length           localForecastHours07_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#snow" }
//Number:Length           localForecastHours07_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#visibility" }
Number:Dimensionless    localForecastHours07_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#precip-probability" }
String                  localForecastHours07_Iconid "[%s]"                                                           (localForecastHours07) { channel="openweathermap:onecall:api:local:forecastHours07#icon-id" }

//Forecast 8 hours
Group                   localForecastHours08
DateTime                localForecastHours08_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#time-stamp" }
String                  localForecastHours08_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#condition" }
Image                   localForecastHours08_ConditionIcon "Icon"                                                    (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#icon" }
Number:Temperature      localForecastHours08_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#temperature" }
Number:Temperature      localForecastHours08_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#apparent-temperature" }
Number:Pressure         localForecastHours08_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#pressure" }
Number:Dimensionless    localForecastHours08_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#humidity" }
Number:Speed            localForecastHours08_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#wind-speed" }
Number:Angle            localForecastHours08_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#wind-direction" }
Number:Speed            localForecastHours08_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#gust-speed" }
Number:Dimensionless    localForecastHours08_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#cloudiness" }
Number:Length           localForecastHours08_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#rain" }
Number:Length           localForecastHours08_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#snow" }
//Number:Length           localForecastHours08_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#visibility" }
Number:Dimensionless    localForecastHours08_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#precip-probability" }
String                  localForecastHours08_Iconid "[%s]"                                                           (localForecastHours08) { channel="openweathermap:onecall:api:local:forecastHours08#icon-id" }

//Forecast 9 hours
Group                   localForecastHours09
DateTime                localForecastHours09_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#time-stamp" }
String                  localForecastHours09_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#condition" }
Image                   localForecastHours09_ConditionIcon "Icon"                                                    (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#icon" }
Number:Temperature      localForecastHours09_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#temperature" }
Number:Temperature      localForecastHours09_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#apparent-temperature" }
Number:Pressure         localForecastHours09_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#pressure" }
Number:Dimensionless    localForecastHours09_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#humidity" }
Number:Speed            localForecastHours09_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#wind-speed" }
Number:Angle            localForecastHours09_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#wind-direction" }
Number:Speed            localForecastHours09_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#gust-speed" }
Number:Dimensionless    localForecastHours09_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#cloudiness" }
Number:Length           localForecastHours09_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#rain" }
Number:Length           localForecastHours09_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#snow" }
//Number:Length           localForecastHours09_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#visibility" }
Number:Dimensionless    localForecastHours09_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#precip-probability" }
String                  localForecastHours09_Iconid "[%s]"                                                           (localForecastHours09) { channel="openweathermap:onecall:api:local:forecastHours09#icon-id" }

//Forecast 10 hours
Group                   localForecastHours10
DateTime                localForecastHours10_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#time-stamp" }
String                  localForecastHours10_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#condition" }
Image                   localForecastHours10_ConditionIcon "Icon"                                                    (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#icon" }
Number:Temperature      localForecastHours10_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#temperature" }
Number:Temperature      localForecastHours10_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#apparent-temperature" }
Number:Pressure         localForecastHours10_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#pressure" }
Number:Dimensionless    localForecastHours10_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#humidity" }
Number:Speed            localForecastHours10_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#wind-speed" }
Number:Angle            localForecastHours10_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#wind-direction" }
Number:Speed            localForecastHours10_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#gust-speed" }
Number:Dimensionless    localForecastHours10_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#cloudiness" }
Number:Length           localForecastHours10_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#rain" }
Number:Length           localForecastHours10_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#snow" }
//Number:Length           localForecastHours10_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#visibility" }
Number:Dimensionless    localForecastHours10_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#precip-probability" }
String                  localForecastHours10_Iconid "[%s]"                                                           (localForecastHours10) { channel="openweathermap:onecall:api:local:forecastHours10#icon-id" }

//Forecast 11 hours
Group                   localForecastHours11
DateTime                localForecastHours11_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#time-stamp" }
String                  localForecastHours11_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#condition" }
Image                   localForecastHours11_ConditionIcon "Icon"                                                    (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#icon" }
Number:Temperature      localForecastHours11_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#temperature" }
Number:Temperature      localForecastHours11_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#apparent-temperature" }
Number:Pressure         localForecastHours11_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#pressure" }
Number:Dimensionless    localForecastHours11_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#humidity" }
Number:Speed            localForecastHours11_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#wind-speed" }
Number:Angle            localForecastHours11_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#wind-direction" }
Number:Speed            localForecastHours11_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#gust-speed" }
Number:Dimensionless    localForecastHours11_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#cloudiness" }
Number:Length           localForecastHours11_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#rain" }
Number:Length           localForecastHours11_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#snow" }
//Number:Length           localForecastHours11_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#visibility" }
Number:Dimensionless    localForecastHours11_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#precip-probability" }
String                  localForecastHours11_Iconid "[%s]"                                                           (localForecastHours11) { channel="openweathermap:onecall:api:local:forecastHours11#icon-id" }

//Forecast 12 hours
Group                   localForecastHours12
DateTime                localForecastHours12_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#time-stamp" }
String                  localForecastHours12_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#condition" }
Image                   localForecastHours12_ConditionIcon "Icon"                                                    (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#icon" }
Number:Temperature      localForecastHours12_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#temperature" }
Number:Temperature      localForecastHours12_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#apparent-temperature" }
Number:Pressure         localForecastHours12_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#pressure" }
Number:Dimensionless    localForecastHours12_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#humidity" }
Number:Speed            localForecastHours12_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#wind-speed" }
Number:Angle            localForecastHours12_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#wind-direction" }
Number:Speed            localForecastHours12_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#gust-speed" }
Number:Dimensionless    localForecastHours12_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#cloudiness" }
Number:Length           localForecastHours12_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#rain" }
Number:Length           localForecastHours12_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#snow" }
//Number:Length           localForecastHours12_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#visibility" }
Number:Dimensionless    localForecastHours12_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#precip-probability" }
String                  localForecastHours12_Iconid "[%s]"                                                           (localForecastHours12) { channel="openweathermap:onecall:api:local:forecastHours12#icon-id" }
1 Like

openweathermap.items: (part2)

//Forecast 13 hours
Group                   localForecastHours13
DateTime                localForecastHours13_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#time-stamp" }
String                  localForecastHours13_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#condition" }
Image                   localForecastHours13_ConditionIcon "Icon"                                                    (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#icon" }
Number:Temperature      localForecastHours13_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#temperature" }
Number:Temperature      localForecastHours13_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#apparent-temperature" }
Number:Pressure         localForecastHours13_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#pressure" }
Number:Dimensionless    localForecastHours13_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#humidity" }
Number:Speed            localForecastHours13_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#wind-speed" }
Number:Angle            localForecastHours13_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#wind-direction" }
Number:Speed            localForecastHours13_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#gust-speed" }
Number:Dimensionless    localForecastHours13_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#cloudiness" }
Number:Length           localForecastHours13_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#rain" }
Number:Length           localForecastHours13_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#snow" }
//Number:Length           localForecastHours13_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#visibility" }
Number:Dimensionless    localForecastHours13_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#precip-probability" }
String                  localForecastHours13_Iconid "[%s]"                                                           (localForecastHours13) { channel="openweathermap:onecall:api:local:forecastHours13#icon-id" }

//Forecast 14 hours
Group                   localForecastHours14
DateTime                localForecastHours14_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#time-stamp" }
String                  localForecastHours14_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#condition" }
Image                   localForecastHours14_ConditionIcon "Icon"                                                    (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#icon" }
Number:Temperature      localForecastHours14_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#temperature" }
Number:Temperature      localForecastHours14_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#apparent-temperature" }
Number:Pressure         localForecastHours14_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#pressure" }
Number:Dimensionless    localForecastHours14_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#humidity" }
Number:Speed            localForecastHours14_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#wind-speed" }
Number:Angle            localForecastHours14_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#wind-direction" }
Number:Speed            localForecastHours14_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#gust-speed" }
Number:Dimensionless    localForecastHours14_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#cloudiness" }
Number:Length           localForecastHours14_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#rain" }
Number:Length           localForecastHours14_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#snow" }
//Number:Length           localForecastHours14_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#visibility" }
Number:Dimensionless    localForecastHours14_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#precip-probability" }
String                  localForecastHours14_Iconid "[%s]"                                                           (localForecastHours14) { channel="openweathermap:onecall:api:local:forecastHours14#icon-id" }

//Forecast 15 hours
Group                   localForecastHours15
DateTime                localForecastHours15_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#time-stamp" }
String                  localForecastHours15_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#condition" }
Image                   localForecastHours15_ConditionIcon "Icon"                                                    (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#icon" }
Number:Temperature      localForecastHours15_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#temperature" }
Number:Temperature      localForecastHours15_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#apparent-temperature" }
Number:Pressure         localForecastHours15_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#pressure" }
Number:Dimensionless    localForecastHours15_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#humidity" }
Number:Speed            localForecastHours15_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#wind-speed" }
Number:Angle            localForecastHours15_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#wind-direction" }
Number:Speed            localForecastHours15_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#gust-speed" }
Number:Dimensionless    localForecastHours15_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#cloudiness" }
Number:Length           localForecastHours15_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#rain" }
Number:Length           localForecastHours15_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#snow" }
//Number:Length           localForecastHours15_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#visibility" }
Number:Dimensionless    localForecastHours15_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#precip-probability" }
String                  localForecastHours15_Iconid "[%s]"                                                           (localForecastHours15) { channel="openweathermap:onecall:api:local:forecastHours15#icon-id" }

//Forecast 16 hours
Group                   localForecastHours16
DateTime                localForecastHours16_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#time-stamp" }
String                  localForecastHours16_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#condition" }
Image                   localForecastHours16_ConditionIcon "Icon"                                                    (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#icon" }
Number:Temperature      localForecastHours16_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#temperature" }
Number:Temperature      localForecastHours16_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#apparent-temperature" }
Number:Pressure         localForecastHours16_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#pressure" }
Number:Dimensionless    localForecastHours16_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#humidity" }
Number:Speed            localForecastHours16_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#wind-speed" }
Number:Angle            localForecastHours16_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#wind-direction" }
Number:Speed            localForecastHours16_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#gust-speed" }
Number:Dimensionless    localForecastHours16_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#cloudiness" }
Number:Length           localForecastHours16_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#rain" }
Number:Length           localForecastHours16_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#snow" }
//Number:Length           localForecastHours16_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#visibility" }
Number:Dimensionless    localForecastHours16_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#precip-probability" }
String                  localForecastHours16_Iconid "[%s]"                                                           (localForecastHours16) { channel="openweathermap:onecall:api:local:forecastHours16#icon-id" }

//Forecast 17 hours
Group                   localForecastHours17
DateTime                localForecastHours17_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#time-stamp" }
String                  localForecastHours17_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#condition" }
Image                   localForecastHours17_ConditionIcon "Icon"                                                    (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#icon" }
Number:Temperature      localForecastHours17_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#temperature" }
Number:Temperature      localForecastHours17_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#apparent-temperature" }
Number:Pressure         localForecastHours17_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#pressure" }
Number:Dimensionless    localForecastHours17_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#humidity" }
Number:Speed            localForecastHours17_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#wind-speed" }
Number:Angle            localForecastHours17_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#wind-direction" }
Number:Speed            localForecastHours17_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#gust-speed" }
Number:Dimensionless    localForecastHours17_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#cloudiness" }
Number:Length           localForecastHours17_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#rain" }
Number:Length           localForecastHours17_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#snow" }
//Number:Length           localForecastHours17_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#visibility" }
Number:Dimensionless    localForecastHours17_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#precip-probability" }
String                  localForecastHours17_Iconid "[%s]"                                                           (localForecastHours17) { channel="openweathermap:onecall:api:local:forecastHours17#icon-id" }

//Forecast 18 hours
Group                   localForecastHours18
DateTime                localForecastHours18_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#time-stamp" }
String                  localForecastHours18_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#condition" }
Image                   localForecastHours18_ConditionIcon "Icon"                                                    (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#icon" }
Number:Temperature      localForecastHours18_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#temperature" }
Number:Temperature      localForecastHours18_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#apparent-temperature" }
Number:Pressure         localForecastHours18_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#pressure" }
Number:Dimensionless    localForecastHours18_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#humidity" }
Number:Speed            localForecastHours18_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#wind-speed" }
Number:Angle            localForecastHours18_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#wind-direction" }
Number:Speed            localForecastHours18_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#gust-speed" }
Number:Dimensionless    localForecastHours18_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#cloudiness" }
Number:Length           localForecastHours18_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#rain" }
Number:Length           localForecastHours18_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#snow" }
//Number:Length           localForecastHours18_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#visibility" }
Number:Dimensionless    localForecastHours18_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#precip-probability" }
String                  localForecastHours18_Iconid "[%s]"                                                           (localForecastHours18) { channel="openweathermap:onecall:api:local:forecastHours18#icon-id" }

//Forecast 19 hours
Group                   localForecastHours19
DateTime                localForecastHours19_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#time-stamp" }
String                  localForecastHours19_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#condition" }
Image                   localForecastHours19_ConditionIcon "Icon"                                                    (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#icon" }
Number:Temperature      localForecastHours19_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#temperature" }
Number:Temperature      localForecastHours19_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#apparent-temperature" }
Number:Pressure         localForecastHours19_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#pressure" }
Number:Dimensionless    localForecastHours19_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#humidity" }
Number:Speed            localForecastHours19_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#wind-speed" }
Number:Angle            localForecastHours19_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#wind-direction" }
Number:Speed            localForecastHours19_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#gust-speed" }
Number:Dimensionless    localForecastHours19_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#cloudiness" }
Number:Length           localForecastHours19_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#rain" }
Number:Length           localForecastHours19_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#snow" }
//Number:Length           localForecastHours19_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#visibility" }
Number:Dimensionless    localForecastHours19_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#precip-probability" }
String                  localForecastHours19_Iconid "[%s]"                                                           (localForecastHours19) { channel="openweathermap:onecall:api:local:forecastHours19#icon-id" }

//Forecast 20 hours
Group                   localForecastHours20
DateTime                localForecastHours20_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#time-stamp" }
String                  localForecastHours20_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#condition" }
Image                   localForecastHours20_ConditionIcon "Icon"                                                    (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#icon" }
Number:Temperature      localForecastHours20_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#temperature" }
Number:Temperature      localForecastHours20_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#apparent-temperature" }
Number:Pressure         localForecastHours20_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#pressure" }
Number:Dimensionless    localForecastHours20_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#humidity" }
Number:Speed            localForecastHours20_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#wind-speed" }
Number:Angle            localForecastHours20_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#wind-direction" }
Number:Speed            localForecastHours20_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#gust-speed" }
Number:Dimensionless    localForecastHours20_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#cloudiness" }
Number:Length           localForecastHours20_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#rain" }
Number:Length           localForecastHours20_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#snow" }
//Number:Length           localForecastHours20_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#visibility" }
Number:Dimensionless    localForecastHours20_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#precip-probability" }
String                  localForecastHours20_Iconid "[%s]"                                                           (localForecastHours20) { channel="openweathermap:onecall:api:local:forecastHours20#icon-id" }

//Forecast 21 hours
Group                   localForecastHours21
DateTime                localForecastHours21_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#time-stamp" }
String                  localForecastHours21_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#condition" }
Image                   localForecastHours21_ConditionIcon "Icon"                                                    (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#icon" }
Number:Temperature      localForecastHours21_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#temperature" }
Number:Temperature      localForecastHours21_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#apparent-temperature" }
Number:Pressure         localForecastHours21_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#pressure" }
Number:Dimensionless    localForecastHours21_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#humidity" }
Number:Speed            localForecastHours21_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#wind-speed" }
Number:Angle            localForecastHours21_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#wind-direction" }
Number:Speed            localForecastHours21_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#gust-speed" }
Number:Dimensionless    localForecastHours21_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#cloudiness" }
Number:Length           localForecastHours21_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#rain" }
Number:Length           localForecastHours21_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#snow" }
//Number:Length           localForecastHours21_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#visibility" }
Number:Dimensionless    localForecastHours21_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#precip-probability" }
String                  localForecastHours21_Iconid "[%s]"                                                           (localForecastHours21) { channel="openweathermap:onecall:api:local:forecastHours21#icon-id" }

//Forecast 22 hours
Group                   localForecastHours22
DateTime                localForecastHours22_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#time-stamp" }
String                  localForecastHours22_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#condition" }
Image                   localForecastHours22_ConditionIcon "Icon"                                                    (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#icon" }
Number:Temperature      localForecastHours22_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#temperature" }
Number:Temperature      localForecastHours22_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#apparent-temperature" }
Number:Pressure         localForecastHours22_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#pressure" }
Number:Dimensionless    localForecastHours22_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#humidity" }
Number:Speed            localForecastHours22_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#wind-speed" }
Number:Angle            localForecastHours22_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#wind-direction" }
Number:Speed            localForecastHours22_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#gust-speed" }
Number:Dimensionless    localForecastHours22_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#cloudiness" }
Number:Length           localForecastHours22_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#rain" }
Number:Length           localForecastHours22_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#snow" }
//Number:Length           localForecastHours22_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#visibility" }
Number:Dimensionless    localForecastHours22_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#precip-probability" }
String                  localForecastHours22_Iconid "[%s]"                                                           (localForecastHours22) { channel="openweathermap:onecall:api:local:forecastHours22#icon-id" }

//Forecast 23 hours
Group                   localForecastHours23
DateTime                localForecastHours23_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#time-stamp" }
String                  localForecastHours23_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#condition" }
Image                   localForecastHours23_ConditionIcon "Icon"                                                    (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#icon" }
Number:Temperature      localForecastHours23_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#temperature" }
Number:Temperature      localForecastHours23_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#apparent-temperature" }
Number:Pressure         localForecastHours23_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#pressure" }
Number:Dimensionless    localForecastHours23_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#humidity" }
Number:Speed            localForecastHours23_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#wind-speed" }
Number:Angle            localForecastHours23_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#wind-direction" }
Number:Speed            localForecastHours23_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#gust-speed" }
Number:Dimensionless    localForecastHours23_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#cloudiness" }
Number:Length           localForecastHours23_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#rain" }
Number:Length           localForecastHours23_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#snow" }
//Number:Length           localForecastHours23_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#visibility" }
Number:Dimensionless    localForecastHours23_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#precip-probability" }
String                  localForecastHours23_Iconid "[%s]"                                                           (localForecastHours23) { channel="openweathermap:onecall:api:local:forecastHours23#icon-id" }

//Forecast 24 hours
Group                   localForecastHours24
DateTime                localForecastHours24_ForecastTimestamp  "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time>   (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#time-stamp" }
String                  localForecastHours24_Condition "Condition [%s]" <sun_clouds>                                 (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#condition" }
Image                   localForecastHours24_ConditionIcon "Icon"                                                    (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#icon" }
Number:Temperature      localForecastHours24_Temperature "Temperature [%.1f %unit%]" <temperature>                   (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#temperature" }
Number:Temperature      localForecastHours24_ApparentTemperature  "Apparent temperature [%.1f %unit%]" <temperature> (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#apparent-temperature" }
Number:Pressure         localForecastHours24_Pressure  "Barometric pressure [%.1f %unit%]"  <pressure>               (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#pressure" }
Number:Dimensionless    localForecastHours24_Humidity  "Atmospheric humidity [%d %unit%]" <humidity>                 (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#humidity" }
Number:Speed            localForecastHours24_Windspeed  "Wind speed [%.1f km/h]"   <wind>                            (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#wind-speed" }
Number:Angle            localForecastHours24_WindDirection  "Wind direction [%d %unit%]"  <wind>                     (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#wind-direction" }
Number:Speed            localForecastHours24_GustSpeed "Gust speed [%.1f km/h]" <wind>                               (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#gust-speed" }
Number:Dimensionless    localForecastHours24_Cloudiness  "Cloudiness [%d %unit%]"  <clouds>                          (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#cloudiness" }
Number:Length           localForecastHours24_RainVolume "Rain volume [%.1f %unit%]"  <rain>                          (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#rain" }
Number:Length           localForecastHours24_SnowVolume "Snow volume [%.1f %unit%]"  <snow>                          (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#snow" }
//Number:Length           localForecastHours24_Visibility "Visibility [%.1f km]" <visibility>                          (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#visibility" }
Number:Dimensionless    localForecastHours24_Precipprobability "Precipitation probability [%.0f]"                    (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#precip-probability" }
String                  localForecastHours24_Iconid "[%s]"                                                           (localForecastHours24) { channel="openweathermap:onecall:api:local:forecastHours24#icon-id" }

The forum regulations wont let me post all in one reply and not more than 3 replies.
If someone is asking for, I will provide the missing code (until hour 48). and maybe someone tells me how to post more than 48000 characters :sweat_smile:

Hello,
awesome work, thanks to all contributors.

If my weather condition forecast is every 3 hour (accordingly to my UI configuration), how can i modify the code to display hourly condition every 3h instead of 1h ?

I suspect it is near line N° 363

item: "=((props.itemPrefix === undefined) ? '' : props.itemPrefix) + '' + ((loop.hour === 0) ? 'Current' : 'ForecastHours' + (loop.hour_idx+1).toString().padStart(2,'0')) + '_Icon'"

Thank you!

@cmar In my attempt to clean up this thread (including adding the promised item-overview as well as some other fixes for the already posted widgets) I can’t get around the character limit for postings currently.

So sadly you have to wait a bit longer (hopefully not that long) until I find a usefull soloution for this. Until then I will write you a PM and send you the current valid item-definitions.

@Muplex
I think this should be possible - I’ll look into this and get in touch with you if I found a way.

@RGroll
Thanks so much. Got it up and running.
Wouldn’t these item definitions be either make sense as accompanying data for the widget code, if that eventually goes into the marketplace that was discussed a while ago?
Alliteratively - and particularly for this binding - it would make sense as being part of the open-weather binding, even in these “UI-first” times. I on my part would definitely want to avoid the click-fest necessary to e.g.

  • simply creating the items even through the Ad Equipment to Model path
  • let alone make a few changes like
    adding them to an additional group, renaming them for a second site or translating them into sth. else but English.

Further - and maybe a bit down the road - it would be really useful to require add-ons to provide a default widerte for visualization purposes (even if it is only used for initial setup/debugging purposes and later never gets used again, bc. the binding is used only for non-visual automation purposes).

just my 2c

Thanks again
Clemens

This would be nice, yes. But I’m not sure how the marketplace is exactly planned and whats the current state of this concept tbh.

But there might be a risk of giving too much control to widget developers so that ‘normal’ users does not understand, whats happening in their system anymore. Besides the fact that there is no fixed ‘ruleset’ currently, which defines how the item naming should be done - so that it might happen that different widgets for the same purpose creates different items which would mess up the system over time.

Nevertheless, I can imagine that there are ways around these challenges, like checking channels for already existing item-connections and / or adding the items only after confirmation by the user (e.g. clicking something that authorize the system to create these items)

You could theoretically just copy and paste the given item definitions into the system with the Expert Mode within the Model point / equipment creation process - but this isn’t something a beginner might able to handle, especially when it comes to changing some of the definitions by hand to fit their setup (e.g. Bridge Thing naming or Group-affiliation)

Sounds good and I´m with you here but I’m afraid this isn’t something that is easy to accomplish, with all the complexity that OH offers. But I know that there are efforts tweaking the system to optimize it’s UX in the future.

I’m not sure if I understand you here (it might be a translation problem on my side :slight_smile:)

  • What exactly you mean with ‘add-ons’?

Thanks for your efforts!

Thanks for the reply @RGroll
A solution for a duplicate item problem might be to introduce a name-space concept that goes beyond a mere naming scheme.
My installation - with the almost complete port of my 2.5 installation (and the addition of 600+ weather items) - is now well beyond 1000 items. All of these in a list in the UI with little or no structure is quite challenging (I know that one can pin items to the developer panel).

Let me clarify my last point (and correct a spelling error on my end): With add-ons I mean bindings and
I would really like to see bindings (particularly more complex ones) to be “delivered” with a default visualization / default widget. Bindings that provide single data points or a small handful are possibly ok, but even there I´d consider it useful (i.e. for a color lamp hat has an on/off channel a color temp and a color picker), especially for newer users who - I believe - are overwhelmed by the complexity of the possibilities of our current UI-approach.

May I ask you, how you go about widget development? I find myself put back in my very early (and long ago) career days with rather clunky textual definitions of the UI and very poor UI support. Is there a better way than to open the YAML hope to find the right spot try something and test run it? Some way to draw/drag drop UI components?
I also had a situation, in which I had tried to add a component in the code view, test ran it - which did not work - only to find that the code had disappeared from the code view.

All the best
Clemens

hi,
many thanks for that nice widget! helped me also a bit in my learning process.
there’s one issue I got with the top field for stationName, temperature and apparent temperature. as you can see that field seems to be on the topmost layer, even when another widget should be on top. it’s not browser related, same issue on openHAB app.


Hey @powerpolly

thanks for the hint and your nice words!

As I updated this widget and aligned the itemNamings with the other widgets now, I can’t advise you to use the new version (as your item-namings might differ, based on the ‘old’ version)

So as an easy fix, go into the yaml and search for ‘z-index’ - change the values from ‘999’ to ‘99’
It seems i was a bit too ambitious with the z-index-structure of other components :slight_smile:

Hope it will work for you!

Hey @Claes_Nordmark

for the widget that you choose, no. Theres no easy way to make it to a ‘card widget’ - but see post #1 for a card version of this weather widget with some more possibilites to tweak the look & feel.

TOP, thx :+1:

Hey @cmar

It goes beyond my expertise if this is possible to implement and what impact that might have on other sections of OH - but it sounds you have a lot of good ideas in mind, which should be disussed. Maybe it’s a good idea to create a separate thread for that, to get more attention to this topic.

Same here - I’m sure Yannick and others would be happy to get some help (or even ideas) how that could be optimized!

Would be nice, yes - but it might slow down the process of the binding development and a binding developer might have their problems digging into the UI creation as this isn’t their main ‘playfield’. I think it’s generally a good idea in an open-source project to make things available and let others contribute with things, that they feel experienced with.

But I get your point and especially for beginners this would help. But nearly (if not all) bindings (+ their channels) could be visualized in the current UI, with just the use of the ‘standard’ widgets, I think. They might not be “fancy” for all usecases, but they work.

Maybe it would be enough to have a demo-implementation of the most commonly used binding channels in these standard widgets to make it easier for beginners finding a starting point. But as said, I think it’s on all of us, to create this ‘library’. The discussed widget marketplace will make all of this a lot easier, I think as it’s hard to find the correct thread in a forum with that much activity. :slight_smile:

I try to make me a rough concept before I start, sometimes only in my head, sometimes on paper. As I get more and more familiar with the f7- as well as the custom oh-components, I try to think about how these components could fit together to achieve what I have in mind.

After that it’s more or less what you say - writing the YAML and test run it until I get something that fits my needs. And I have to be honest that some experience with HTML structures and especially CSS is helpfull here.

Currently theres no ‘easy’ drag and drop approach available for the widgets. The easiest starting point in my opinion is, to use the already created standard oh-components and trying to put them together in a way to something new arises (e.g. putting some buttons in a oh-label-card or similar)

This might not be fancy at the start but give s you a good understanding how everything fits together - and you’ll get more comfortable with it over time.

I started to digg into the UI without any clue what even YAML is and a poor knowledge of CSS - I just invested some time to try and understand - now I have a rough understanding of how everything works.

This sounds like you used invalid YAML syntax which will be removed after the initial saving of a widget.

Glad to have passionate people like you in the community!

aaaww!!! I want that, how can I get that?

Not yet available, as it needs to be dynamic for the implementation in the widget (which isn’t possible right now - or at least I don’t know yet, how to do it)

If I find a way, I will make it available here.

Hello RGroll,

thanks first of all for the great widgets! They help me extremely with the YAML but also the general conversion to OH3.
I have had the code adapted for me because I wanted to see some more information. After your last update I didn’t have the time to do that again. Maybe it is a suggestion to take over that or do you see maybe a possibility by means of checkbox to select what one on the 3 tabs everything would like to see?

Under Hourly I have the Current Temperature/Felt Temperature and below that the Wind Speed.


under Daily the same only instead of wind then rain probability.

and last and rain probability additionally the amount of precipitation, in my example you can see well why the amount was so important to me, because at 80% 0.0mmm rain falls sometimes.

The second thing I wanted to ask is, I have seen you have added an action. I have tried that and some “- component: Label” exchanged against “- component: oh-link”, thereby I can see by clicking on the temperature as the course of the variable was by means of “action: analyzer”. Your approach I find but just as practical to say I click on the widget and can do what I want, only unfortunately does not go both. As soon as I create an action in the settings, my actions are no longer selectable. Do you have an idea how it is possible to make the background and some variables (items) selectable at the same time?

I am looking forward to new ideas :slight_smile:

1 Like

You’re welcome!

Classical checkboxes won’t work here, but maybe I can make something up, that would allow to assign a dynamic amount of user-defined values to the swiper-elements. It should be doable.

I like the adjustments you made, especially the one with the amount of precipitation - it makes totaly sense and should be usefull for everyone so I might steal that :slight_smile: - and I see you’ve replaced the |-sign with /, which makes sense as it seems the YAML syntax don’t like the |-char very much.

If you have the components ordered that way, it should work out-of-the-box, as the components (oh-buttons in this case) are ordered inside the action-component that acts as the trigger for the widget-action.

YAML example
uid: something
props:
  parameters:
    - description: Dummy parameter
      name: dummy
      type: TEXT
  parameterGroups:
    - name: widgetAction
      context: action
      label: Action
      description: Action to perform when the element is clicked (<b>Experimental</b>)
component: f7-card
config:
  class:
    - padding
slots:
  default:
    - component: oh-button
      config:
        actionPropsParameterGroup: widgetAction
        style:
          position: absolute
          width: 100%
          height: 100%
          top: 0
          left: 0
    - component: f7-row
      slots:
        default:
          - component: oh-button
            config:
              text: "Link #1"
          - component: oh-button
            config:
              text: "Link #2"
          - component: oh-button
            config:
              text: "Link #3"

The other case would be that you have ordered your components outside of the widget-action component - in that case you should use the css property z-index (read more about this property). You’ve to ensure that your widget-action component has a lower z-index as the elements that you want to show on top of it.

YAML example
uid: something_else
props:
  parameters:
    - description: Dummy parameter
      name: dummy
      type: TEXT
  parameterGroups:
    - name: widgetAction
      context: action
      label: Action
      description: Action to perform when the element is clicked (<b>Experimental</b>)
component: f7-card
config:
  class:
    - padding
slots:
  default:
    - component: f7-row
      slots:
        default:
          - component: oh-button
            config:
              text: "Link #1"
              style:
                z-index: 2
          - component: oh-button
            config:
              text: "Link #2"
              style:
                z-index: 2
          - component: oh-button
            config:
              text: "Link #3"
              style:
                z-index: 2
    - component: oh-button
      config:
        actionPropsParameterGroup: widgetAction
        style:
          position: absolute
          width: 100%
          height: 100%
          top: 0
          left: 0
          z-index: 1

But be aware, there is a small bug in the widget-action currently which makes it impossible to set the parameters for the widget to open (but I’m sure this will be fixed soon).

Hope it helps.

Hey RGroll, hey everyone,
I am fairly new to OH in general and just started setting everything up, so I’m sorry for potentially dumb questions :smiley:
I installed and set up the OWM binding using the thing- and item-defintions. When I am now trying to get the widgets to work and assign the itemPrefix and additonial itemPrefix via “Set Props”, the widget looks fine in the preview, but as soon as I save and leave the widget-configuration the itemPrefixes get deleteted and the widget doesn’t show any data anymore. Does anybody have an idea what I am doing wrong? Help would be greatly appreciated!
Thanks for all your great work
Catherina

Hey @MadOregano and welcome to the community!

You have to set the item prefixes in the page configuration.
Based on your explanation I would assume that you’ ve tried to set the properties in the widget-editor (in which the set properties will not be saved).

To do it via page config:
Click on Edit in the top right corner of the page you want to add the widget to. Then Add BlockAdd RowAdd Column+ (Add) → Select the widget → Click the black square icon on the top right of the widget and select Configure Widget → Set-up the widget to your liking → Hit Save in the widget as well as on the page and it should work! :slight_smile:

P.S. If you want the widget to be smaller in width or if it should be resized based of the browser-size, you could do this via the Column Options in the same menu.

Don’t hesitate to ask, if you need further help!

2 Likes