[SOLVED] DateTime Items compare against fixed DateTimes

Thx @rlkoshak and @5iver . I haven’t tested yet, but i think these are the two methods, i’m searching for, to group my items at runtime. I will look in your DP-tutoral too, to find a method to remove/clear all items of a group throughout.
Now i need a bit help in calculating a date. Beginning from localLastMeasurement

which is Item for the actual date, i want to get the values of the next five days and then format them to string-variables in the form “yymmdd”.

Sorry for this silly question but any hint would help.

var currentPlus1 = localMeasurement.state.plusDays(1).format("%1$tY%1$tm%1$td")
...
1 Like

thx for reply. I still have a little problem with it. when testing i got error messages.

   var day0 = localLastMeasurement.state.format("%1$tY%1$tm%1$td")                 // date today/current
   //var day5 = localLastMeasurement.state.plusDays(5).format("%1$tY%1$tm%1$td")    // date in five days   --- first test
   //var day5 = localLastMeasurement.plusDays(5).state.format("%1$tY%1$tm%1$td")    // date in five days   --- second test


2018-12-04 11:10:24.835 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'owmSummarize_test': 'plusDays' is not a member of 'org.eclipse.smarthome.core.types.State'; line 22, column 14, length 38
2018-12-04 11:12:18.186 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'owmSummarize_test': 'plusDays' is not a member of 'org.eclipse.smarthome.core.library.items.DateTimeItem'; line 23, column 14, length 32

:thinking:
Any idea ?

Try that:

var day0String = localLastMeasurement.state.format("%1$tY%1$tm%1$td")
val day1String = DateTimeType.valueOf(localLastMeasurement.state.toString).plusDays(1).format("%1$tY%1$tm%1$td")

Still an error


val day5 = DateTimeType.valueOf(localLastMeasurement.state.toString).plusDays(5).format("%1$tY%1$tm%1$td")

Message:

2018-12-04 11:29:29.533 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'owmSummarize_test': 'plusDays' is not a member of 'org.eclipse.smarthome.core.library.types.DateTimeType'; line 24, column 14, length 69

Sorry DateTimes are a bit of a pain when it comes to conversion:
See:

Then try:

var day0String = localLastMeasurement.state.format("%1$tY%1$tm%1$td")
val day0 = new DateTime.valueOf(localLastMeasurement.state.toString)
val day1String = day0.plusDays(1).toString("yyMMdd")
val day2String = day0.plusDays(2).toString("yyMMdd")
...
1 Like

Sorry to disturb you again. I made a new Rule to have no sideeffects in:

//import org.eclipse.smarthome.model.script.ScriptServiceUtil

rule test_date1_owm
  when
   Item Dummy3 received command ON 
  then

var day0String = localLastMeasurement.state.format("%1$tY%1$tm%1$td")
val day0 = new DateTime.valueOf(localLastMeasurement.state.toString)
val day1String = day0.plusDays(1).toString("yyMMdd")
val day2String = day0.plusDays(2).toString("yyMMdd")
	 
   logInfo ("owm.test_date1", " String-Item: " + day0String)
   logInfo ("owm.test_date1", "Current-Date-Item: " + day0 )
   logInfo ("owm.test_date1", "day 1 -Date-Item: " + day1String)
   logInfo ("owm.test_date1", "day 2 -Date-Item: " + day2String)
end

and got this error:

2018-12-04 12:49:06.967 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test_date1_owm': An error occurred during the script execution: null

That means that localLastMeasurement is null

:thinking: Mmmmh

When using the Rule in this way:


rule test_date1_owm
  when
   Item Dummy3 received command ON 
  then

var day0String = localLastMeasurement.state.format("%1$tY%1$tm%1$td")
//val day0 = new DateTime.valueOf(localLastMeasurement.state.toString)
//val day1String = day0String.plusDays(1).toString("yyMMdd")
//val day2String = day0.plusDays(2).toString("yyMMdd")
	 
   logInfo ("owm.test_date1", " String-Item: " + day0String)
//   logInfo ("owm.test_date1", "Current-Time-Item: " + day0 )
//   logInfo ("owm.test_date1", "day 1 -Time-Item: " + day1String)
//   logInfo ("owm.test_date1", "day 2 -Time-Item: " + day2String)
end

The logger shows me:

2018-12-04 13:16:15.177 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'test_date1.rules'
2018-12-04 13:23:16.749 [INFO ] [marthome.model.script.owm.test_date1] -  String-Item: 20181204

