Weather binding not staying installed

Greetings all. I’ve used Openhab 1 for a long time, but am just getting started with Openhab 2.

Almost everything is working very well (yay!), but a few issues remain. The weather binding is the most annoying. No matter how I install the binding, it will work fine (populating items from Weather underground, just as OH1), but will uninstall itself on the next Openhab restart. I’m not sure how to debug this.

I can do this:

openhab> feature:install openhab-binding-weather1
openhab> feature:list | grep weather1
openhab-binding-weather1                  | 1.9.0.b5         | x        | Started     | openhab-aggregate-xml          | Weather Binding
openhab>

And that’s fine… the items populate, charts update, etc. However, after I stop and restart Openhab I do a

openhab> feature:list | grep weather1
openhab-binding-weather1                  | 1.9.0.b5         |          | Uninstalled | openhab-aggregate-xml          | Weather Binding

In the log I see messages like this:

2017-01-04 16:16:54.861 [ERROR] [org.quartz.core.JobRunShell         ] - Job Weather.weatherJob-folsom threw an unhandled Exception: 
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
	at org.openhab.binding.weather.internal.parser.JsonWeatherParser.parseInto(JsonWeatherParser.java:36)
	at org.openhab.binding.weather.internal.provider.AbstractWeatherProvider.executeRequest(AbstractWeatherProvider.java:127)
	at org.openhab.binding.weather.internal.provider.AbstractWeatherProvider.getWeather(AbstractWeatherProvider.java:68)
	at org.openhab.binding.weather.internal.scheduler.WeatherJob.execute(WeatherJob.java:49)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)[102:org.eclipse.smarthome.core.scheduler:0.9.0.b2]
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)[102:org.eclipse.smarthome.core.scheduler:0.9.0.b2]
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonFactory cannot be found by org.openhab.binding.weather_1.9.0.b5
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:439)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_60]
	... 6 more

If I install the binding again (via UI, Karaf, etc), it works fine.

So… what am I missing? Is there a way to defer the binding load? Start order? Anything else?

Thanks!

Hi, have a look at this file.

userdata/etc/org.openhab.addons.cfg

In this file all the bindings, ui, persistence etc. are defined and installed (or uninstalled) at startup. Maybe the weather binding is missing there, try to edit the file manually.

Regards, Christian

Hi, thanks very much for the quick reply. I think I found my confusion thanks to your comment. In the org.openhab.addons.cfg file, the binding line looked like

binding = weather,zwave,samsungtv,ntp

I had added that because the binding name is ‘org.openhab.binding.weather/1.9.0.b5’, so the “obvious” binding name is weather. However, your comment re/ the addons.cfg file lead to a search where I found this thread:

Based on that:

openhab-binding-weather1                  | 1.9.0.b5         |          | Uninstalled | openhab-aggregate-xml          | Weather Binding

The proper binding name to use in the addons.cfg file is weather1. When I changed it to that it worked.

Hmmm… might need to suggest some better documentation around that. :slight_smile:

Thanks again for your quick help!

I guess I celebrated too early. On the second Openhab2 restart, it uninstalled again… all I can find in the log is this:

2017-01-04 23:45:35.264 [INFO ] [eather.internal.common.WeatherConfig] - ProviderConfig[providerName=WUNDERGROUND,apiKey=c9c81217ea6be553]
2017-01-04 23:45:35.265 [INFO ] [eather.internal.common.WeatherConfig] - LocationConfig[providerName=WUNDERGROUND,language=en,updateInterval=10,latitude=38.673686,longitude=-121.182535,woeid=<null>,locationId=folsom,name=<null>]

2017-01-04 23:45:37.534 [INFO ] [internal.service.FeaturesServiceImpl] - Removing features: feature:openhab-binding-weather1/[1.9.0.b5,1.9.0.b5]
2017-01-04 23:45:38.335 [INFO ] [ternal.scheduler.WeatherJobScheduler] - Starting and scheduling weatherJob-folsom with interval of 10 minutes

2017-01-04 23:45:40.132 [INFO ] [internal.service.FeaturesServiceImpl] - Changes to perform:
2017-01-04 23:45:40.132 [INFO ] [internal.service.FeaturesServiceImpl] -   Region: root
2017-01-04 23:45:40.132 [INFO ] [internal.service.FeaturesServiceImpl] -     Bundles to uninstall:
2017-01-04 23:45:40.132 [INFO ] [internal.service.FeaturesServiceImpl] -       org.openhab.binding.weather/1.9.0.b5
2017-01-04 23:45:40.133 [INFO ] [internal.service.FeaturesServiceImpl] - Stopping bundles:
2017-01-04 23:45:40.139 [INFO ] [internal.service.FeaturesServiceImpl] -   org.openhab.binding.weather/1.9.0.b5
2017-01-04 23:45:40.156 [INFO ] [ternal.scheduler.WeatherJobScheduler] - Deleting weatherJob-folsom
2017-01-04 23:45:40.204 [INFO ] [vice.internal.HttpServiceFactoryImpl] - Unbinding bundle: [org.openhab.binding.weather_1.9.0.b5 [234]]
2017-01-04 23:45:40.217 [INFO ] [.jetty.server.handler.ContextHandler] - Stopped HttpServiceContext{httpContext=org.openhab.io.net.http.SecureHttpContext@1f4c5d3f}
2017-01-04 23:45:40.226 [INFO ] [internal.service.FeaturesServiceImpl] - Uninstalling bundles:
2017-01-04 23:45:40.226 [INFO ] [internal.service.FeaturesServiceImpl] -   org.openhab.binding.weather/1.9.0.b5
2017-01-04 23:45:40.273 [INFO ] [internal.service.FeaturesServiceImpl] - Refreshing bundles:
2017-01-04 23:45:40.274 [INFO ] [internal.service.FeaturesServiceImpl] -     org.openhab.binding.weather/1.9.0.b5 (Bundle will be uninstalled)
2017-01-04 23:45:40.282 [INFO ] [internal.service.FeaturesServiceImpl] - Done.
2017-01-04 23:45:40.283 [INFO ] [core.karaf.internal.FeatureInstaller] - Uninstalled 'openhab-binding-weather1'

I have no idea what triggered that. So, something strange still happening.

I used the paper UI to install the weather binding on my OH2 snapshot system and it remains through reboots just fine.