Yahoo! Weather binding timing out

Hi,

I’m a novice OpenHAB 2 user, although have been playing with it for a few weeks, on-and-off, and have a very basic working implementation of OpenHAB 2 (snapshot version) on a Raspberry Pi 3.

I’m now trying to get the Yahoo! Weather binding working, but always get a timeout error. Here’s what I’ve done (mostly guesswork because the only docs I can find don’t seem to consider OH2):

  1. Installed Yahoo Weather Binding through the Paper UI (so literally just clicked INSTALL). This seems to have been successful:
==> /var/log/openhab2/openhab.log <==
2017-01-22 11:38:17.768 [INFO ] [internal.service.FeaturesServiceImpl] - Adding features: openhab-binding-yahooweather/[2.0.0.SNAPSHOT,2.0.0.SNAPSHOT]
2017-01-22 11:38:26.745 [INFO ] [internal.service.FeaturesServiceImpl] - Changes to perform:
2017-01-22 11:38:26.746 [INFO ] [internal.service.FeaturesServiceImpl] -   Region: root
2017-01-22 11:38:26.747 [INFO ] [internal.service.FeaturesServiceImpl] -     Bundles to install:
2017-01-22 11:38:26.748 [INFO ] [internal.service.FeaturesServiceImpl] -       mvn:org.eclipse.smarthome.binding/org.eclipse.smarthome.binding.yahooweather/0.9.0-SNAPSHOT
2017-01-22 11:38:26.752 [INFO ] [internal.service.FeaturesServiceImpl] - Installing bundles:
2017-01-22 11:38:26.753 [INFO ] [internal.service.FeaturesServiceImpl] -   mvn:org.eclipse.smarthome.binding/org.eclipse.smarthome.binding.yahooweather/0.9.0-SNAPSHOT
2017-01-22 11:38:26.838 [INFO ] [internal.service.FeaturesServiceImpl] - Starting bundles:
2017-01-22 11:38:26.840 [INFO ] [internal.service.FeaturesServiceImpl] -   org.eclipse.smarthome.binding.yahooweather/0.9.0.201701192225
2017-01-22 11:38:26.876 [INFO ] [internal.service.FeaturesServiceImpl] - Done.