day0 is not a string. Try using this…

logInfo ("owm.test_date1", "Current-Date-Item: " + day0.toString)

… my preference is to use…

logInfo (“owm.test_date1”, "Current-Date-Item: {} ", day0)

val day1String = day0String.plusDays(1).toString("yyMMdd")

Should be:

val day1String = day0.plusDays(1).toString("yyMMdd")
1 Like

thx @5iver .

Test:
Rule:

rule test_date1_owm
  when
   Item Dummy3 received command ON 
  then

var day0String = localLastMeasurement.state.format("%1$tY%1$tm%1$td")
val day0 = new DateTime.valueOf(localLastMeasurement.state.toString)
//val day1String = day0String.plusDays(1).toString("yyMMdd")
//val day2String = day0.plusDays(2).toString("yyMMdd")
	 
   logInfo ("owm.test_date1", " String-Item: " + day0String)
//   logInfo ("owm.test_date1", "Current-Time-Item: " + day0 )
   logInfo ("owm.test_date1", "Current-Date-Item: " + day0.toString)
//   logInfo ("owm.test_date1", "day 1 -Time-Item: " + day1String)
//   logInfo ("owm.test_date1", "day 2 -Time-Item: " + day2String)
end

Logger:

2018-12-04 13:31:24.252 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test_date1_owm': An error occurred during the script execution: null

Same error.:thinking:

Try this…

var day0String = localLastMeasurement.state.format("%1$tY%1$tm%1$td")
logInfo ("owm.test_date1", "String-Item: {}", day0String)
val day0 = new DateTime(localLastMeasurement.state.toString)
logInfo ("owm.test_date1", "Current-Time-Item: {}", day0)
val day1String = day0.plusDays(1).toString("yyMMdd")
logInfo ("owm.test_date1", "day 1 -Time-Item: {}", day1String)
val day2String = day0.plusDays(2).toString("yyMMdd")
logInfo ("owm.test_date1", "day 2 -Time-Item: {}", day2String)

By logging after each line, you can figure out where your errors occur. day0 was not defined properly.

thx. I tested the proposal of Scott.
But when I set free the day0-Constant the error comes up.

you are right. I changed the Rule to:

rule test_date2_owm
  when
   Item Dummy3 received command ON 
  then

  var day0String = localLastMeasurement.state.format("%1$tY%1$tm%1$td")
   logInfo ("owm.test_date1", " String-Item: " + day0String)
  val day0 = new DateTime.valueOf(localLastMeasurement.state.toString)
   logInfo ("owm.test_date1", "Current-Time-Item: " + day0.toString )
//  val day1String = day0String.plusDays(1).toString("yyMMdd")
//   logInfo ("owm.test_date1", "day 1 -Time-Item: " + day1String)
//  val day2String = day0.plusDays(2).toString("yyMMdd")
//   logInfo ("owm.test_date1", "day 2 -Time-Item: " + day2String)
end
2018-12-04 14:04:26.886 [INFO ] [marthome.model.script.owm.test_date1] -  String-Item: 20181204
2018-12-04 14:04:26.890 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test_date2_owm': 'plusDays' is not a member of 'org.eclipse.smarthome.core.library.items.DateTimeItem'; line 12, column 20, length 32

Do you have a proper definition for me?:wink:

See my previous post…

Sorry i’m a silly fool, didn’t see the forest for the trees. Now it works excellent.

This is a further step to my goal.
thx to you all @5iver, @vzorglub, @rlkoshak

Can you post your working code, thanks

Hi, @vzorglub,
i will do this as fast as i can.
At the moment i solved the problem of DateTime with the help of all of you.
Now im beginning to create the rest of the rule. Pls give me a while as I’m an old man :older_man:, and of course no programming specialist.
thx for your interest, i keep you informed.

Hi, all @vzorglub @5iver @rlkoshak
thought i have it. But i’m in trouble with a command:

tempItemTemperature.addGroupName("gTemp_day0")   //dynamic item-name brings the error

This is the rule:

import org.eclipse.smarthome.model.script.ScriptServiceUtil
  var dayindex = 0  // day index
  var dcountindex = 0 // items a day
  var sum_temp_curr =0
 
rule owmSummarize_test
  when
   Item Dummy3 received command ON  or
   Item localLastMeasurement changed
  then
