Weather for irrigation

I usually look for icons here:
https://www.flaticon.com/icon-packs/weather%20forecast%20pack

I just found these for free…

Now to find out how to use these instead of the ones that are current.

I am actually getting an error in weather.rules.

Says that ScriptServiceUtil is undefined for every call on it. Any ideas?

W_OWM_CondIcon contains the Icon. It downloads it straight from OWM itself. I have a script that will take the icon from the Item and save it to file so it can be used as an actual icon for the W_OWM_Cond Item.

It only works on Linux though as it uses some Linux command line tools to convert the Base64 to a usable png.

from core.rules import rule
from core.triggers import when
from configuration import weather_icon_path
import subprocess
from javax.imageio import ImageIO
from java.io import File

@rule("Weather Icon",
      description="Copy the current weather conditions icon",
      tags=["weather"])
@when("Item vWeather_Conditions_Icon changed")
@when("System started")
def cond_icon(event):
    """
    Download the weather conditions icon from DarkSky and convert it from gif to
    png.
    """
    # OpenWeatherMap
#    cond_icon.log.info("Fetching weather conditions icon to {} from {}"
#                  .format(weather_icon_path, items["vWeather_Conditions_Icon"]))
#
#    results = subprocess.check_output(['/usr/bin/wget', '-q', '-O',
#                                       weather_icon_path,
#                                       str(items["vWeather_Conditions_Icon"])])
#
#    input_file  = File(weather_icon_path)
#    if not input_file.exists():
#        cond_icon.log.warn("Failed to fetch the weather icon!")
#        return
#
#    output_file = File(weather_icon_path.replace('gif', 'png'))
#    ImageIO.write( ImageIO.read(input_file), 'png', output_file)
#
#    results = subprocess.check_output(['rm', weather_icon_path])

    # DarkSky
    cond_icon.log.info("Fetching the weather conditions icon... {}".format(ir.getItem("vWeather_Conditions_Icon").state))
    dl = subprocess.Popen(['/usr/bin/wget', '-qO-',
                  'http://argus:8080/rest/items/vWeather_Conditions_Icon/state'],
                  stdout=subprocess.PIPE)
    dd = subprocess.Popen(['/bin/dd', 'bs=22', 'skip=1'], stdin=dl.stdout, stdout=subprocess.PIPE)
    dl.wait()
    f = open(weather_icon_path, "w")
    subprocess.call(['/usr/bin/base64', '-d'], stdout=f, stdin=dd.stdout)
    dd.wait()

Note, the DarkSky code is working just fine for OWM. I’ve left the commented out OWM code for reference and to see another way to do it. Instead of using subprocess you would use executeCommandLine and a shell script.

The above takes the contents of the Icon Item, saves it to a file, strips out the first 22 characters and converts the Base64 to binary png in the icons folder. The name of the file is just “weather.png”.

Then the Conditions Item uses <weather> for the icon. It looks like this:

tl;dr - The binding downloads the icons from OWM.

OK, this looks a little outside what I’d like to do. Could I possibly map my own images based on the condition ID?

I did this once and it’s a pain. You will need to get a list of all possible weather conditions that OWM may report and then create a weather-<condition>.png for each of those. It was easier to do with Wunderground back when I did it because they had a way to figure out that mapping. Only if I were very dedicated to having this work would I venture to do so again.

It needs to be imported at the top of the file.

import org.eclipse.smarthome.model.script.ScriptServiceUtil
1 Like

I have their list, and yes, it will be a pain, but it is possible…Now, how to map it? I’ve never attempted to map images.

@NCO

Can you update your rules file above to include the import. That solved that issue.

Thanks

Yes - sorry - I missed that when using just a part of my weather rules…

Not a problem, glad it got solved…

Just like I said, you need to create a weather-<condition>.png (or svg if that’s what you are using) for each and every condition and put it in icons/classic. Then you can use <weather> for the Item icon and the icon will be chosen based on the state of the Item. See https://www.openhab.org/docs/configuration/items.html#dynamic-icons

gotcha

