Openweathermap new "One Call" API

Finally I am getting around to implementing weather stuff into my system. It seems to me that, in the couple/few years I have been “thinking about it” that already several providers have closed their APIs, been bought out, etc… One that seems to stick around through all this time however has been Open Weather Map. After (yet more) research on the forums, I decided to initially try going in this direction (feedback still welcome even on this point however, as I am just starting out).

Anyway, so I see they have this “new” (how new? I dunno) “One Call” API which (copying from linked page):

One Call API provides the following weather data for any geographical coordinate:

  • Current weather

  • Minute forecast for 1 hour

  • Hourly forecast for 48 hours

  • Daily forecast for 7 days

  • Historical weather data for 5 previous days

A little further down:

How to make an API call

https://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={lon}&exclude={part}&appid={YOUR API KEY}

I searched the forum but (somewhat surprisingly) did not find any threads about this yet, so I decided to start one.

Now, I just started looking into this, so not sure exactly how the current openweathermap binding works, however I do not see anywhere to change the URL that it uses to call the API. Maybe I need to look more, or maybe it is hard coded.

Maybe together we can figure this out. Or maybe I should just use the existing/proven “5 day / 3 hour” forecast that comes standard with the free API account. I guess we will see…

I will go back to banging my head against this particular wall, meanwhile any feedback from someone who got this working (or gave up?) is welcomed. :smiley:

EDIT:
OK, brief investigation revealed there is apparently already an issue over at openhab-addons GitHub about this. I added my $0.02 and linked my forum post here.

A small reminder for those new to the F/LOSS scene: It is usually considered un-neccessary to pester developers about “when” something might be ready. Adding “+1” or :+1:s to an issue may be considered anywhere from “pestering” to “gauging interest” depending on the particular project and developers. Therefore I did not link to the issue at GitHub for pestering purposes, but rather so anyone interested in this (as I was) can more easily find the information. Just my $0.02, FWIW. :wink:

So for me, I guess for now, maybe I do it “the old” way… Or maybe look at binding code and see if implementation will be a big deal, or not…

1 Like

Hi!

I solved using the HTTP binding and JSON transformation.

I configured the HTTP cache to retrieve the JSON response to the One Call API in the service/http.cfg file:

owm.url=https://api.openweathermap.org/data/2.5/onecall?lat=**LAT**&lon=**LON**&exclude=**minutely,hourly**&units=**metric**&lang=**it**&appid=**API KEY**
owm.updateInterval=3600000

Then in the “items” file i used the JSON transformation:

...
DateTime localDailyForecastTodayTimestamp "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time> { **http="<[owm:60000:JSONPATH($.daily.[0].dt)]"** }
Number:Temperature localDailyForecastTodayMinTemperature "Minimum temperature for today [%.1f %unit%]" <temperature> { **http="<[owm:60000:JSONPATH($.daily.[0].temp.min)]"** }
Number:Temperature localDailyForecastTodayMaxTemperature "Maximum temperature for today [%.1f %unit%]" <temperature> { **http="<[owm:60000:JSONPATH($.daily.[0].temp.max)]"** }
...

Hope it helps anyone wanting to start using the One Call API without waiting the OpenWeatherMap binding to be updated… :wink:

2 Likes

@martix77 This is a great idea. Do you have more JSONPATH examples?
I would really enjoy a full list of your items, so tinkering around with correct JSONPATH would not be necessary.

Nevertheless i would not recommand using the deprecated HTTP binding v1.
Better use sendHttpGetRequest in a rule. Here is a example:

weather.rules

var weatherString = ""

rule "Refresh OWM Weather Data"
when
	//enter quartz cron expression https://www.freeformatter.com/cron-expression-generator-quartz.html
	//Time cron "0/10 * * ? * * *" or //every 10 second for development
	Time cron "0 0 * ? * *" //At every hour (second :00 of minute :00)