//++++ initial variables for the "while"-loop ++++
   var itemindex = 3 //item index
   var itemincrement  = 3 //item step
//++++ initial variables for daily maximum if-loops = 8
   var count_day0 = 1
	 var count_day1 = 1
	 var count_day2 = 1
	 var count_day3 = 1
	 var count_day4 = 1
	 var count_day5 = 1
	 
	 
//++++ initialize daily forecastvariables from day0(totay) to day5 to compare in the "if"-loops ++++           ***thx to @5iver and @vzorglub for help***
//++++ https://community.openhab.org/t/datetime-items-compare-against-fixed-datetimes/58615     ++++
   var day0 = new DateTime(localLastMeasurement.state.toString).toString("yyMMdd")
   logInfo ("owm.rules start", "day 0-Time-Item: {}", day0)
   
   var day1 = new DateTime(localLastMeasurement.state.toString).plusDays(1).toString("yyMMdd")
   logInfo ("owm.rules", "day 1-Time-Item: {}", day1)
   
   var day2 = new DateTime(localLastMeasurement.state.toString).plusDays(2).toString("yyMMdd")
   logInfo ("owm.rules", "day 2-Time-Item: {}", day2)
   
   var day3 = new DateTime(localLastMeasurement.state.toString).plusDays(3).toString("yyMMdd")
   logInfo ("owm.rules", "day 3-Time-Item: {}", day3)
   
   var day4 = new DateTime(localLastMeasurement.state.toString).plusDays(4).toString("yyMMdd")
   logInfo ("owm.rules", "day 4-Time-Item: {}", day4)
   
   var day5 = new DateTime(localLastMeasurement.state.toString).plusDays(5).toString("yyMMdd")
   logInfo ("owm.rules", "day 5-Time-Item: {}", day5)


  while (itemindex >=0 && itemindex <=16)     //  ++++ Endpoint is set to 16 for testing, when working it is 120 ++++
  {
   logInfo("owm.rules","Item-Index {}", itemindex)
//++++ Pointer-adresses for the dynamically generated items to get corresponding item                           ***thx to @5iver and @rlkoshak for help***
   var tempItemTimestamp = ScriptServiceUtil.getItemRegistry.getItem("localHourlyForecast"+itemindex+"Timestamp")
   logInfo("owm.rules","tempItemTimestamp: " + tempItemTimestamp)   // original item is shown
   var tempItemTemperature = ScriptServiceUtil.getItemRegistry.getItem("localHourlyForecast"+itemindex+"Temperature")
   logInfo("owm.rules","tempItemTemperature: " + tempItemTemperature)  // original item is shown
   var tmp_timestamp = new DateTime(tempItemTimestamp.state.toString).toString("yyMMdd") // create temporarily timestamp as needed -yyMMdd-
   //logInfo("owm.rules","tmp_timestamp: " + tmp_timestamp)  // timestamp is shown as needed
   
   if (day0 == tmp_timestamp)  // an additional oparator can be used ( && count_day0 <= 8)
   {
     logInfo("owm.rules","tmp_timestamp: " + tmp_timestamp + " Group should be gTemp_day0 ") // only check if correct timestamp for day0 is passed.
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++ next lines are only for test with three items and item-names are manually set to see if addGroupName works
//     localHourlyForecast3Temperature.addGroupName("gTemp_day0")        // only for test if dynamic Group - addGroupName works (with a named item from owm.items it works)
//     logInfo ("owm.rules", "today " + localHourlyForecast3Temperature)    // only for test if dynamic Group  addGroupName works (with a named item from owm.items it works)
//     localHourlyForecast6Temperature.addGroupName("gTemp_day0")        // only for test if dynamic Group - addGroupName works (with a named item from owm.items it works)
//     logInfo ("owm.rules", "today " + localHourlyForecast6Temperature)    // only for test if dynamic Group  addGroupName works (with a named item from owm.items it works)
//     localHourlyForecast9Temperature.addGroupName("gTemp_day0")        // only for test if dynamic Group - addGroupName works (with a named item from owm.items it works)
//     logInfo ("owm.rules", "today " + localHourlyForecast9Temperature)    // only for test if dynamic Group  addGroupName works (with a named item from owm.items it works)
//++++ there is still a problem when removing the group fro the item, it seems still to be shown in the sitemap +++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++ This is the part which doesn't work as i want to work  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//     tempItemTemperature.addGroupName("gTemp_day0")            //dynamic item-name brings the error
     logInfo ("owm.rules", "today " + tempItemTemperature)     //dynamic item-name brings the error
     itemindex = itemindex + itemincrement
     count_day0 = count_day0 + 1
   }
   if (day1 == tmp_timestamp)  // an additional oparator can be used ( && count_day1 <= 8)
   {
     logInfo("owm.rules","tmp_timestamp: " + tmp_timestamp + " Group should be gTemp_day1 ")
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++ next lines are only for test with three items and item-names are manually set to see if addGroupName works
//     localHourlyForecast3Temperature.addGroupName("gTemp_day1")        // only for test if dynamic Group - addGroupName works (with a named item from owm.items it works)
//     logInfo ("owm.rules", "tomorrow " + localHourlyForecast3Temperature)    // only for test if dynamic Group  addGroupName works (with a named item from owm.items it works)
//     localHourlyForecast6Temperature.addGroupName("gTemp_day1")        // only for test if dynamic Group - addGroupName works (with a named item from owm.items it works)
//     logInfo ("owm.rules", "tomorrow " + localHourlyForecast6Temperature)    // only for test if dynamic Group  addGroupName works (with a named item from owm.items it works)
//     localHourlyForecast9Temperature.addGroupName("gTemp_day1")        // only for test if dynamic Group - addGroupName works (with a named item from owm.items it works)
//     logInfo ("owm.rules", "tomorrow " + localHourlyForecast9Temperature)    // only for test if dynamic Group  addGroupName works (with a named item from owm.items it works)
//++++ there is still a problem when removing the group fro the item, it seems still to be shown in the sitemap +++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++ This is the part which doesn't work as i want to work  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//     tempItemTemperature.addGroupName("gTemp_day1")            //dynamic item-name brings the error
     logInfo ("owm.rules", "tomorrow " + tempItemTemperature)  //dynamic item-name brings the error
     itemindex = itemindex + itemincrement
     count_day1 = count_day1 + 1
   }
   if (day2 == tmp_timestamp)  // an additional oparator can be used ( && count_day1 <= 8)
   {
     logInfo("owm.rules","tmp_timestamp: " + tmp_timestamp + " Group should be gTemp_day2 ")
//     tempItemTemperature.addGroupName("gTemp_day2")            //dynamic item-name brings the error
     logInfo ("owm.rules", "tomorrow " + tempItemTemperature)  //dynamic item-name brings the error
     itemindex = itemindex + itemincrement
     count_day1 = count_day2 + 1
   }
   if (day3 == tmp_timestamp)  // an additional oparator can be used ( && count_day1 <= 8)
   {
     logInfo("owm.rules","tmp_timestamp: " + tmp_timestamp + " Group should be gTemp_day3 ")
//     tempItemTemperature.addGroupName("gTemp_day3")            //dynamic item-name brings the error
     logInfo ("owm.rules", "tomorrow " + tempItemTemperature)  //dynamic item-name brings the error
     itemindex = itemindex + itemincrement
     count_day1 = count_day3 + 1
   }
   if (day4 == tmp_timestamp)  // an additional oparator can be used ( && count_day1 <= 8)
   {
     logInfo("owm.rules","tmp_timestamp: " + tmp_timestamp + " Group should be gTemp_day4 ")
//     tempItemTemperature.addGroupName("gTemp_day4")            //dynamic item-name brings the error
     logInfo ("owm.rules", "tomorrow " + tempItemTemperature)  //dynamic item-name brings the error
     itemindex = itemindex + itemincrement
     count_day1 = count_day4 + 1
   }
//++++ This if-Statement is normally not needed it's just for check if all counts are correct ++++++++++
   if (day5 == tmp_timestamp)  // an additional oparator can be used ( && count_day1 <= 8)
   {
     logInfo("owm.rules","tmp_timestamp: " + tmp_timestamp + " Group should be gTemp_day5 ")
//     tempItemTemperature.addGroupName("gTemp_day5")            //dynamic item-name brings the error
     logInfo ("owm.rules", "tomorrow " + tempItemTemperature)  //dynamic item-name brings the error
     itemindex = itemindex + itemincrement
     count_day1 = count_day5 + 1
   }

 }
   logInfo ("owm.owm.rules end", "Ende:  " + itemindex + " :Schrittweite:  " + itemincrement)