So I copied the item (and added my API to it), the rule and your frame (which I used to create its own sitemap). When I run openHAB the sitemap loads but all of the values are blank.

And here are the log comments:
2020-05-05 19:59:15.934 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.sitemap.Text

2020-05-05 19:59:15.958 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item ‘gW_OWM_Future’ for widget org.eclipse.smarthome.model.sitemap.sitemap.Text

2020-05-05 19:59:15.987 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item ‘gW_OWM_Future’ for widget org.eclipse.smarthome.model.sitemap.sitemap.Text

2020-05-05 19:59:16.018 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item ‘gW_OWM_Future’ for widget org.eclipse.smarthome.model.sitemap.sitemap.Text

What do I need to edit to make it work?
Thanks.

Mike

Assuming those Items/Groups exist for certain, was there an upgrade or clearing of the cache
immediately before theses errors? If so, simply restart OH. If not, verify that these Items exist and if in . items files that there isn’t an error in that file.

Sorry, I’ve been away from the computer the past few days…back to work as usual for now…I agree with Rich, sounds like you don’t have the items defined properly.

I still haven’t been able to get the rule file to work for the image changer, but I’ll have to tackle that when I have more time later this week.

Brandon -
I used NCO’s items and rules with your sitemap - which does have different items than NCO’s. Could you please post your rules and items? Thanks.

Mike

Not a problem.

The rules file:

