I installed the OpenWeatherMap-Binding via Paper UI.
owm.things:
Bridge openweathermap:weather-api:api "OpenWeatherMap Account" [apikey="my-api-key 1- 32", refreshInterval=30, language="de"] {
Thing weather-and-forecast local "Local Weather And Forecast" [location="12.34567,1.2345", forecastHours=06, forecastDays=6]
}
owm.items:
Group gOWM
String localStationId "ID [%s]" (gOWM) { channel="openweathermap:weather-and-forecast:api:local:station#id" }
String localStationName "Name [%s]" (gOWM) { channel="openweathermap:weather-and-forecast:api:local:station#name" }
Location localStationLocation "Location [%2$s°N %3$s°E]" <location> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:station#location" }
DateTime localLastMeasurement "Timestamp of last measurement [%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS]" <time> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:current#time-stamp" }
String localCurrentCondition "Current condition [%s]" <sun_clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:current#condition" }
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" }
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:Dimensionless localCurrentCloudiness "Current cloudiness [%d %unit%]" <clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:current#cloudiness" }
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" }
DateTime localDailyForecastTodayTimestamp "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#time-stamp" }
String localDailyForecastTodayCondition "Condition for today [%s]" <sun_clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#condition" }
Image localDailyForecastTodayConditionIcon "Icon" (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#icon" }
Number:Temperature localDailyForecastTodayMinTemperature "Minimum temperature for today [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#min-temperature" }
Number:Temperature localDailyForecastTodayMaxTemperature "Maximum temperature for today [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#max-temperature" }
Number:Pressure localDailyForecastTodayPressure "Barometric pressure for today [%.1f %unit%]" <pressure> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#pressure" }
Number:Dimensionless localDailyForecastTodayHumidity "Atmospheric humidity for today [%d %unit%]" <humidity> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#humidity" }
Number:Speed localDailyForecastTodayWindSpeed "Wind speed for today [%.1f km/h]" <wind> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#wind-speed" }
Number:Angle localDailyForecastTodayWindDirection "Wind direction for today [%d %unit%]" <wind> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#wind-direction" }
Number:Dimensionless localDailyForecastTodaytCloudiness "Cloudiness for today [%d %unit%]" <clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#cloudiness" }
Number:Length localDailyForecastTodayRainVolume "Rain volume for today [%.1f %unit%]" <rain> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#rain" }
Number:Length localDailyForecastTodaySnowVolume "Snow volume for today [%.1f %unit%]" <snow> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastToday#snow" }
DateTime localDailyForecastTomorrowTimestamp "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastTomorrow#time-stamp" }
String localDailyForecastTomorrowCondition "Condition for tomorrow [%s]" <sun_clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastTomorrow#condition" }
Image localDailyForecastTomorrowConditionIcon "Icon" (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastTomorrow#icon" }
Number:Temperature localDailyForecastTomorrowMinTemperature "Minimum temperature for tomorrow [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastTomorrow#min-temperature" }
Number:Temperature localDailyForecastTomorrowMaxTemperature "Maximum temperature for tomorrow [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastTomorrow#max-temperature" }
DateTime localDailyForecastDay2Timestamp "Timestamp of forecast [%1$tY-%1$tm-%1$td]" <time> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastDay2#time-stamp" }
String localDailyForecastDay2Condition "Condition in 2 days [%s]" <sun_clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastDay2#condition" }
Image localDailyForecastDay2ConditionIcon "Icon" (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastDay2#icon" }
Number:Temperature localDailyForecastDay2MinTemperature "Minimum temperature in 2 days [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastDay2#min-temperature" }
Number:Temperature localDailyForecastDay2MaxTemperature "Maximum temperature in 2 days [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastDay2#max-temperature" }
String localHourlyForecast03Condition "Condition for the next three hours [%s]" <sun_clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#condition" }
Image localHourlyForecast03ConditionIcon "Icon" (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#icon" }
Number:Temperature localHourlyForecast03Temperature "Temperature for the next three hours [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastHours03#temperature" }
String localHourlyForecast06Condition "Condition for hours 3 to 6 [%s]" <sun_clouds> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#condition" }
Image localHourlyForecast06ConditionIcon "Icon" (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#icon" }
Number:Temperature localHourlyForecast06Temperature "Temperature for hours 3 to 6 [%.1f %unit%]" <temperature> (gOWM) { channel="openweathermap:weather-and-forecast:api:local:forecastHours06#temperature" }
The result looks like this:
As one can see, a lot of the items are not filled with values.
The logger gives the following messages:
2018-11-21 22:35:07.444 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Time zone set to 'Europe/Berlin'.
2018-11-21 22:35:07.467 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Location set to '12.345678,1.234567,111'.
2018-11-21 22:35:07.473 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Locale set to 'de_DE'.
2018-11-21 22:35:07.475 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Measurement system set to 'SIUnits'.
2018-11-21 22:35:17.379 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'yahoo.items'
2018-11-21 22:35:17.758 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'sonoff.items'
2018-11-21 22:35:17.969 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'owm_http.items'
2018-11-21 22:35:18.086 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'owm.items'
2018-11-21 22:35:18.273 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'astro.items'
2018-11-21 22:35:18.443 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'sonos.items'
2018-11-21 22:35:18.653 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'system.items'
2018-11-21 22:35:18.778 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'castle.items'
2018-11-21 22:35:19.271 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'avm_fritz.items'
2018-11-21 22:35:19.597 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'network.items'
2018-11-21 22:35:20.401 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'mapdb.persist'
2018-11-21 22:35:23.246 [INFO ] [thome.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
2018-11-21 22:35:26.331 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'sonoff.rules'
2018-11-21 22:35:27.515 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'sonoff1.rules'
2018-11-21 22:35:29.755 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'astro.rules'
2018-11-21 22:35:32.668 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'weather.rules'
2018-11-21 22:35:34.412 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'cpu.rules'
2018-11-21 22:35:35.263 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'startup.rules'
2018-11-21 22:35:36.283 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'castle.sitemap'
2018-11-21 22:35:36.877 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'avm_fritz.things'
2018-11-21 22:35:37.315 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'sample_ntp.things'
2018-11-21 22:35:37.340 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'cpu_tempPI.things'
2018-11-21 22:35:37.405 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'network.things'
2018-11-21 22:35:37.490 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'owm.things'
2018-11-21 22:35:37.697 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'sonos.things'
2018-11-21 22:35:37.721 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'astro.things'
2018-11-21 22:35:38.958 [INFO ] [thome.binding.astro.internal.job.Job] - Scheduled Astro event-jobs for thing astro:moon:local
2018-11-21 22:35:38.979 [INFO ] [ding.astro.handler.AstroThingHandler] - Scheduled Positional job astro:moon:local every 300 seconds
2018-11-21 22:35:40.559 [INFO ] [thome.binding.astro.internal.job.Job] - Scheduled Astro event-jobs for thing astro:sun:local
2018-11-21 22:35:40.578 [INFO ] [ding.astro.handler.AstroThingHandler] - Scheduled Positional job astro:sun:local every 300 seconds
2018-11-21 22:35:41.545 [INFO ] [thome.binding.astro.internal.job.Job] - Scheduled Astro event-jobs for thing astro:sun:stowing
2018-11-21 22:35:41.687 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:weather-and-forecast:api:local in ManagedThingProvider, because it does not exists.
2018-11-21 22:35:42.442 [INFO ] [.dashboard.internal.DashboardService] - Started Dashboard at http://192.168.178.123:8080
2018-11-21 22:35:42.447 [INFO ] [.dashboard.internal.DashboardService] - Started Dashboard at https://192.168.178.123:8443
2018-11-21 22:35:43.122 [INFO ] [penhab.io.transport.mqtt.MqttService] - MQTT Service initialization completed.
2018-11-21 22:35:43.125 [INFO ] [t.mqtt.internal.MqttBrokerConnection] - Starting MQTT broker connection 'peter'
2018-11-21 22:35:43.199 [INFO ] [b.core.service.AbstractActiveService] - HTTP Refresh Service has been started
2018-11-21 22:35:43.961 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2018-11-21 22:35:52.530 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'samsungtv:tv:0d1cef01_00dc_1000_960f_90f1aac88a51' to inbox.
2018-11-21 22:35:52.947 [INFO ] [eather.internal.common.WeatherConfig] - LocationConfig[providerName=YAHOO,language=de,updateInterval=30,latitude=<null>,longitude=<null>,woeid=123456,locationId=home-yh,name=Miami]
2018-11-21 22:35:56.059 [INFO ] [ternal.scheduler.WeatherJobScheduler] - Starting and scheduling weatherJob-home-yh with interval of 30 minutes
2018-11-21 22:36:05.645 [INFO ] [smarthome.model.script.weather-rules] - Forecast executed every 30 min. / 1 log only once an hour
2018-11-21 22:40:41.554 [INFO ] [marthome.model.script.astro-rules_99] - Moondistance updated every 5 Minutes by "astro.things " 2018-11-21T22:40:39.001+0100 / 1 Log only once an hour
2018-11-21 23:03:53.520 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'owm.things'
2018-11-21 23:03:53.795 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.thingUpdated()' on 'org.eclipse.smarthome.binding.openweathermap.internal.handler.OpenWeatherMapWeatherAndForecastHandler@fdde87': Duplicate channels openweathermap:weather-and-forecast:api:local:forecastToday#time-stamp
java.lang.IllegalArgumentException: Duplicate channels openweathermap:weather-and-forecast:api:local:forecastToday#time-stamp
at org.eclipse.smarthome.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:159) ~[?:?]
at org.eclipse.smarthome.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:151) ~[?:?]
at org.eclipse.smarthome.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:147) ~[?:?]
at org.eclipse.smarthome.core.thing.binding.builder.ThingBuilder.withChannel(ThingBuilder.java:74) ~[?:?]
at org.eclipse.smarthome.binding.openweathermap.internal.handler.OpenWeatherMapWeatherAndForecastHandler.initialize(OpenWeatherMapWeatherAndForecastHandler.java:157) ~[?:?]
at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:208) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh240M6]
at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [101:org.eclipse.smarthome.core:0.10.0.oh240M6]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
2018-11-21 23:04:40.231 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:weather-and-forecast:api:local in ManagedThingProvider, because it does not exists.
While startup is running (and later) there is a Warning Message which i can not handle.
And when i made a change in the Thing-File an error is spit out. (i can’t find duplicate channels)
The Api-Key is valid and in use to retrieve data with http.cfg and extract it via JSONPATH, like this
String CommonId_owm "Himmel owm [%s]" <sun_clouds> (gYahoo) {http="<[owm_test:120000:JSONPATH($.weather[0].description)]"}
Any hints or ideas what’s wrong in my setup ?