end

Looks like a lot of stuff, but most of it, is explanation and logInfo.

When usung the above command, i get the following error:

2018-12-06 01:47:22.021 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'owm.rules'
2018-12-06 01:47:34.789 [INFO ] [arthome.model.script.owm.rules start] - day 0-Time-Item: 181206
2018-12-06 01:47:34.795 [INFO ] [pse.smarthome.model.script.owm.rules] - day 1-Time-Item: 181207
2018-12-06 01:47:34.802 [INFO ] [pse.smarthome.model.script.owm.rules] - day 2-Time-Item: 181208
2018-12-06 01:47:34.808 [INFO ] [pse.smarthome.model.script.owm.rules] - day 3-Time-Item: 181209
2018-12-06 01:47:34.814 [INFO ] [pse.smarthome.model.script.owm.rules] - day 4-Time-Item: 181210
2018-12-06 01:47:34.821 [INFO ] [pse.smarthome.model.script.owm.rules] - day 5-Time-Item: 181211
2018-12-06 01:47:34.827 [INFO ] [pse.smarthome.model.script.owm.rules] - Item-Index 3
2018-12-06 01:47:34.833 [INFO ] [pse.smarthome.model.script.owm.rules] - tempItemTimestamp: localHourlyForecast3Timestamp (Type=DateTimeItem, State=2018-12-06T04:00:00.000+0100, Label=Timestamp in 03 hours, Category=time, Groups=[gOWM])
2018-12-06 01:47:34.838 [INFO ] [pse.smarthome.model.script.owm.rules] - tempItemTemperature: localHourlyForecast3Temperature (Type=NumberItem, State=5.11 °C, Label=Temperature in 03 hours, Category=temperature, Groups=[gOWM])
2018-12-06 01:47:34.845 [INFO ] [pse.smarthome.model.script.owm.rules] - tmp_timestamp: 181206 Group should be gTemp_day0 
2018-12-06 01:47:34.848 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'owmSummarize_test': 'addGroupName' is not a member of 'org.eclipse.smarthome.core.items.Item'; line 71, column 6, length 46