> import org.eclipse.smarthome.model.script.ScriptServiceUtil
> 
> // ***************** Extract Data from OWM hourly forecast into daily forecast
> 
> rule "daily forecast for DayX"
> 
> when
> 
>     Time cron "01 01 * * * ?" or Item W_OWM_ObservationTime changed or Item Trigger_Debug changed // every hour at x:01:01 
> 
> then
> 
>     var i = 0
> 
>     while ((i=i+1) < 5) {
> 
>         var j = i-1
> 
>     // check actual hour
> 
>         var Number hour = now.getHourOfDay
> 
>         var max = (((j * 24) + 12 - hour) / 3)
> 
>         var l = Math::round(max.floatValue)
> 
>         val int y = l * 3
> 
>         if(y > 0) { // means it's before 12 pm
> 
>             if(now.getHourOfDay == 0) { // at 0 am for min max temps of the entire day arranged in groups over 24 hrs
> 
>             // TempMin
> 
>                 var tempMin = "G_W_Min" + j.toString // create item name string from prefix and approx hour for forecast
> 
>                 val tempMinItem = ScriptServiceUtil.getItemRegistry.getItem(tempMin)
> 
>                 var tempMinDay = "W_OWM_TempMinDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val tempMinDayItem = ScriptServiceUtil.getItemRegistry.getItem(tempMinDay)
> 
>                 tempMinDayItem.postUpdate(tempMinItem.state)    // postUpdate to W_OWM_TempMinDay i with data from W_OWM_Time in x hours
> 
>             // TempMax
> 
>                 var tempMax = "G_W_Max" + j.toString // get max value for the group covering
> 
>                 val tempMaxItem = ScriptServiceUtil.getItemRegistry.getItem(tempMax)
> 
>                 var tempMaxDay = "W_OWM_TempMaxDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val tempMaxDayItem = ScriptServiceUtil.getItemRegistry.getItem(tempMaxDay)
> 
>                 tempMaxDayItem.postUpdate(tempMaxItem.state)    // postUpdate to W_OWM_TempMaxDay i with data from W_OWM_Time in x hours
> 
>             }
> 
>             else { // means y >= 0 && x >= 0, so before 4 am (and 12 pm)
> 
>             // Time
> 
>                 var time = "W_OWM_Time" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val timeItem = ScriptServiceUtil.getItemRegistry.getItem(time)
> 
>                 var timeDay = "W_OWM_TimeDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val timeDayItem = ScriptServiceUtil.getItemRegistry.getItem(timeDay)
> 
>                 timeDayItem.postUpdate(timeItem.state)          // postUpdate to W_OWM_TimeDay i with data from W_OWM_Time in x hours
> 
>             // Cond
> 
>                 var cond = "W_OWM_Cond" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val condItem = ScriptServiceUtil.getItemRegistry.getItem(cond)
> 
>                 var condDay = "W_OWM_CondDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val condDayItem = ScriptServiceUtil.getItemRegistry.getItem(condDay)
> 
>                 condDayItem.postUpdate(condItem.state)          // postUpdate to W_OWM_CondDay i with data from W_OWM_Time in x hours
> 
>             // CondID
> 
>                 var condID = "W_OWM_CondID" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val condIDItem = ScriptServiceUtil.getItemRegistry.getItem(condID)
> 
>                 var condIDDay = "W_OWM_CondIDDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val condIDDayItem = ScriptServiceUtil.getItemRegistry.getItem(condIDDay)
> 
>                 condIDDayItem.postUpdate(condIDItem.state)      // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
> 
>             // Clouds
> 
>                 var cloud = "W_OWM_Cloud" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val cloudItem = ScriptServiceUtil.getItemRegistry.getItem(cloud)
> 
>                 var cloudDay = "W_OWM_CloudDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val cloudDayItem = ScriptServiceUtil.getItemRegistry.getItem(cloudDay)
> 
>                 cloudDayItem.postUpdate(cloudItem.state)            // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
> 
>             // Rain
> 
>                 var rain = "W_OWM_Rain" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val rainItem = ScriptServiceUtil.getItemRegistry.getItem(rain)
> 
>                 var rainDay = "W_OWM_RainDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val rainDayItem = ScriptServiceUtil.getItemRegistry.getItem(rainDay)
> 
>                 rainDayItem.postUpdate(rainItem.state)          // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
> 
>             }
> 
>         }
> 
>         else { // means y < 0, so after 12 pm (and x < 0 anyway)
> 
>             if(j != 0) {
> 
>             // Time
> 
>                 var time = "W_OWM_Time" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val timeItem = ScriptServiceUtil.getItemRegistry.getItem(time)
> 
>                 var timeDay = "W_OWM_TimeDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val timeDayItem = ScriptServiceUtil.getItemRegistry.getItem(timeDay)
> 
>                 timeDayItem.postUpdate(timeItem.state)          // postUpdate to W_OWM_TimeDay i with data from W_OWM_Time in x hours
> 
>             // Cond
> 
>                 var cond = "W_OWM_Cond" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val condItem = ScriptServiceUtil.getItemRegistry.getItem(cond)
> 
>                 var condDay = "W_OWM_CondDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val condDayItem = ScriptServiceUtil.getItemRegistry.getItem(condDay)
> 
>                 condDayItem.postUpdate(condItem.state)          // postUpdate to W_OWM_CondDay i with data from W_OWM_Time in x hours
> 
>             // CondID
> 
>                 var condID = "W_OWM_CondID" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val condIDItem = ScriptServiceUtil.getItemRegistry.getItem(condID)
> 
>                 var condIDDay = "W_OWM_CondIDDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val condIDDayItem = ScriptServiceUtil.getItemRegistry.getItem(condIDDay)
> 
>                 condIDDayItem.postUpdate(condIDItem.state)      // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
> 
>             // Clouds
> 
>                 var cloud = "W_OWM_Cloud" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val cloudItem = ScriptServiceUtil.getItemRegistry.getItem(cloud)
> 
>                 var cloudDay = "W_OWM_CloudDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val cloudDayItem = ScriptServiceUtil.getItemRegistry.getItem(cloudDay)
> 
>                 cloudDayItem.postUpdate(cloudItem.state)            // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
> 
>             // Rain
> 
>                 var rain = "W_OWM_Rain" + y.toString // create item name string from prefix and approx hour for forecast
> 
>                 val rainItem = ScriptServiceUtil.getItemRegistry.getItem(rain)
> 
>                 var rainDay = "W_OWM_RainDay" + j.toString // create item name string from FC prefix and FC Day No
> 
>                 val rainDayItem = ScriptServiceUtil.getItemRegistry.getItem(rainDay)
> 
>                 rainDayItem.postUpdate(rainItem.state)          // postUpdate to W_OWM_CondIDDay i with data from W_OWM_Time in x hours
> 
>             }
> 
>         }
> 
>     }
> 
>     logInfo("+++ WEATHER", "Weather Forecast updated.")
> 
> end
> 
> // **************** END of OWM Stuff
1 Like