then
	logInfo("weather.rules", "Refresh OWM Weather Data")
	var url = "https://api.openweathermap.org/data/2.5/onecall?lat=LAT&lon=LON&exclude=minutely,hourly&units=metric&lang=it&appid=APIKEY"
	weatherString = sendHttpGetRequest(url)
	
	//check if it's a valid response -> not "Invalid API key"
	if (weatherString.contains("timezone")) {
		postUpdate(localDailyForecastTodayTimestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[0].dt", weatherString)) * 1000).toString))
		postUpdate(localDailyForecastTodayMinTemperature, transform("JSONPATH", "$.daily.[0].temp.min", weatherString))
		postUpdate(localDailyForecastTodayMaxTemperature, transform("JSONPATH", "$.daily.[0].temp.max", weatherString))

	} else { //log error. Invalid API key ?
		logInfo("weather.rules", "Error loading data from OWM: " + weatherString)
	}
end

weather.items

DateTime localDailyForecastTodayTimestamp "Timestamp of forecast [%1$tY-%1$tm-%1$td]"
Number:Temperature localDailyForecastTodayMinTemperature "Minimum temperature for today [%.1f %unit%]"
Number:Temperature localDailyForecastTodayMaxTemperature "Maximum temperature for today [%.1f %unit%]"
2 Likes

Thank you very much for the hint!

I’ll be playing with this during this weekend, I’ll do my best to post my updated configuration ASAP.
And thank you for this “powerful line of code” that saved me a long and messy rule! :wink:

postUpdate(localDailyForecastTodayTimestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[0].dt", weatherString)) * 1000).toString))

I would optimize it like this, being the output of the transformation a string and multipling for 1000 is equivalent of adding three trailing zeros:

postUpdate(localDailyForecastTodayTimestamp, new DateTimeType(new DateTime(transform("JSONPATH", "$.daily.[0].dt", weatherString) + "000")))

but I’m getting an error that I struggle to understand:

2020-07-10 17:22:25.213 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Error during the execution of startup rule 'Refresh OWM Weather Data': Invalid format: "1594378800000" is malformed at "0000"

:thinking:
EDIT:
I shoud have read the JodaTime documentation before… The DateTime requires, among others, a long instant to be correctly instanced. Newbie error… :upside_down_face:

1 Like

Great work guys!

Other projects kept me busy, so I did not have another chance to work on this yet. I see it was a good idea to make a forum post though. :smiley:

I am very excited about getting “daily” forecasts working!

I don’t want to presume anything, but do you struggle with understanding JSON/JSONPATH? I only ask because I did too at first. But it’s actually quite simple once you understand it (well, I guess that could be said about most things :smile:). Or maybe you just find this tedious with all the different items. Certainly a copy & paste will be easier. FWIW, they do provide a very good example of the new API at the first link in my OP.

1 Like

This! Especially getting everything straight can cost a lot of time, because it’s very easy to mix things up.

There are quite a lot of items in the weather binding, aren’t there? :smile:

Hi there,
In advance, im a total new to this.
So im tring to set the onecall api up like @sVn described above.
I created the rule and items in VS Code and they sem to work since they have values asinged wen hovering over the items.
But wehn i try to display the value via HABPanel (dummy) i only get a empty box, in Paper UI´s Control they arnt listed ether but i can find them in the items config.
Do i ned to add some kind of dummy thing to link tehm so they show up?

Paper not showing an item that isn’t backed by a thing is normal, I think.

Can you get them to show up in a sitemap on the basic UI? That would tell you if it was an item issue, or a habpanel problem.

I can display the item in basic UI, so the item itself must be working.
Is there a way to link items to a dummy Thing, maybe that wuld solve the problem?

If the item and value show up in the Basic UI, then I assume you’re looking at an issue with HabPanel displaying it. I just tried an item calculated by a rule with no backing thing in a Dummy widget, and it shows up. I did have to shift-refresh the page after adding it, though. Might be worth moving this over to a HabPanel thread.

Here, I’m just going to be lazy and wait to see if someone posts a list of weather items for the rule. :wink:

Yesterday i added some items and today at least the tempratures worked in HAB Panel :raised_hands:
When im finished i will poste my rule and items here :wink:

So here is what i made based on sVn´s rules

owm_onecall_wetter.rules

var weatherString = ""

var String lat = "your latitude" /*latitude*/

var String lon = "your longitude" /*longitude*/

var String lang = "de" /*language (see: https://openweathermap.org/api/one-call-api) */

var String exclude = "minutly" /*what to exclude (current,minutely,hourly,daily) WARNING: no rule for minutely*/

var String units = "metric" /*Units of measurement (standard, metric, imperial)*/

var String appid = "your API key"

rule "Refresh OWM Weather Data"

when

    //enter quartz cron expression https://www.freeformatter.com/cron-expression-generator-quartz.html

    //Time cron "0/10 * * ? * * *" or //every 10 second for development

    Time cron "0 0 * ? * *" //At every hour (second :00 of minute :00)

then

    logInfo("owm_onecall_wetter.rules", "Refresh OWM Weather Data")

    var String url = "https://api.openweathermap.org/data/2.5/onecall?lat=" + lat + "&lon=" + lon + "&exclude=" + exclude + "&units=" + units + "&lang=" + lang +"&appid=" + appid

    weatherString = sendHttpGetRequest(url)

    

    //check if it's a valid response -> not "Invalid API key"

    if (weatherString.contains("timezone")) {

        //Curent weather

            /*Abrufzeitstempel*/    postUpdate(OWM_Curent_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.current.dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Curent_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.current.sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Curent_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.current.sunset", weatherString)) * 1000).toString))

            /*Ist Temperatur*/      postUpdate(OWM_Curent_temperature, transform("JSONPATH", "$.current.temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Curent_feel_temperature, transform("JSONPATH", "$.current.feels_like", weatherString))

            /*Luftdruck*/           postUpdate(OWM_Curent_pressure, transform("JSONPATH", "$.current.pressure", weatherString))

            /*Luftfeuchtigkeit*/    postUpdate(OWM_Curent_humidity, transform("JSONPATH", "$.current.humidity", weatherString))

            /*Taupunkt*/            postUpdate(OWM_Curent_dew_point, transform("JSONPATH", "$.current.dew_point", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Curent_clouds, transform("JSONPATH", "$.current.clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Curent_uvi, transform("JSONPATH", "$.current.uvi", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Curent_wind_speed, transform("JSONPATH", "$.current.wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Curent_wind_deg, transform("JSONPATH", "$.current.wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Curent_weather_id, transform("JSONPATH", "$.current.weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Curent_weather_main, transform("JSONPATH", "$.current.weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Curent_weather_description, transform("JSONPATH", "$.current.weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Curent_weather_icon, transform("JSONPATH", "$.current.weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Curent_rain, transform("JSONPATH", "$.current.rain.1h", weatherString))

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        //hourly weather

        //+0H

            /*zeitstempel*/         postUpdate(OWM_Hourly_0_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[0].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_0_temperature, transform("JSONPATH", "$.hourly.[0].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_0_feel_temperature, transform("JSONPATH", "$.hourly.[0].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_0_clouds, transform("JSONPATH", "$.hourly.[0].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_0_wind_speed, transform("JSONPATH", "$.hourly.[0].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_0_wind_deg, transform("JSONPATH", "$.hourly.[0].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_0_weather_id, transform("JSONPATH", "$.hourly.[0].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_0_weather_main, transform("JSONPATH", "$.hourly.[0].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_0_weather_description, transform("JSONPATH", "$.hourly.[0].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_0_weather_icon, transform("JSONPATH", "$.hourly.[0].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_0_rain, transform("JSONPATH", "$.hourly.[0].rain.1h", weatherString))

        //+1H

            /*zeitstempel*/         postUpdate(OWM_Hourly_1_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[1].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_1_temperature, transform("JSONPATH", "$.hourly.[1].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_1_feel_temperature, transform("JSONPATH", "$.hourly.[1].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_1_clouds, transform("JSONPATH", "$.hourly.[1].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_1_wind_speed, transform("JSONPATH", "$.hourly.[1].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_1_wind_deg, transform("JSONPATH", "$.hourly.[1].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_1_weather_id, transform("JSONPATH", "$.hourly.[1].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_1_weather_main, transform("JSONPATH", "$.hourly.[1].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_1_weather_description, transform("JSONPATH", "$.hourly.[1].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_1_weather_icon, transform("JSONPATH", "$.hourly.[1].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_1_rain, transform("JSONPATH", "$.hourly.[1].rain.1h", weatherString))

        //+2H

            /*zeitstempel*/         postUpdate(OWM_Hourly_2_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[2].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_2_temperature, transform("JSONPATH", "$.hourly.[2].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_2_feel_temperature, transform("JSONPATH", "$.hourly.[2].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_2_clouds, transform("JSONPATH", "$.hourly.[2].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_2_wind_speed, transform("JSONPATH", "$.hourly.[2].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_2_wind_deg, transform("JSONPATH", "$.hourly.[2].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_2_weather_id, transform("JSONPATH", "$.hourly.[2].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_2_weather_main, transform("JSONPATH", "$.hourly.[2].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_2_weather_description, transform("JSONPATH", "$.hourly.[2].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_2_weather_icon, transform("JSONPATH", "$.hourly.[2].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_2_rain, transform("JSONPATH", "$.hourly.[2].rain.1h", weatherString))

        //+3H

            /*zeitstempel*/         postUpdate(OWM_Hourly_3_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[3].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_3_temperature, transform("JSONPATH", "$.hourly.[3].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_3_feel_temperature, transform("JSONPATH", "$.hourly.[3].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_3_clouds, transform("JSONPATH", "$.hourly.[3].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_3_wind_speed, transform("JSONPATH", "$.hourly.[3].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_3_wind_deg, transform("JSONPATH", "$.hourly.[3].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_3_weather_id, transform("JSONPATH", "$.hourly.[3].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_3_weather_main, transform("JSONPATH", "$.hourly.[3].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_3_weather_description, transform("JSONPATH", "$.hourly.[3].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_3_weather_icon, transform("JSONPATH", "$.hourly.[3].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_3_rain, transform("JSONPATH", "$.hourly.[3].rain.1h", weatherString))

        //+4H

            /*zeitstempel*/         postUpdate(OWM_Hourly_4_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[4].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_4_temperature, transform("JSONPATH", "$.hourly.[4].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_4_feel_temperature, transform("JSONPATH", "$.hourly.[4].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_4_clouds, transform("JSONPATH", "$.hourly.[4].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_4_wind_speed, transform("JSONPATH", "$.hourly.[4].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_4_wind_deg, transform("JSONPATH", "$.hourly.[4].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_4_weather_id, transform("JSONPATH", "$.hourly.[4].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_4_weather_main, transform("JSONPATH", "$.hourly.[4].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_4_weather_description, transform("JSONPATH", "$.hourly.[4].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_4_weather_icon, transform("JSONPATH", "$.hourly.[4].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_4_rain, transform("JSONPATH", "$.hourly.[4].rain.1h", weatherString))

        //+5H

            /*zeitstempel*/         postUpdate(OWM_Hourly_5_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[5].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_5_temperature, transform("JSONPATH", "$.hourly.[5].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_5_feel_temperature, transform("JSONPATH", "$.hourly.[5].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_5_clouds, transform("JSONPATH", "$.hourly.[5].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_5_wind_speed, transform("JSONPATH", "$.hourly.[5].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_5_wind_deg, transform("JSONPATH", "$.hourly.[5].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_5_weather_id, transform("JSONPATH", "$.hourly.[5].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_5_weather_main, transform("JSONPATH", "$.hourly.[5].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_5_weather_description, transform("JSONPATH", "$.hourly.[5].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_5_weather_icon, transform("JSONPATH", "$.hourly.[5].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_5_rain, transform("JSONPATH", "$.hourly.[5].rain.1h", weatherString))

        //+6H

            /*zeitstempel*/         postUpdate(OWM_Hourly_6_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[6].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_6_temperature, transform("JSONPATH", "$.hourly.[6].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_6_feel_temperature, transform("JSONPATH", "$.hourly.[6].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_6_clouds, transform("JSONPATH", "$.hourly.[6].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_6_wind_speed, transform("JSONPATH", "$.hourly.[6].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_6_wind_deg, transform("JSONPATH", "$.hourly.[6].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_6_weather_id, transform("JSONPATH", "$.hourly.[6].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_6_weather_main, transform("JSONPATH", "$.hourly.[6].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_6_weather_description, transform("JSONPATH", "$.hourly.[6].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_6_weather_icon, transform("JSONPATH", "$.hourly.[6].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_6_rain, transform("JSONPATH", "$.hourly.[6].rain.1h", weatherString))

        //+7H

            /*zeitstempel*/         postUpdate(OWM_Hourly_7_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[7].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_7_temperature, transform("JSONPATH", "$.hourly.[7].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_7_feel_temperature, transform("JSONPATH", "$.hourly.[7].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_7_clouds, transform("JSONPATH", "$.hourly.[7].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_7_wind_speed, transform("JSONPATH", "$.hourly.[7].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_7_wind_deg, transform("JSONPATH", "$.hourly.[7].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_7_weather_id, transform("JSONPATH", "$.hourly.[7].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_7_weather_main, transform("JSONPATH", "$.hourly.[7].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_7_weather_description, transform("JSONPATH", "$.hourly.[7].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_7_weather_icon, transform("JSONPATH", "$.hourly.[7].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_7_rain, transform("JSONPATH", "$.hourly.[7].rain.1h", weatherString))

        //+8H

            /*zeitstempel*/         postUpdate(OWM_Hourly_8_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[8].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_8_temperature, transform("JSONPATH", "$.hourly.[8].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_8_feel_temperature, transform("JSONPATH", "$.hourly.[8].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_8_clouds, transform("JSONPATH", "$.hourly.[8].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_8_wind_speed, transform("JSONPATH", "$.hourly.[8].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_8_wind_deg, transform("JSONPATH", "$.hourly.[8].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_8_weather_id, transform("JSONPATH", "$.hourly.[8].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_8_weather_main, transform("JSONPATH", "$.hourly.[8].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_8_weather_description, transform("JSONPATH", "$.hourly.[8].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_8_weather_icon, transform("JSONPATH", "$.hourly.[8].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_8_rain, transform("JSONPATH", "$.hourly.[8].rain.1h", weatherString))

        //+9H

            /*zeitstempel*/         postUpdate(OWM_Hourly_9_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[9].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_9_temperature, transform("JSONPATH", "$.hourly.[9].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_9_feel_temperature, transform("JSONPATH", "$.hourly.[9].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_9_clouds, transform("JSONPATH", "$.hourly.[9].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_9_wind_speed, transform("JSONPATH", "$.hourly.[9].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_9_wind_deg, transform("JSONPATH", "$.hourly.[9].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_9_weather_id, transform("JSONPATH", "$.hourly.[9].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_9_weather_main, transform("JSONPATH", "$.hourly.[9].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_9_weather_description, transform("JSONPATH", "$.hourly.[9].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_9_weather_icon, transform("JSONPATH", "$.hourly.[9].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_9_rain, transform("JSONPATH", "$.hourly.[9].rain.1h", weatherString))

        //+10H

            /*zeitstempel*/         postUpdate(OWM_Hourly_10_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[10].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_10_temperature, transform("JSONPATH", "$.hourly.[10].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_10_feel_temperature, transform("JSONPATH", "$.hourly.[10].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_10_clouds, transform("JSONPATH", "$.hourly.[10].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_10_wind_speed, transform("JSONPATH", "$.hourly.[10].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_10_wind_deg, transform("JSONPATH", "$.hourly.[10].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_10_weather_id, transform("JSONPATH", "$.hourly.[10].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_10_weather_main, transform("JSONPATH", "$.hourly.[10].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_10_weather_description, transform("JSONPATH", "$.hourly.[10].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_10_weather_icon, transform("JSONPATH", "$.hourly.[10].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_10_rain, transform("JSONPATH", "$.hourly.[10].rain.1h", weatherString))

        //+11H

            /*zeitstempel*/         postUpdate(OWM_Hourly_11_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[11].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_11_temperature, transform("JSONPATH", "$.hourly.[11].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_11_feel_temperature, transform("JSONPATH", "$.hourly.[11].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_11_clouds, transform("JSONPATH", "$.hourly.[11].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_11_wind_speed, transform("JSONPATH", "$.hourly.[11].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_11_wind_deg, transform("JSONPATH", "$.hourly.[11].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_11_weather_id, transform("JSONPATH", "$.hourly.[11].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_11_weather_main, transform("JSONPATH", "$.hourly.[11].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_11_weather_description, transform("JSONPATH", "$.hourly.[11].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_11_weather_icon, transform("JSONPATH", "$.hourly.[11].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_11_rain, transform("JSONPATH", "$.hourly.[11].rain.1h", weatherString))

        //+12H

            /*zeitstempel*/         postUpdate(OWM_Hourly_12_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.hourly.[12].dt", weatherString)) * 1000).toString))

            /*Temperatur*/          postUpdate(OWM_Hourly_12_temperature, transform("JSONPATH", "$.hourly.[12].temp", weatherString))

            /*Gefühlte Temperatur*/ postUpdate(OWM_Hourly_12_feel_temperature, transform("JSONPATH", "$.hourly.[12].feels_like", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Hourly_12_clouds, transform("JSONPATH", "$.hourly.[12].clouds", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Hourly_12_wind_speed, transform("JSONPATH", "$.hourly.[12].wind_speed", weatherString))

            /*Windrichtung*/        postUpdate(OWM_Hourly_12_wind_deg, transform("JSONPATH", "$.hourly.[12].wind_deg", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Hourly_12_weather_id, transform("JSONPATH", "$.hourly.[12].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Hourly_12_weather_main, transform("JSONPATH", "$.hourly.[12].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Hourly_12_weather_description, transform("JSONPATH", "$.hourly.[12].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Hourly_12_weather_icon, transform("JSONPATH", "$.hourly.[12].weather..icon", weatherString))

            /*Niderschlag 1h*/      postUpdate(OWM_Hourly_12_rain, transform("JSONPATH", "$.hourly.[12].rain.1h", weatherString))

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        //Daily weather

        //+0D       

            /*zeitstempel*/         postUpdate(OWM_Daily_0_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[0].dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Daily_0_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[0].sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Daily_0_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[0].sunset", weatherString)) * 1000).toString))

            /*Temperatur Tag*/      postUpdate(OWM_Daily_0_temperature_day, transform("JSONPATH", "$.daily.[0].temp.day", weatherString))

            /*Temperatur Tag Min*/  postUpdate(OWM_Daily_0_temperature_day_min, transform("JSONPATH", "$.daily.[0].temp.min", weatherString))

            /*Temperatur Tag Max*/  postUpdate(OWM_Daily_0_temperature_day_max, transform("JSONPATH", "$.daily.[0].temp.max", weatherString))

            /*Temperatur Nacht*/    postUpdate(OWM_Daily_0_temperature_night, transform("JSONPATH", "$.daily.[0].temp.night", weatherString))

            /*Temperatur Abend*/    postUpdate(OWM_Daily_0_temperature_eve, transform("JSONPATH", "$.daily.[0].temp.eve", weatherString))

            /*Temperatur Morgen*/   postUpdate(OWM_Daily_0_temperature_morn, transform("JSONPATH", "$.daily.[0].temp.morn", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Daily_0_wind_speed, transform("JSONPATH", "$.daily.[0].wind_speed", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Daily_0_weather_id, transform("JSONPATH", "$.daily.[0].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Daily_0_weather_main, transform("JSONPATH", "$.daily.[0].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Daily_0_weather_description, transform("JSONPATH", "$.daily.[0].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Daily_0_weather_icon, transform("JSONPATH", "$.daily.[0].weather..icon", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Daily_0_clouds, transform("JSONPATH", "$.daily.[0].clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Daily_0_uvi, transform("JSONPATH", "$.daily.[0].uvi", weatherString))

        //+1D       

            /*zeitstempel*/         postUpdate(OWM_Daily_1_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[1].dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Daily_1_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[1].sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Daily_1_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[1].sunset", weatherString)) * 1000).toString))

            /*Temperatur Tag*/      postUpdate(OWM_Daily_1_temperature_day, transform("JSONPATH", "$.daily.[1].temp.day", weatherString))

            /*Temperatur Tag Min*/  postUpdate(OWM_Daily_1_temperature_day_min, transform("JSONPATH", "$.daily.[1].temp.min", weatherString))

            /*Temperatur Tag Max*/  postUpdate(OWM_Daily_1_temperature_day_max, transform("JSONPATH", "$.daily.[1].temp.max", weatherString))

            /*Temperatur Nacht*/    postUpdate(OWM_Daily_1_temperature_night, transform("JSONPATH", "$.daily.[1].temp.night", weatherString))

            /*Temperatur Abend*/    postUpdate(OWM_Daily_1_temperature_eve, transform("JSONPATH", "$.daily.[1].temp.eve", weatherString))

            /*Temperatur Morgen*/   postUpdate(OWM_Daily_1_temperature_morn, transform("JSONPATH", "$.daily.[1].temp.morn", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Daily_1_wind_speed, transform("JSONPATH", "$.daily.[1].wind_speed", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Daily_1_weather_id, transform("JSONPATH", "$.daily.[1].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Daily_1_weather_main, transform("JSONPATH", "$.daily.[1].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Daily_1_weather_description, transform("JSONPATH", "$.daily.[1].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Daily_1_weather_icon, transform("JSONPATH", "$.daily.[1].weather..icon", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Daily_1_clouds, transform("JSONPATH", "$.daily.[1].clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Daily_1_uvi, transform("JSONPATH", "$.daily.[1].uvi", weatherString))

        //+2D       

            /*zeitstempel*/         postUpdate(OWM_Daily_2_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[2].dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Daily_2_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[2].sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Daily_2_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[2].sunset", weatherString)) * 1000).toString))

            /*Temperatur Tag*/      postUpdate(OWM_Daily_2_temperature_day, transform("JSONPATH", "$.daily.[2].temp.day", weatherString))

            /*Temperatur Tag Min*/  postUpdate(OWM_Daily_2_temperature_day_min, transform("JSONPATH", "$.daily.[2].temp.min", weatherString))

            /*Temperatur Tag Max*/  postUpdate(OWM_Daily_2_temperature_day_max, transform("JSONPATH", "$.daily.[2].temp.max", weatherString))

            /*Temperatur Nacht*/    postUpdate(OWM_Daily_2_temperature_night, transform("JSONPATH", "$.daily.[2].temp.night", weatherString))

            /*Temperatur Abend*/    postUpdate(OWM_Daily_2_temperature_eve, transform("JSONPATH", "$.daily.[2].temp.eve", weatherString))

            /*Temperatur Morgen*/   postUpdate(OWM_Daily_2_temperature_morn, transform("JSONPATH", "$.daily.[2].temp.morn", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Daily_2_wind_speed, transform("JSONPATH", "$.daily.[2].wind_speed", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Daily_2_weather_id, transform("JSONPATH", "$.daily.[2].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Daily_2_weather_main, transform("JSONPATH", "$.daily.[2].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Daily_2_weather_description, transform("JSONPATH", "$.daily.[2].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Daily_2_weather_icon, transform("JSONPATH", "$.daily.[2].weather..icon", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Daily_2_clouds, transform("JSONPATH", "$.daily.[2].clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Daily_2_uvi, transform("JSONPATH", "$.daily.[2].uvi", weatherString))

        //+3D       

            /*zeitstempel*/         postUpdate(OWM_Daily_3_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[3].dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Daily_3_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[3].sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Daily_3_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[3].sunset", weatherString)) * 1000).toString))

            /*Temperatur Tag*/      postUpdate(OWM_Daily_3_temperature_day, transform("JSONPATH", "$.daily.[3].temp.day", weatherString))

            /*Temperatur Tag Min*/  postUpdate(OWM_Daily_3_temperature_day_min, transform("JSONPATH", "$.daily.[3].temp.min", weatherString))

            /*Temperatur Tag Max*/  postUpdate(OWM_Daily_3_temperature_day_max, transform("JSONPATH", "$.daily.[3].temp.max", weatherString))

            /*Temperatur Nacht*/    postUpdate(OWM_Daily_3_temperature_night, transform("JSONPATH", "$.daily.[3].temp.night", weatherString))

            /*Temperatur Abend*/    postUpdate(OWM_Daily_3_temperature_eve, transform("JSONPATH", "$.daily.[3].temp.eve", weatherString))

            /*Temperatur Morgen*/   postUpdate(OWM_Daily_3_temperature_morn, transform("JSONPATH", "$.daily.[3].temp.morn", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Daily_3_wind_speed, transform("JSONPATH", "$.daily.[3].wind_speed", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Daily_3_weather_id, transform("JSONPATH", "$.daily.[3].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Daily_3_weather_main, transform("JSONPATH", "$.daily.[3].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Daily_3_weather_description, transform("JSONPATH", "$.daily.[3].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Daily_3_weather_icon, transform("JSONPATH", "$.daily.[3].weather..icon", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Daily_3_clouds, transform("JSONPATH", "$.daily.[3].clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Daily_3_uvi, transform("JSONPATH", "$.daily.[3].uvi", weatherString))

        //+4D       

            /*zeitstempel*/         postUpdate(OWM_Daily_4_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[4].dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Daily_4_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[4].sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Daily_4_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[4].sunset", weatherString)) * 1000).toString))

            /*Temperatur Tag*/      postUpdate(OWM_Daily_4_temperature_day, transform("JSONPATH", "$.daily.[4].temp.day", weatherString))

            /*Temperatur Tag Min*/  postUpdate(OWM_Daily_4_temperature_day_min, transform("JSONPATH", "$.daily.[4].temp.min", weatherString))

            /*Temperatur Tag Max*/  postUpdate(OWM_Daily_4_temperature_day_max, transform("JSONPATH", "$.daily.[4].temp.max", weatherString))

            /*Temperatur Nacht*/    postUpdate(OWM_Daily_4_temperature_night, transform("JSONPATH", "$.daily.[4].temp.night", weatherString))

            /*Temperatur Abend*/    postUpdate(OWM_Daily_4_temperature_eve, transform("JSONPATH", "$.daily.[4].temp.eve", weatherString))

            /*Temperatur Morgen*/   postUpdate(OWM_Daily_4_temperature_morn, transform("JSONPATH", "$.daily.[4].temp.morn", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Daily_4_wind_speed, transform("JSONPATH", "$.daily.[4].wind_speed", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Daily_4_weather_id, transform("JSONPATH", "$.daily.[4].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Daily_4_weather_main, transform("JSONPATH", "$.daily.[4].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Daily_4_weather_description, transform("JSONPATH", "$.daily.[4].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Daily_4_weather_icon, transform("JSONPATH", "$.daily.[4].weather..icon", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Daily_4_clouds, transform("JSONPATH", "$.daily.[4].clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Daily_4_uvi, transform("JSONPATH", "$.daily.[4].uvi", weatherString))

        //+5D       

            /*zeitstempel*/         postUpdate(OWM_Daily_5_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[5].dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Daily_5_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[5].sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Daily_5_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[5].sunset", weatherString)) * 1000).toString))

            /*Temperatur Tag*/      postUpdate(OWM_Daily_5_temperature_day, transform("JSONPATH", "$.daily.[5].temp.day", weatherString))

            /*Temperatur Tag Min*/  postUpdate(OWM_Daily_5_temperature_day_min, transform("JSONPATH", "$.daily.[5].temp.min", weatherString))

            /*Temperatur Tag Max*/  postUpdate(OWM_Daily_5_temperature_day_max, transform("JSONPATH", "$.daily.[5].temp.max", weatherString))

            /*Temperatur Nacht*/    postUpdate(OWM_Daily_5_temperature_night, transform("JSONPATH", "$.daily.[5].temp.night", weatherString))

            /*Temperatur Abend*/    postUpdate(OWM_Daily_5_temperature_eve, transform("JSONPATH", "$.daily.[5].temp.eve", weatherString))

            /*Temperatur Morgen*/   postUpdate(OWM_Daily_5_temperature_morn, transform("JSONPATH", "$.daily.[5].temp.morn", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Daily_5_wind_speed, transform("JSONPATH", "$.daily.[5].wind_speed", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Daily_5_weather_id, transform("JSONPATH", "$.daily.[5].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Daily_5_weather_main, transform("JSONPATH", "$.daily.[5].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Daily_5_weather_description, transform("JSONPATH", "$.daily.[5].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Daily_5_weather_icon, transform("JSONPATH", "$.daily.[5].weather..icon", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Daily_5_clouds, transform("JSONPATH", "$.daily.[5].clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Daily_5_uvi, transform("JSONPATH", "$.daily.[5].uvi", weatherString))

        //+6D       

            /*zeitstempel*/         postUpdate(OWM_Daily_6_timestamp, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[6].dt", weatherString)) * 1000).toString))

            /*Sonnenaufgang*/       postUpdate(OWM_Daily_6_sunrise, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[6].sunrise", weatherString)) * 1000).toString))

            /*Sonnenuntergang*/     postUpdate(OWM_Daily_6_sunset, new DateTimeType(new DateTime(Long::parseLong(transform("JSONPATH", "$.daily.[6].sunset", weatherString)) * 1000).toString))

            /*Temperatur Tag*/      postUpdate(OWM_Daily_6_temperature_day, transform("JSONPATH", "$.daily.[6].temp.day", weatherString))

            /*Temperatur Tag Min*/  postUpdate(OWM_Daily_6_temperature_day_min, transform("JSONPATH", "$.daily.[6].temp.min", weatherString))

            /*Temperatur Tag Max*/  postUpdate(OWM_Daily_6_temperature_day_max, transform("JSONPATH", "$.daily.[6].temp.max", weatherString))

            /*Temperatur Nacht*/    postUpdate(OWM_Daily_6_temperature_night, transform("JSONPATH", "$.daily.[6].temp.night", weatherString))

            /*Temperatur Abend*/    postUpdate(OWM_Daily_6_temperature_eve, transform("JSONPATH", "$.daily.[6].temp.eve", weatherString))

            /*Temperatur Morgen*/   postUpdate(OWM_Daily_6_temperature_morn, transform("JSONPATH", "$.daily.[6].temp.morn", weatherString))

            /*Windgeschwindigkeit*/ postUpdate(OWM_Daily_6_wind_speed, transform("JSONPATH", "$.daily.[6].wind_speed", weatherString))

            /*Wetter ID*/           postUpdate(OWM_Daily_6_weather_id, transform("JSONPATH", "$.daily.[6].weather..id", weatherString))

            /*Witterung*/           postUpdate(OWM_Daily_6_weather_main, transform("JSONPATH", "$.daily.[6].weather..main", weatherString))

            /*Witterung Stärke*/    postUpdate(OWM_Daily_6_weather_description, transform("JSONPATH", "$.daily.[6].weather..description", weatherString))

            /*Icon ID*/             postUpdate(OWM_Daily_6_weather_icon, transform("JSONPATH", "$.daily.[6].weather..icon", weatherString))

            /*Bewölkung*/           postUpdate(OWM_Daily_6_clouds, transform("JSONPATH", "$.daily.[6].clouds", weatherString))

            /*UV Index*/            postUpdate(OWM_Daily_6_uvi, transform("JSONPATH", "$.daily.[6].uvi", weatherString))

    } else { //log error. Invalid API key ?

        logInfo("weather.rules", "Error loading data from OWM: " + weatherString)

    }

end
3 Likes

owm_onecall_wetter.items

//Curent weather
        DateTime OWM_Curent_timestamp "Abrufzeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Curent_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Curent_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Curent_temperature "Ist Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Curent_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Pressure OWM_Curent_pressure "Luftdruck [%.1f %unit%]"
        Number:Dimensionless OWM_Curent_humidity "Luftfeuchtigkeit [%.1f %unit%]"
        Number:Temperature OWM_Curent_dew_point "Taupunkt [%.1f %unit%]"
        Number:Dimensionless OWM_Curent_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Curent_uvi "UV Index [%.1f %unit%]"
        Number:Speed OWM_Curent_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Curent_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Curent_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Curent_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Curent_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Curent_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Curent_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"

//hourly weather
	//+0H
        DateTime OWM_Hourly_0_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_0_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_0_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_0_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_0_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_0_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_0_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_0_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_0_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_0_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_0_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+1H
        DateTime OWM_Hourly_1_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_1_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_1_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_1_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_1_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_1_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_1_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_1_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_1_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_1_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_1_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+2H
        DateTime OWM_Hourly_2_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_2_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_2_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_2_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_2_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_2_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_2_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_2_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_2_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_2_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_2_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+3H
        DateTime OWM_Hourly_3_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_3_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_3_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_3_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_3_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_3_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_3_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_3_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_3_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_3_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_3_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+4H
        DateTime OWM_Hourly_4_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_4_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_4_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_4_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_4_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_4_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_4_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_4_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_4_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_4_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_4_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+5H
        DateTime OWM_Hourly_5_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_5_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_5_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_5_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_5_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_5_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_5_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_5_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_5_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_5_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_5_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+6H
        DateTime OWM_Hourly_6_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_6_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_6_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_6_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_6_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_6_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_6_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_6_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_6_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_6_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_6_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+7H
        DateTime OWM_Hourly_7_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_7_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_7_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_7_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_7_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_7_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_7_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_7_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_7_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_7_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_7_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+8H
        DateTime OWM_Hourly_8_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_8_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_8_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_8_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_8_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_8_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_8_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_8_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_8_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_8_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_8_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+9H
        DateTime OWM_Hourly_9_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_9_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_9_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_9_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_9_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_9_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_9_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_9_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_9_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_9_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_9_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+10H
        DateTime OWM_Hourly_10_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_10_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_10_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_10_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_10_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_10_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_10_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_10_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_10_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_10_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_10_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+11H
        DateTime OWM_Hourly_11_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_11_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_11_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_11_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_11_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_11_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_11_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_11_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_11_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_11_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_11_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"
	//+12H
        DateTime OWM_Hourly_12_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Hourly_12_temperature "Temperatur [%.1f %unit%]"
        Number:Temperature OWM_Hourly_12_feel_temperature "Gefühlte Temperatur [%.1f %unit%]"
        Number:Dimensionless OWM_Hourly_12_clouds "Bewölkung [%.1f %unit%]"
        Number:Speed OWM_Hourly_12_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number:Angle OWM_Hourly_12_wind_deg "Windrichtung [%.1f %unit%]"
        Number OWM_Hourly_12_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Hourly_12_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Hourly_12_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Hourly_12_weather_icon "Icon ID [%.1f %unit%]"
        Number:Length OWM_Hourly_12_rain "Niderschlag in der vergangenen Stunde [%.1f %unit%]"

//Daily weather

	//+0D
        DateTime OWM_Daily_0_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_0_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_0_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Daily_0_temperature_day "Temperatur tagsüber [%.1f %unit%]"
        Number:Temperature OWM_Daily_0_temperature_day_min "Temperatur min [%.1f %unit%]"
        Number:Temperature OWM_Daily_0_temperature_day_max "Temperatur max [%.1f %unit%]"
        Number:Temperature OWM_Daily_0_temperature_morn "Temperatur morgens [%.1f %unit%]"
        Number:Temperature OWM_Daily_0_temperature_eve "Temperatur abends [%.1f %unit%]"
        Number:Temperature OWM_Daily_0_temperature_night "Temperatur nacht [%.1f %unit%]"
        Number:Speed OWM_Daily_0_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number OWM_Daily_0_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Daily_0_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Daily_0_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Daily_0_weather_icon "Icon ID [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_0_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_0_uvi "UV Index [%.1f %unit%]"
	//+1D
        DateTime OWM_Daily_1_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_1_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_1_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Daily_1_temperature_day "Temperatur tagsüber [%.1f %unit%]"
        Number:Temperature OWM_Daily_1_temperature_day_min "Temperatur min [%.1f %unit%]"
        Number:Temperature OWM_Daily_1_temperature_day_max "Temperatur max [%.1f %unit%]"
        Number:Temperature OWM_Daily_1_temperature_morn "Temperatur morgens [%.1f %unit%]"
        Number:Temperature OWM_Daily_1_temperature_eve "Temperatur abends [%.1f %unit%]"
        Number:Temperature OWM_Daily_1_temperature_night "Temperatur nacht [%.1f %unit%]"
        Number:Speed OWM_Daily_1_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number OWM_Daily_1_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Daily_1_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Daily_1_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Daily_1_weather_icon "Icon ID [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_1_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_1_uvi "UV Index [%.1f %unit%]"
	//+2D
        DateTime OWM_Daily_2_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_2_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_2_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Daily_2_temperature_day "Temperatur tagsüber [%.1f %unit%]"
        Number:Temperature OWM_Daily_2_temperature_day_min "Temperatur min [%.1f %unit%]"
        Number:Temperature OWM_Daily_2_temperature_day_max "Temperatur max [%.1f %unit%]"
        Number:Temperature OWM_Daily_2_temperature_morn "Temperatur morgens [%.1f %unit%]"
        Number:Temperature OWM_Daily_2_temperature_eve "Temperatur abends [%.1f %unit%]"
        Number:Temperature OWM_Daily_2_temperature_night "Temperatur nacht [%.1f %unit%]"
        Number:Speed OWM_Daily_2_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number OWM_Daily_2_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Daily_2_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Daily_2_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Daily_2_weather_icon "Icon ID [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_2_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_2_uvi "UV Index [%.1f %unit%]"
        //+3D
        DateTime OWM_Daily_3_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_3_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_3_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Daily_3_temperature_day "Temperatur tagsüber [%.1f %unit%]"
        Number:Temperature OWM_Daily_3_temperature_day_min "Temperatur min [%.1f %unit%]"
        Number:Temperature OWM_Daily_3_temperature_day_max "Temperatur max [%.1f %unit%]"
        Number:Temperature OWM_Daily_3_temperature_morn "Temperatur morgens [%.1f %unit%]"
        Number:Temperature OWM_Daily_3_temperature_eve "Temperatur abends [%.1f %unit%]"
        Number:Temperature OWM_Daily_3_temperature_night "Temperatur nacht [%.1f %unit%]"
        Number:Speed OWM_Daily_3_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number OWM_Daily_3_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Daily_3_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Daily_3_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Daily_3_weather_icon "Icon ID [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_3_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_3_uvi "UV Index [%.1f %unit%]"
        //+4D
        DateTime OWM_Daily_4_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_4_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_4_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Daily_4_temperature_day "Temperatur tagsüber [%.1f %unit%]"
        Number:Temperature OWM_Daily_4_temperature_day_min "Temperatur min [%.1f %unit%]"
        Number:Temperature OWM_Daily_4_temperature_day_max "Temperatur max [%.1f %unit%]"
        Number:Temperature OWM_Daily_4_temperature_morn "Temperatur morgens [%.1f %unit%]"
        Number:Temperature OWM_Daily_4_temperature_eve "Temperatur abends [%.1f %unit%]"
        Number:Temperature OWM_Daily_4_temperature_night "Temperatur nacht [%.1f %unit%]"
        Number:Speed OWM_Daily_4_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number OWM_Daily_4_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Daily_4_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Daily_4_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Daily_4_weather_icon "Icon ID [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_4_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_4_uvi "UV Index [%.1f %unit%]"
        //+5D
        DateTime OWM_Daily_5_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_5_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_5_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Daily_5_temperature_day "Temperatur tagsüber [%.1f %unit%]"
        Number:Temperature OWM_Daily_5_temperature_day_min "Temperatur min [%.1f %unit%]"
        Number:Temperature OWM_Daily_5_temperature_day_max "Temperatur max [%.1f %unit%]"
        Number:Temperature OWM_Daily_5_temperature_morn "Temperatur morgens [%.1f %unit%]"
        Number:Temperature OWM_Daily_5_temperature_eve "Temperatur abends [%.1f %unit%]"
        Number:Temperature OWM_Daily_5_temperature_night "Temperatur nacht [%.1f %unit%]"
        Number:Speed OWM_Daily_5_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number OWM_Daily_5_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Daily_5_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Daily_5_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Daily_5_weather_icon "Icon ID [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_5_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_5_uvi "UV Index [%.1f %unit%]"
        //+6D
        DateTime OWM_Daily_6_timestamp "Zeitstempel [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_6_sunrise "Sonnenaufgang um [%1$tY-%1$tm-%1$td]"
        DateTime OWM_Daily_6_sunset "Sonnenuntergang um [%1$tY-%1$tm-%1$td]"
        Number:Temperature OWM_Daily_6_temperature_day "Temperatur tagsüber [%.1f %unit%]"
        Number:Temperature OWM_Daily_6_temperature_day_min "Temperatur min [%.1f %unit%]"
        Number:Temperature OWM_Daily_6_temperature_day_max "Temperatur max [%.1f %unit%]"
        Number:Temperature OWM_Daily_6_temperature_morn "Temperatur morgens [%.1f %unit%]"
        Number:Temperature OWM_Daily_6_temperature_eve "Temperatur abends [%.1f %unit%]"
        Number:Temperature OWM_Daily_6_temperature_night "Temperatur nacht [%.1f %unit%]"
        Number:Speed OWM_Daily_6_wind_speed "Windgeschwindigkeit [%.1f %unit%]"
        Number OWM_Daily_6_weather_id "Wetter ID [%.1f %unit%]"
        String OWM_Daily_6_weather_main "Art der Witterung [%.1f %unit%]"
        String OWM_Daily_6_weather_description "Stärke der Witterung [%.1f %unit%]"
        String OWM_Daily_6_weather_icon "Icon ID [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_6_clouds "Bewölkung [%.1f %unit%]"
        Number:Dimensionless OWM_Daily_6_uvi "UV Index [%.1f %unit%]"
3 Likes

Hello all,

I’ve put together a version of the binding which calls the onecallapi.

This is a bit of an experiment for me - I have not done proper java coding in several years, but it seems to be working. However, I’m not ready to push it into github.

But I’m happy to provide a download link for you guys to try. Feedback is welcome.

http://hazelden.me/org.openhab.binding.openweathermap-2.5.8-SNAPSHOT.jar

Some notes:

  • Station ID and name have both been removed
  • Wind Gust has also been removed

This is all down to the fact they aren’t in the response any more.

I have tested everything on the ‘current weather’ and it seems to be coming through for my current location.

I have also tested min/max temperature on ‘today’s’ forecast - and, again, it’s working - but it’s worth noting that what seems to happen is this is ‘min or max from the point of request onwards’. So if you update every 60 minutes and we’re already past the hottest point of the day … well … you’re now going to see lower temperatures on the ‘max’ than WAS the max for the day.

E.g. Friday - the max was 33 odd, when I actually copied this file into my local openhab - it read ‘25’ because the temperature was already cooling down.

But please look at the 3 hour, 6 hour etc forecasts.

UV forecast still comes from the paid for uv forecast API.

Cheers

1 Like

Nice work :grinning: :+1:

I installed the jar, and so far, the today and tomorrow channels are working for me.
Will check it again in some hours.

FYI - I’ve just uploaded a revision to the JAR file.

The hourly forecasts are now available in one hour increments up to 48 hours out. Additionally - the chance of rain, UV Index and visibility are available. Wind Gust has also been restored (I could have sworn that wasn’t there in the API call last week!).

Note the existing UV Index thing is now hidden. Existing instances of it will function - and you could create a new one via a things file, but it won’t appear during an ‘add’ in paperui.

There is an open pull request on github for this - so maybe this can get merged in at some stage if I can get some more feedback.

Hi,
does anything prevent you/us from mixing the API calls?
So couldn’t we get for example the station ID by requesting it through the (old) “Current Wether API” JSON?

Thanks Joerg

I don’t believe you can necessarily rely that the station provided by the weather call and the data provided by the onecall api will come from the same place.

But so you’re aware - my implementation won’t be the one going forward - this work is being pushed on by a different developer which will provide backwards compatibility for those who want the missing fields (e.g. existing will continue to work), but those who want the daily forecasts (and are willing to move forward without station information) can change to the onecall API.

Mine still works - and the JAR is still available - but a different one will be going forward.

Hi Michael,
thanks for the head up.
Nevertheless, I tried to utilize your JAR.
Has this to be added additionally to the regular impemented version or do I have to uninstall the other version?
I asked, as I havent got anything beside the binding after uninstalling the native one and adding yours into the services folder.
Thanks Joerg