It seems as if the Pointer-Item (hope this is correct) tempItemTemperature has problems with this kind of addGroup-Method. But in the logger, two lines before the ERROR the correct Item is shown tempItemTemperature: localHourlyForecast3Temperature (Type=NumberItem, State=5.11 °C, Label=Temperature in 03 hours, Category=temperature, Groups=[gOWM])

Part of owm.items:

Group                gOWM
Group:Number:Temperature:AVG     gTemp_day0                  "Ø-Temperature today [%.1f %unit%]"                                          (gOWM)
Group:Number:Temperature:AVG     gTemp_day1                  "Ø-Temperature tomorrow [%.1f %unit%]"                                       (gOWM)
Group:Number:Temperature:AVG     gTemp_day2                  "Ø-Temperature in 2 days [%.1f %unit%]"                                      (gOWM)
Group:Number:Temperature:AVG     gTemp_day3                  "Ø-Temperature in 3 days [%.1f %unit%]"                                      (gOWM)
Group:Number:Temperature:AVG     gTemp_day4                  "Ø-Temperature in 4 days [%.1f %unit%]"                                      (gOWM)
Group:Number:Temperature:AVG     gTemp_day5                  "Ø-Temperature in 5 days [%.1f %unit%]"                                      (gOWM)
//Group:Number:Temperature:AVG     gTemp_test                  "Ø-Temperature Test [%.1f %unit%]"                                           (gOWM)