And the items:

> /******************************************* Weather (OWM) **********************************************/
> 
> String                  W_OWM_Key               "OWM API Key"                                               (G_jdbc)
> 
> Switch                  WeatherThing            "Weather"                                                   (G_jdbc,G_Things,Group_HabPanel_Dashboard)
> 
> String                  Dummy
> 
> Switch                  Trigger_Debug
> 
>                                                                      
> 
> Group                   gW_OWM_Future   
> 
> // Open Weather Map
> 
> Number:Temperature      W_OWM_Temp              "Temperature [%.1f %unit%]"                                 (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#temperature"}
> 
> Number:Dimensionless    W_OWM_Humidity          "Humidity [%d %unit%]"                                      (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#humidity"}
> 
> Number:Length           W_OWM_Rain              "Rain [%d %unit%]"                                          (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#rain"}
> 
> Number:Speed            W_OWM_Wind_Speed        "Wind Speed [%d %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#wind-speed"}
> 
> Number                  W_OWM_Wind_Dir          "Wind Direction [SCALE(winds.scale):%s]"                                (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#wind-direction"}
> 
> String                  W_OWM_Station_Name      "Station Name [%s]"                                         (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:station#name"}
> 
> DateTime                W_OWM_Time              "Observation Time [%1$tA, %1$tB  %1$td, %1$tY   %1$tI:%1$tM %1$Tp]"                                         (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#time-stamp"}
> 
> String                  W_OWM_Cond              "Condition [%s]"                                            (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#condition"}
> 
> String                  W_OWM_CondID            "ConditionId [%s]"                                          (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#condition-id"}
> 
> String                  W_OWM_CondID_Form       "Cond Formatted"                                            (G_jdbc)
> 
> Image                   W_OWM_CondIcon          "Icon [%s]"                                                                                                 {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#icon"}
> 
> Image                   W_CondIcon              <weather>
> 
> Image                   ImageChooser            "[MAP(weather_icon.map):%s]"
> 
> String                  W_OWM_CondIconID        "IconId [%s]"                                               (G_jdbc,Group_HabPanel_Dashboard)               {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#icon-id"}
> 
> // ******* Forecast final items based on data below
> 
> Number:Temperature      W_OWM_TempMinDay0       "Temp Min [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Temperature      W_OWM_TempMinDay1       "Temp Min [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Temperature      W_OWM_TempMinDay2       "Temp Min [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Temperature      W_OWM_TempMinDay3       "Temp Min [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Temperature      W_OWM_TempMaxDay0       "Temp Max [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Temperature      W_OWM_TempMaxDay1       "Temp Max [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Temperature      W_OWM_TempMaxDay2       "Temp Max [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Temperature      W_OWM_TempMaxDay3       "Temp Max [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> DateTime                W_OWM_TimeDay0          "Observation Time"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> DateTime                W_OWM_TimeDay1          "Observation Time"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> DateTime                W_OWM_TimeDay2          "Observation Time"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> DateTime                W_OWM_TimeDay3          "Observation Time"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondDay0          "Conditions"                                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondDay1          "Conditions"                                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondDay2          "Conditions"                                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondDay3          "Conditions"                                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay0        "ConditionsID"                                                  (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay1        "ConditionsID"                                                  (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay2        "ConditionsID"                                                  (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay3        "ConditionsID"                                                  (G_jdbc,G_CondID,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay0_Form   "ConditionsID"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay1_Form   "ConditionsID"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay2_Form   "ConditionsID"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> String                  W_OWM_CondIDDay3_Form   "ConditionsID"                                                  (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Dimensionless    W_OWM_CloudDay0         "FC Cloud [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Dimensionless    W_OWM_CloudDay1         "FC Cloud [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Dimensionless    W_OWM_CloudDay2         "FC Cloud [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Dimensionless    W_OWM_CloudDay3         "FC Cloud [%.1f %unit%]"                                    (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Length           W_OWM_RainDay0          "Forcast Rain [%.1f %unit%]"                                        (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Length           W_OWM_RainDay1          "Forcast Rain [%.1f %unit%]"                                        (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Length           W_OWM_RainDay2          "Forcast Rain [%.1f %unit%]"                                        (G_jdbc,Group_HabPanel_Dashboard)
> 
> Number:Length           W_OWM_RainDay3          "Forcast Rain [%.1f %unit%]"                                        (G_jdbc,Group_HabPanel_Dashboard)
> 
> // ******* END of Forecast final items
> 
> // Forecast data 3 to 96 hrs for forecasting the daily items above
> 
> // G_W_Min0,G_W_Max0 are workarounds to get a min and max temp for the entire day. This will be done in rules once a day at 0 am
> 
> // This is neccessary to let the min / max value fit: e.g. today at 0 am: min / max of the next 24 hrs - this will not match if it's 12 pm for instance
> 
> // FC Temperature
> 
> Number:Temperature      W_OWM_Temp3             "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)                     {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours03#temperature"}
> 
> Number:Temperature      W_OWM_Temp6             "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)                     {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours06#temperature"}
> 
> Number:Temperature      W_OWM_Temp9             "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)                     {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours09#temperature"}
> 
> Number:Temperature      W_OWM_Temp12            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)                     {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours12#temperature"}
> 
> Number:Temperature      W_OWM_Temp15            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)                     {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours15#temperature"}
> 
> Number:Temperature      W_OWM_Temp18            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)                     {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours18#temperature"}
> 
> Number:Temperature      W_OWM_Temp21            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)                     {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours21#temperature"}
> 
> Number:Temperature      W_OWM_Temp24            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min0,G_W_Max0,gW_OMW_Future)         {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours24#temperature"}
> 
> Number:Temperature      W_OWM_Temp27            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours27#temperature"}
> 
> Number:Temperature      W_OWM_Temp30            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours30#temperature"}
> 
> Number:Temperature      W_OWM_Temp33            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours33#temperature"}
> 
> Number:Temperature      W_OWM_Temp36            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours36#temperature"}
> 
> Number:Temperature      W_OWM_Temp39            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours39#temperature"}
> 
> Number:Temperature      W_OWM_Temp42            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours42#temperature"}
> 
> Number:Temperature      W_OWM_Temp45            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours45#temperature"}
> 
> Number:Temperature      W_OWM_Temp48            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min1,G_W_Max1)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours48#temperature"}
> 
> Number:Temperature      W_OWM_Temp51            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours51#temperature"}
> 
> Number:Temperature      W_OWM_Temp54            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours54#temperature"}
> 
> Number:Temperature      W_OWM_Temp57            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours57#temperature"}
> 
> Number:Temperature      W_OWM_Temp60            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours60#temperature"}
> 
> Number:Temperature      W_OWM_Temp63            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours63#temperature"}
> 
> Number:Temperature      W_OWM_Temp66            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours66#temperature"}
> 
> Number:Temperature      W_OWM_Temp69            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours69#temperature"}
> 
> Number:Temperature      W_OWM_Temp72            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min2,G_W_Max2)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours72#temperature"}
> 
> Number:Temperature      W_OWM_Temp75            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours75#temperature"}
> 
> Number:Temperature      W_OWM_Temp78            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours78#temperature"}
> 
> Number:Temperature      W_OWM_Temp81            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours81#temperature"}
> 
> Number:Temperature      W_OWM_Temp84            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours84#temperature"}
> 
> Number:Temperature      W_OWM_Temp87            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours87#temperature"}
> 
> Number:Temperature      W_OWM_Temp90            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours90#temperature"}
> 
> Number:Temperature      W_OWM_Temp93            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours93#temperature"}
> 
> Number:Temperature      W_OWM_Temp96            "Temperature [%.1f %unit%]"                                     (G_Num,G_W_Min3,G_W_Max3)                       {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours96#temperature"}
> 
> // Observation TimeStamp
> 
> DateTime                W_OWM_Time3             "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours03#time-stamp"}
> 
> DateTime                W_OWM_Time6             "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours06#time-stamp"}
> 
> DateTime                W_OWM_Time9             "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours09#time-stamp"}
> 
> DateTime                W_OWM_Time12            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours12#time-stamp"}
> 
> DateTime                W_OWM_Time15            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours15#time-stamp"}
> 
> DateTime                W_OWM_Time18            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours18#time-stamp"}
> 
> DateTime                W_OWM_Time21            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours21#time-stamp"}
> 
> DateTime                W_OWM_Time24            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours24#time-stamp"}
> 
> DateTime                W_OWM_Time27            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours27#time-stamp"}
> 
> DateTime                W_OWM_Time30            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours30#time-stamp"}
> 
> DateTime                W_OWM_Time33            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours33#time-stamp"}
> 
> DateTime                W_OWM_Time36            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours36#time-stamp"}
> 
> DateTime                W_OWM_Time39            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours39#time-stamp"}
> 
> DateTime                W_OWM_Time42            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours42#time-stamp"}
> 
> DateTime                W_OWM_Time45            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours45#time-stamp"}
> 
> DateTime                W_OWM_Time48            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours48#time-stamp"}
> 
> DateTime                W_OWM_Time51            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours51#time-stamp"}
> 
> DateTime                W_OWM_Time54            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours54#time-stamp"}
> 
> DateTime                W_OWM_Time57            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours57#time-stamp"}
> 
> DateTime                W_OWM_Time60            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours60#time-stamp"}
> 
> DateTime                W_OWM_Time63            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours63#time-stamp"}
> 
> DateTime                W_OWM_Time66            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours66#time-stamp"}
> 
> DateTime                W_OWM_Time69            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours69#time-stamp"}
> 
> DateTime                W_OWM_Time72            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours72#time-stamp"}
> 
> DateTime                W_OWM_Time75            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours75#time-stamp"}
> 
> DateTime                W_OWM_Time78            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours78#time-stamp"}
> 
> DateTime                W_OWM_Time81            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours81#time-stamp"}
> 
> DateTime                W_OWM_Time84            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours84#time-stamp"}
> 
> DateTime                W_OWM_Time87            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours87#time-stamp"}
> 
> DateTime                W_OWM_Time90            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours90#time-stamp"}
> 
> DateTime                W_OWM_Time93            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours93#time-stamp"}
> 
> DateTime                W_OWM_Time96            "Observation Time"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours96#time-stamp"}
> 
> // Conditionsition
> 
> String                  W_OWM_Cond3             "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours03#condition"}
> 
> String                  W_OWM_Cond6             "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours06#condition"}
> 
> String                  W_OWM_Cond9             "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours09#condition"}
> 
> String                  W_OWM_Cond12            "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours12#condition"}
> 
> String                  W_OWM_Cond15            "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours15#condition"}
> 
> String                  W_OWM_Cond18            "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours18#condition"}
> 
> String                  W_OWM_Cond21            "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours21#condition"}
> 
> String                  W_OWM_Cond24            "Conditions"                                                    (G_jdbc,gW_OMW_Future)                                      {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours24#condition"}
> 
> String                  W_OWM_Cond27            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours27#condition"}
> 
> String                  W_OWM_Cond30            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours30#condition"}
> 
> String                  W_OWM_Cond33            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours33#condition"}
> 
> String                  W_OWM_Cond36            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours36#condition"}
> 
> String                  W_OWM_Cond39            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours39#condition"}
> 
> String                  W_OWM_Cond42            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours42#condition"}
> 
> String                  W_OWM_Cond45            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours45#condition"}
> 
> String                  W_OWM_Cond48            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours48#condition"}
> 
> String                  W_OWM_Cond51            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours51#condition"}
> 
> String                  W_OWM_Cond54            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours54#condition"}
> 
> String                  W_OWM_Cond57            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours57#condition"}
> 
> String                  W_OWM_Cond60            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours60#condition"}
> 
> String                  W_OWM_Cond63            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours63#condition"}
> 
> String                  W_OWM_Cond66            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours66#condition"}
> 
> String                  W_OWM_Cond69            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours69#condition"}
> 
> String                  W_OWM_Cond72            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours72#condition"}
> 
> String                  W_OWM_Cond75            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours75#condition"}
> 
> String                  W_OWM_Cond78            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours78#condition"}
> 
> String                  W_OWM_Cond81            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours81#condition"}
> 
> String                  W_OWM_Cond84            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours84#condition"}
> 
> String                  W_OWM_Cond87            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours87#condition"}
> 
> String                  W_OWM_Cond90            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours90#condition"}
> 
> String                  W_OWM_Cond93            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours93#condition"}
> 
> String                  W_OWM_Cond96            "Conditions"                                                    (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours96#condition"}
> 
> // Conditionsition ID
> 
> String                  W_OWM_CondID3           "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours03#condition-id"}
> 
> String                  W_OWM_CondID6           "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours06#condition-id"}
> 
> String                  W_OWM_CondID9           "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours09#condition-id"}
> 
> String                  W_OWM_CondID12          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours12#condition-id"}
> 
> String                  W_OWM_CondID15          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours15#condition-id"}
> 
> String                  W_OWM_CondID18          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours18#condition-id"}
> 
> String                  W_OWM_CondID21          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours21#condition-id"}
> 
> String                  W_OWM_CondID24          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours24#condition-id"}
> 
> String                  W_OWM_CondID27          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours27#condition-id"}
> 
> String                  W_OWM_CondID30          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours30#condition-id"}
> 
> String                  W_OWM_CondID33          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours33#condition-id"}
> 
> String                  W_OWM_CondID36          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours36#condition-id"}
> 
> String                  W_OWM_CondID39          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours39#condition-id"}
> 
> String                  W_OWM_CondID42          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours42#condition-id"}
> 
> String                  W_OWM_CondID45          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours45#condition-id"}
> 
> String                  W_OWM_CondID48          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours48#condition-id"}
> 
> String                  W_OWM_CondID51          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours51#condition-id"}
> 
> String                  W_OWM_CondID54          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours54#condition-id"}
> 
> String                  W_OWM_CondID57          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours57#condition-id"}
> 
> String                  W_OWM_CondID60          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours60#condition-id"}
> 
> String                  W_OWM_CondID63          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours63#condition-id"}
> 
> String                  W_OWM_CondID66          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours66#condition-id"}
> 
> String                  W_OWM_CondID69          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours69#condition-id"}
> 
> String                  W_OWM_CondID72          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours72#condition-id"}
> 
> String                  W_OWM_CondID75          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours75#condition-id"}
> 
> String                  W_OWM_CondID78          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours78#condition-id"}
> 
> String                  W_OWM_CondID81          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours81#condition-id"}
> 
> String                  W_OWM_CondID84          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours84#condition-id"}
> 
> String                  W_OWM_CondID87          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours87#condition-id"}
> 
> String                  W_OWM_CondID90          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours90#condition-id"}
> 
> String                  W_OWM_CondID93          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours93#condition-id"}
> 
> String                  W_OWM_CondID96          "ConditionsID"                                                  (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours96#condition-id"}
> 
> // FC Cloudiness
> 
> Number:Dimensionless    W_OWM_Cloud3            "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours03#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud6            "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours06#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud9            "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours09#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud12           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours12#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud15           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours15#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud18           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours18#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud21           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours21#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud24           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours24#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud27           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours27#cloudiness"}
> 
> Number:Dimensionless    W_OWM_Cloud30           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours30#cloudiness"}
> 
>
1 Like
> Number:Dimensionless    W_OWM_Cloud33           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours33#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud36           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours36#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud39           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours39#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud42           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours42#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud45           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours45#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud48           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours48#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud51           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours51#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud54           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours54#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud57           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours57#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud60           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours60#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud63           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours63#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud66           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours66#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud69           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours69#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud72           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours72#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud75           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours75#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud78           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours78#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud81           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours81#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud84           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours84#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud87           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours87#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud90           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours90#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud93           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours93#cloudiness"}
>     > 
>     > Number:Dimensionless    W_OWM_Cloud96           "Cloud Cover [%d %unit%]"                                   (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours96#cloudiness"}
>     > 
>     > // Forcast Rain forecast - sums up rain 3 hrs before this point in time in mm
>     > 
>     > Number:Length           W_OWM_Rain3             "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours03#rain"}
>     > 
>     > Number:Length           W_OWM_Rain6             "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours06#rain"}
>     > 
>     > Number:Length           W_OWM_Rain9             "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours09#rain"}
>     > 
>     > Number:Length           W_OWM_Rain12            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours12#rain"}
>     > 
>     > Number:Length           W_OWM_Rain15            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours15#rain"}
>     > 
>     > Number:Length           W_OWM_Rain18            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours18#rain"}
>     > 
>     > Number:Length           W_OWM_Rain21            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours21#rain"}
>     > 
>     > Number:Length           W_OWM_Rain24            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours24#rain"}
>     > 
>     > Number:Length           W_OWM_Rain27            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours27#rain"}
>     > 
>     > Number:Length           W_OWM_Rain30            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours30#rain"}
>     > 
>     > Number:Length           W_OWM_Rain33            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours33#rain"}
>     > 
>     > Number:Length           W_OWM_Rain36            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours36#rain"}
>     > 
>     > Number:Length           W_OWM_Rain39            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours39#rain"}
>     > 
>     > Number:Length           W_OWM_Rain42            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours42#rain"}
>     > 
>     > Number:Length           W_OWM_Rain45            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours45#rain"}
>     > 
>     > Number:Length           W_OWM_Rain48            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours48#rain"}
>     > 
>     > Number:Length           W_OWM_Rain51            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours51#rain"}
>     > 
>     > Number:Length           W_OWM_Rain54            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours54#rain"}
>     > 
>     > Number:Length           W_OWM_Rain57            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours57#rain"}
>     > 
>     > Number:Length           W_OWM_Rain60            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours60#rain"}
>     > 
>     > Number:Length           W_OWM_Rain63            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours63#rain"}
>     > 
>     > Number:Length           W_OWM_Rain66            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours66#rain"}
>     > 
>     > Number:Length           W_OWM_Rain69            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours69#rain"}
>     > 
>     > Number:Length           W_OWM_Rain72            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours72#rain"}
>     > 
>     > Number:Length           W_OWM_Rain75            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours75#rain"}
>     > 
>     > Number:Length           W_OWM_Rain78            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours78#rain"}
>     > 
>     > Number:Length           W_OWM_Rain81            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours81#rain"}
>     > 
>     > Number:Length           W_OWM_Rain84            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours84#rain"}
>     > 
>     > Number:Length           W_OWM_Rain87            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours87#rain"}
>     > 
>     > Number:Length           W_OWM_Rain90            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours90#rain"}
>     > 
>     > Number:Length           W_OWM_Rain93            "Rain [%d %unit%]"                                      (G_jdbc)                                        {channel="openweathermap:weather-and-forecast:a54e0a82:local:forecastHours93#rain"}
>     > 
>     > Number:Length           W_OWM_Rain96            "Rain [%d %unit%]"

Hopefully something here helps you. Make sure you have the import at the top of the rules file!!! Won’t work without it…Problem I ran into. I am stepping away from my computer, so good luck.

Branden

1 Like

I’ve got the items, rules and sitemap loaded (with my API), but I also need a file called winds.scale. Thanks.