==> /var/log/openhab2/events.log <==
2017-01-22 11:38:26.882 [ExtensionEvent            ] - Extension 'binding-yahooweather' has been installed.
  1. Nothing appeared to change in the PaperUI, so, based on the docs for the binding (http://docs.openhab.org/addons/bindings/yahooweather/readme.html#full-example), I created the file /etc/openhab2/things/yahooweather.things, which contained:
yahooweather:weather:berlin [ location=638242 ]

The logs said:

==> /var/log/openhab2/openhab.log <==
2017-01-22 12:02:12.024 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'yahooweather.things'

==> /var/log/openhab2/events.log <==
2017-01-22 12:02:12.149 [ThingAddedEvent           ] - Thing 'yahooweather:weather:berlin' has been added.
2017-01-22 12:02:12.188 [hingStatusInfoChangedEvent] - 'yahooweather:weather:berlin' changed from UNINITIALIZED to INITIALIZING

==> /var/log/openhab2/openhab.log <==
2017-01-22 12:02:12.190 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'yahooweather.things'

==> /var/log/openhab2/events.log <==
2017-01-22 12:02:12.194 [hingStatusInfoChangedEvent] - 'yahooweather:weather:berlin' changed from INITIALIZING to ONLINE

==> /var/log/openhab2/openhab.log <==
2017-01-22 12:02:17.221 [ERROR] [ome.core.thing.internal.ThingManager] - Exception occured while calling thing updated at ThingHandler 'org.eclipse.smarthome.binding.yahooweather.handler.YahooWeatherHandler@1bf7981': null
java.util.concurrent.TimeoutException
	at java.util.concurrent.FutureTask.get(FutureTask.java:205)[:1.8.0_65]
	at org.eclipse.smarthome.core.common.SafeMethodCaller.callAsynchronous(SafeMethodCaller.java:188)[98:org.eclipse.smarthome.core:0.9.0.201701172053]
	at org.eclipse.smarthome.core.common.SafeMethodCaller.call(SafeMethodCaller.java:81)[98:org.eclipse.smarthome.core:0.9.0.201701172053]
	at org.eclipse.smarthome.core.common.SafeMethodCaller.call(SafeMethodCaller.java:65)[98:org.eclipse.smarthome.core:0.9.0.201701172053]
	at org.eclipse.smarthome.core.thing.internal.ThingManager.thingUpdated(ThingManager.java:518)[105:org.eclipse.smarthome.core.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:227)[105:org.eclipse.smarthome.core.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutUpdatedElement(ThingRegistryImpl.java:150)[105:org.eclipse.smarthome.core.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutUpdatedElement(ThingRegistryImpl.java:1)[105:org.eclipse.smarthome.core.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.core.common.registry.AbstractRegistry.updated(AbstractRegistry.java:167)[98:org.eclipse.smarthome.core:0.9.0.201701172053]
	at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:57)[98:org.eclipse.smarthome.core:0.9.0.201701172053]
	at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutUpdatedElement(AbstractProvider.java:82)[98:org.eclipse.smarthome.core:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.access$4(GenericThingProvider.java:1)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$21.apply(GenericThingProvider.java:1044)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$21.apply(GenericThingProvider.java:1)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.xtext.xbase.lib.IteratorExtensions.forEach(IteratorExtensions.java:363)[146:org.eclipse.xtext.xbase.lib:2.9.2]
	at org.eclipse.xtext.xbase.lib.IterableExtensions.forEach(IterableExtensions.java:333)[146:org.eclipse.xtext.xbase.lib:2.9.2]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModelForThingHandlerFactory(GenericThingProvider.java:1054)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.access$1(GenericThingProvider.java:1008)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$1$1.apply(GenericThingProvider.java:236)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$1$1.apply(GenericThingProvider.java:1)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.xtext.xbase.lib.IteratorExtensions.forEach(IteratorExtensions.java:363)[146:org.eclipse.xtext.xbase.lib:2.9.2]
	at org.eclipse.xtext.xbase.lib.IterableExtensions.forEach(IterableExtensions.java:333)[146:org.eclipse.xtext.xbase.lib:2.9.2]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$1.apply(GenericThingProvider.java:239)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$1.apply(GenericThingProvider.java:1)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.config.core.BundleProcessorVetoManager.applyActionFor(BundleProcessorVetoManager.java:121)[94:org.eclipse.smarthome.config.core:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$6.apply(GenericThingProvider.java:320)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider$6.apply(GenericThingProvider.java:1)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.xtext.xbase.lib.IteratorExtensions.forEach(IteratorExtensions.java:363)[146:org.eclipse.xtext.xbase.lib:2.9.2]
	at org.eclipse.xtext.xbase.lib.IterableExtensions.forEach(IterableExtensions.java:333)[146:org.eclipse.xtext.xbase.lib:2.9.2]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModel(GenericThingProvider.java:323)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.modelChanged(GenericThingProvider.java:901)[133:org.eclipse.smarthome.model.thing:0.9.0.201701172053]
	at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:207)[122:org.eclipse.smarthome.model.core:0.9.0.201701172053]
	at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:120)[122:org.eclipse.smarthome.model.core:0.9.0.201701172053]
	at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:272)[122:org.eclipse.smarthome.model.core:0.9.0.201701172053]
	at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.access$1(FolderObserver.java:265)[122:org.eclipse.smarthome.model.core:0.9.0.201701172053]
	at org.eclipse.smarthome.model.core.internal.folder.FolderObserver$WatchQueueReader.processWatchEvent(FolderObserver.java:146)[122:org.eclipse.smarthome.model.core:0.9.0.201701172053]
	at org.eclipse.smarthome.core.service.AbstractWatchQueueReader.run(AbstractWatchQueueReader.java:122)[98:org.eclipse.smarthome.core:0.9.0.201701172053]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_65]

==> /var/log/openhab2/events.log <==
2017-01-22 12:02:17.231 [ThingUpdatedEvent         ] - Thing 'yahooweather:weather:berlin' has been updated.
2017-01-22 12:02:17.745 [hingStatusInfoChangedEvent] - 'yahooweather:weather:berlin' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): The Yahoo Weather API did not return any data.
2017-01-22 12:02:17.757 [hingStatusInfoChangedEvent] - 'yahooweather:weather:berlin' changed from OFFLINE (COMMUNICATION_ERROR): The Yahoo Weather API did not return any data. to ONLINE
2017-01-22 12:02:22.864 [hingStatusInfoChangedEvent] - 'yahooweather:weather:berlin' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): The Yahoo Weather API did not return any data.

I tried changing the location ID in the things file to my actual location (determined from http://woeid.rosselliot.co.nz/lookup), with exactly the same effect.

What have I missed?

Ah. Looks as if maybe my timing was unlucky, I’ve just seen this in the logs:

==> /var/log/openhab2/events.log <==
2017-01-22 12:33:45.384 [ItemStateChangedEvent     ] - WeatherInformation_Temperature changed from NULL to 2
2017-01-22 12:33:45.395 [ItemStateChangedEvent     ] - WeatherInformation_Humidity changed from NULL to 91
2017-01-22 12:33:45.400 [ItemStateChangedEvent     ] - WeatherInformation_Pressure changed from NULL to 1015.00

I guess either whatever communication problem was there has gone away, or I just needed to be patient for the first refresh to happen?