//String               localStationId                          "Orts-Nr. [%s]"                                                            (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:station#id" }
String               localStationName                        "Ort [%s]"                                                                  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:station#name" }
Location             localStationLocation                    "Koordinaten [%2$s°N %3$s°E]"                                 <location>     (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:station#location" }
                                                             
DateTime             localLastMeasurement                    "Timestamp of last measurement [%1$ta, %1$ty-%1$tm-%1$td %1$tH:%1$tM]"<time> (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#time-stamp" }
                                                             
Image                localCurrentConditionIcon               "Icon"                                                                       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#icon" }
Number:Temperature   localCurrentTemperature                 "Current temperature [%.1f %unit%]"                           <temperature>  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#temperature" }
String               localCurrentCondition                   "Current condition [%s]"                                      <sun_clouds>   (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#condition" }
Number:Pressure      localCurrentPressure                    "Current barometric pressure [%.1f %unit%]"                   <pressure>     (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#pressure" }
Number:Dimensionless localCurrentHumidity                    "Current atmospheric humidity [%d %unit%]"                    <humidity>     (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#humidity" }
Number:Speed         localCurrentWindSpeed                   "Current wind speed [%.1f km/h]"                              <wind>         (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#wind-speed" }
Number:Angle         localCurrentWindDirection               "Current wind direction [%d %unit%]"                          <wind>         (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#wind-direction" }
Number:Length        localCurrentRainVolume                  "Current rain volume [%.1f %unit%]"                           <rain>         (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#rain" }
Number:Length        localCurrentSnowVolume                  "Current snow volume [%.1f %unit%]"                           <snow>         (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#snow" }
Number:Length        localCurrentGustSpeed                   "Current Gust Speed Windböen[%.1f %unit%]"                    <wind>         (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#wind-gust" }
Number:Dimensionless localCurrentCloudiness                  "Current cloudiness [%d %unit%]"                              <cloudiness>   (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#cloudiness" }
String               localCurrentConditionID                 "Current condition ID[%s]"                                    <pic803>       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:current#condition-id" }
String               localCurrentDummy                       "---------------------------------------"                     <clouds>       (gOWM)
DateTime             localHourlyForecast3Timestamp           "Timestamp in 03 hours [%1$ta, %1$ty-%1$tm-%1$td %1$tH:%1$tM]" <time>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#time-stamp" }
Image                localHourlyForecast3ConditionIcon       "Icon"                                                                       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#icon" }
Number:Temperature   localHourlyForecast3Temperature         "Temperature in 03 hours [%.1f %unit%]"                        <temperature> (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#temperature" }

String               localHourlyForecast3Condition           "Condition in 03 hours [%s]"                                   <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#condition" }
Number:Pressure      localHourlyForecast3Pressure            "in 03 hours barometric pressure [%.1f %unit%]"                <pressure>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#pressure" }
Number:Dimensionless localHourlyForecast3Humidity            "in 03 hours atmospheric humidity [%d %unit%]"                 <humidity>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#humidity" }
Number:Speed         localHourlyForecast3WindSpeed           "in 03 hours wind speed [%.1f km/h]"                           <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#wind-speed" }
Number:Angle         localHourlyForecast3WindDirection       "in 03 hours wind direction [%d %unit%]"                       <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#wind-direction" }
Number:Length        localHourlyForecast3RainVolume          "in 03 hours rain volume [%.1f %unit%]"                        <rain>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#rain" }
Number:Length        localHourlyForecast3SnowVolume          "in 03 hours snow volume [%.1f %unit%]"                        <snow>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#snow" }
Number:Length        localHourlyForecast3GustSpeed           "in 03 hours Gust Speed Windböen[%.1f %unit%]"                 <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#wind-gust" }
Number:Dimensionless localHourlyForecast3Cloudiness          "in 03 hours cloudiness [%d %unit%]"                           <cloudiness>  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#cloudiness" }
String               localHourlyForecast3ConditionId         "Condition ID [%s]"                                            <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#condition-id" }
String               localHourlyForecast3Dummy               "---------------------------------------"                      <clouds>      (gOWM)


DateTime             localHourlyForecast6Timestamp           "Timestamp in 06 hours [%1$ta, %1$ty-%1$tm-%1$td %1$tH:%1$tM]" <time>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#time-stamp" }
Image                localHourlyForecast6ConditionIcon       "Icon"                                                                       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#icon" }
Number:Temperature   localHourlyForecast6Temperature         "Temperature in 06 hours [%.1f %unit%]"                        <temperature> (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#temperature" }
String               localHourlyForecast6Condition           "Condition in 06 hours [%s]"                                   <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#condition" }
Number:Pressure      localHourlyForecast6Pressure            "in 06 hours barometric pressure [%.1f %unit%]"                <pressure>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#pressure" }
Number:Dimensionless localHourlyForecast6Humidity            "in 06 hours atmospheric humidity [%d %unit%]"                 <humidity>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#humidity" }
Number:Speed         localHourlyForecast6WindSpeed           "in 06 hours wind speed [%.1f km/h]"                           <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#wind-speed" }
Number:Angle         localHourlyForecast6WindDirection       "in 06 hours wind direction [%d %unit%]"                       <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#wind-direction" }
Number:Length        localHourlyForecast6RainVolume          "in 06 hours rain volume [%.1f %unit%]"                        <rain>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#rain" }
Number:Length        localHourlyForecast6SnowVolume          "in 06 hours snow volume [%.1f %unit%]"                        <snow>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#snow" }
Number:Length        localHourlyForecast6GustSpeed           "in 06 hours Gust Speed Windböen[%.1f %unit%]"                 <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#wind-gust" }
Number:Dimensionless localHourlyForecast6Cloudiness          "in 06 hours cloudiness [%d %unit%]"                           <cloudiness>  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#cloudiness" }
String               localHourlyForecast6ConditionId         "Condition ID [%s]"                                            <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#condition-id" }
String               localHourlyForecast6Dummy               "---------------------------------------"                      <clouds>      (gOWM)

DateTime             localHourlyForecast9Timestamp           "Timestamp in 09 hours [%1$ta, %1$ty-%1$tm-%1$td %1$tH:%1$tM]" <time>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#time-stamp" }
Image                localHourlyForecast9ConditionIcon       "Icon"                                                                       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#icon" }
Number:Temperature   localHourlyForecast9Temperature         "Temperature in 09 hours [%.1f %unit%]"                        <temperature> (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#temperature" }
String               localHourlyForecast9Condition           "Condition in 09 hours [%s]"                                   <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#condition" }
Number:Pressure      localHourlyForecast9Pressure            "barometric pressure in 09 hours [%.1f %unit%]"                <pressure>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#pressure" }
Number:Dimensionless localHourlyForecast9Humidity            "atmospheric humidity in 09 hours [%d %unit%]"                 <humidity>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#humidity" }
Number:Speed         localHourlyForecast9WindSpeed           "wind speed in 09 hours [%.1f km/h]"                           <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#wind-speed" }
Number:Angle         localHourlyForecast9WindDirection       "wind direction in 09 hours [%d %unit%]"                       <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#wind-direction" }
Number:Length        localHourlyForecast9RainVolume          "rain volume in 09 hours [%.1f %unit%]"                        <rain>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#rain" }
Number:Length        localHourlyForecast9SnowVolume          "snow volume in 09 hours [%.1f %unit%]"                        <snow>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#snow" }
Number:Length        localHourlyForecast9GustSpeed           "Gust Speed Windböen in 09 hours [%.1f %unit%]"                <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#wind-gust" }
Number:Dimensionless localHourlyForecast9Cloudiness          "cloudiness in 09 hours [%d %unit%]"                           <cloudiness>  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#cloudiness" }
String               localHourlyForecast9ConditionId         "Condition ID in 09 hours [%s]"                                <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours09#condition-id" }
String               localHourlyForecast9Dummy               "---------------------------------------"                      <clouds>      (gOWM)


DateTime             localHourlyForecast12Timestamp          "Timestamp in 12 hours [%1$ta, %1$ty-%1$tm-%1$td %1$tH:%1$tM]" <time>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#time-stamp" }
Image                localHourlyForecast12ConditionIcon      "Icon"                                                                       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#icon" }
Number:Temperature   localHourlyForecast12Temperature        "Temperature in 12 hours [%.1f %unit%]"                        <temperature> (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#temperature" }
String               localHourlyForecast12Condition          "Condition in 12 hours [%s]"                                   <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#condition" }
Number:Pressure      localHourlyForecast12Pressure           "barometric pressure in 12 hours [%.1f %unit%]"                <pressure>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#pressure" }
Number:Dimensionless localHourlyForecast12Humidity           "atmospheric humidity in 12 hours [%d %unit%]"                 <humidity>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#humidity" }
Number:Speed         localHourlyForecast12WindSpeed          "wind speed in 12 hours [%.1f km/h]"                           <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#wind-speed" }
Number:Angle         localHourlyForecast12WindDirection      "wind direction in 12 hours [%d %unit%]"                       <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#wind-direction" }
Number:Length        localHourlyForecast12RainVolume         "rain volume in 12 hours [%.1f %unit%]"                        <rain>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#rain" }
Number:Length        localHourlyForecast12SnowVolume         "snow volume in 12 hours [%.1f %unit%]"                        <snow>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#snow" }
Number:Length        localHourlyForecast12GustSpeed          "Gust Speed Windböen in 12 hours [%.1f %unit%]"                <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#wind-gust" }
Number:Dimensionless localHourlyForecast12Cloudiness         "cloudiness in 12 hours [%d %unit%]"                           <cloudiness>  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#cloudiness" }
String               localHourlyForecast12ConditionId        "Condition ID in 12 hours [%s]"                                <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours12#condition-id" }
String               localHourlyForecast12Dummy              "---------------------------------------"                      <clouds>      (gOWM)
                                                             
DateTime             localHourlyForecast15Timestamp          "Timestamp in 15 hours [%1$ta, %1$ty-%1$tm-%1$td %1$tH:%1$tM]" <time>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#time-stamp" }
Image                localHourlyForecast15ConditionIcon      "Icon"                                                                       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#icon" }
Number:Temperature   localHourlyForecast15Temperature        "Temperature in 15 hours [%.1f %unit%]"                        <temperature> (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#temperature" }
String               localHourlyForecast15Condition          "Condition in 15 hours [%s]"                                   <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#condition" }
Number:Pressure      localHourlyForecast15Pressure           "barometric pressure in 15 hours [%.1f %unit%]"                <pressure>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#pressure" }
Number:Dimensionless localHourlyForecast15Humidity           "atmospheric humidity in 15 hours [%d %unit%]"                 <humidity>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#humidity" }
Number:Speed         localHourlyForecast15WindSpeed          "wind speed in 15 hours [%.1f km/h]"                           <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#wind-speed" }
Number:Angle         localHourlyForecast15WindDirection      "wind direction in 15 hours [%d %unit%]"                       <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#wind-direction" }
Number:Length        localHourlyForecast15RainVolume         "rain volume in 15 hours [%.1f %unit%]"                        <rain>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#rain" }
Number:Length        localHourlyForecast15SnowVolume         "snow volume in 15 hours [%.1f %unit%]"                        <snow>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#snow" }
Number:Length        localHourlyForecast15GustSpeed          "Gust Speed Windböen in 15 hours [%.1f %unit%]"                <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#wind-gust" }
Number:Dimensionless localHourlyForecast15Cloudiness         "cloudiness in 15 hours [%d %unit%]"                           <cloudiness>  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#cloudiness" }
String               localHourlyForecast15ConditionId        "Condition ID in 15 hours [%s]"                                <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours15#condition-id" }
String               localHourlyForecast15Dummy              "---------------------------------------"                      <clouds>      (gOWM)
                                                             
DateTime             localHourlyForecast18Timestamp          "Timestamp in 18 hours [%1$ta, %1$ty-%1$tm-%1$td %1$tH:%1$tM]" <time>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#time-stamp" }
Image                localHourlyForecast18ConditionIcon      "Icon"                                                                       (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#icon" }
Number:Temperature   localHourlyForecast18Temperature        "Temperature in 18 hours [%.1f %unit%]"                        <temperature> (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#temperature" }
String               localHourlyForecast18Condition          "Condition in 18 hours [%s]"                                   <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#condition" }
Number:Pressure      localHourlyForecast18Pressure           "barometric pressure in 18 hours [%.1f %unit%]"                <pressure>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#pressure" }
Number:Dimensionless localHourlyForecast18Humidity           "atmospheric humidity in 18 hours [%d %unit%]"                 <humidity>    (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#humidity" }
Number:Speed         localHourlyForecast18WindSpeed          "wind speed in 18 hours [%.1f km/h]"                           <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#wind-speed" }
Number:Angle         localHourlyForecast18WindDirection      "wind direction in 18 hours [%d %unit%]"                       <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#wind-direction" }
Number:Length        localHourlyForecast18RainVolume         "rain volume in 18 hours [%.1f %unit%]"                        <rain>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#rain" }
Number:Length        localHourlyForecast18SnowVolume         "snow volume in 18 hours [%.1f %unit%]"                        <snow>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#snow" }
Number:Length        localHourlyForecast18GustSpeed          "Gust Speed Windböen in 18 hours [%.1f %unit%]"                <wind>        (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#wind-gust" }
Number:Dimensionless localHourlyForecast18Cloudiness         "cloudiness in 18 hours [%d %unit%]"                           <cloudiness>  (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#cloudiness" }
String               localHourlyForecast18ConditionId        "Condition ID in 18 hours [%s]"                                <pic600>      (gOWM)              { channel="openweathermap:weather-and-forecast:api:local:forecastHours18#condition-id" }
String               localHourlyForecast18Dummy              "---------------------------------------"                      <clouds>      (gOWM)
                                                             

If you like to have the complete item-set i can post it.
Any hints or tips are welcome.