iCloud device data integration in openHAB

@smar were you able to use this in a meaningful way to get more timely updates? Can you share your implementation? I want to use the binding to track the location of our Apple devices to determine if we are home. Right now the refresh cycle of 5 minutes plus the iCloud update frequency means OH2 may not know that we are home for up to almost 10 minutes after we’ve arrived.

Well that sorted me out.

I was using both! DOH…
I tried the binding but did not seem to get anything so I rtead this thread
and implemented the scripts, needing to change the names of the items and
suchlike to match the ones created by the binding.

More than once I wondered what on earth the binding was doing as it seemed
the scripts were doing all the heavy lifting. With your comment I have
removed the rules file and went back to investigate why the binding was not
working. Then I say the Refresh Switch so set that to ON and started to see
the results in my sitemap.

I will take a look again after I go into work tomorrow to see if it works
there too and reflects the correct data, but looks good right now

Thanks!

Paul

[EDIT] Actually it only gets new data when I set the Refresh Switch to ON and only once. I have set the Interval to 5 minutes (default) why is it not automatically refreshing every 5 mins, what have I missed?

@nolan_garrett For my presence at home detection, I use a combination of iCloud, Owntracks and ARP table notifications from my router. iCloud can be up to 10 minutes out of date, but I find that Owntracks is usually quite quick and my ARP table monitoring is also within a minute. Thus presence at home is usually detected by OH2 by the time we have finished parking and reached the front door.

The corollary though is that detection for when the house is empty can take up to 10 to 15 minutes, as it takes that long for my firewall to release the entry in its ARP table. I haven’t looked into reducing this as it is fine for my purposes. However, one work-around could be to give precedence to Owntracks’ geofence Exit message over the ARP table data. Not sure how well that would work in practice, but from my experience of Owntracks, it should be reasonably accurate.

For myself, I use the iCloud (and also similar Android) location solutions more to show where family members are at any time on an openHAB sitemap that each family member has access to.We have refresh buttons on the sitemap such that we can get accurate location data if required. iCloud can be forced to get an updated location at any time by clicking refresh again immediately after it has given you the the stale location info. That way, you don’t have to wait 10 minutes for the iCloud refresh cycle. This will of course impact the iPhone user’s battery, and so probably not something you want to do in a rule.

Hi Paul,

what OH version do you use? Do you see anything in the log (if you start OH in debug mode) that shows that it tries to update and fails?

with kind regards,
Patrik

I am using OH 2.1
can you advise the karaf command that will enable binding debug mode?
I cannot easily startup OH server in debug mode as it is my production
system and I do not want to cause disruptions.

Thanks

Paul

Hi Paul,

sorry - this I do not know; maybe you´ll find some advice in the following discussion:

with kind regards,
Patrik

Hey Paul!
There are multiple options. See: http://docs.openhab.org/administration/logging.html
The easiest is you connect to the remote console and type: log:set DEBUG org.openhab.binding.icloud

Thank you, this is helpful!

​​
Thanks @ThomDietrich
I have tried setting the logging to DEBUG using

log:set DEBUG org.openhab.binding.icloud

and then tried filtering using the filter below:

log:tail org.openhab.binding.icloud

I monitored and got no log entries, so I forced a refresh using the switch and got an output. So it would seem to suggest the DEBUG and tailing are working but under normal circumstances there is no 5 minute refreshing going on.

09:53:57.964 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud bridge refreshing data ...
09:54:00.686 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud device discovery for [iPhone SE]
09:54:00.699 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud device discovery for [iPhone 4s]
09:54:00.707 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud device discovery for [iPad Air 2]
09:54:00.719 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud bridge data refresh complete.

I have never rebooted my device since installing icloud, is there perhaps something that needs a reboot to start the chron item scheduling?

Not sure what to try next other than a reboot, :frowning:

Hey, I’m trying to use the binding as well.

It works fine if I add things through Paper UI, but if it’s done through a config file I get this error for each of the things:

2017-11-18 11:56:36.204 [ERROR] [ome.core.thing.internal.ThingManager] - Exception occurred during bridge handler (‘icloud:account:tgudlek’) notification about handler initialization of child ‘icloud:device:tgudlek:5fe26aff’: null
java.lang.NullPointerException: null
at java.lang.String$CaseInsensitiveComparator.compare(String.java:1193) [?:?]
at java.lang.String$CaseInsensitiveComparator.compare(String.java:1186) [?:?]
at java.lang.String.compareToIgnoreCase(String.java:1239) [?:?]
at org.openhab.binding.icloud.handler.DeviceHandler.getDeviceData(DeviceHandler.java:168) [198:org.openhab.binding.icloud:2.2.0.201711171328]
at org.openhab.binding.icloud.handler.DeviceHandler.update(DeviceHandler.java:53) [198:org.openhab.binding.icloud:2.2.0.201711171328]
at org.openhab.binding.icloud.handler.BridgeHandler.childHandlerInitialized(BridgeHandler.java:124) [198:org.openhab.binding.icloud:2.2.0.201711171328]
at org.eclipse.smarthome.core.thing.internal.ThingManager$10.run(ThingManager.java:811) [105:org.eclipse.smarthome.core.thing:0.9.0.201710240931]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
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) [?:?]

Binding-specific log doesn’t contain much information:

11:56:34.694 [DEBUG] [.binding.icloud.handler.BridgeHandler] - iCloud bridge handler started.
11:56:34.699 [DEBUG] [.binding.icloud.handler.BridgeHandler] - lCloud bridge initialized.
11:56:36.105 [DEBUG] [.binding.icloud.handler.BridgeHandler] - iCloud device discovery for [iPhone SE]
11:56:36.119 [DEBUG] [.binding.icloud.handler.BridgeHandler] - iCloud device discovery for [MacBook Pro 13"]
11:56:36.128 [DEBUG] [.binding.icloud.handler.DeviceHandler] - Initializing iCloud device handler.
11:56:36.122 [DEBUG] [.binding.icloud.handler.DeviceHandler] - Initializing iCloud device handler.
11:56:36.146 [DEBUG] [.binding.icloud.handler.BridgeHandler] - iCloud device discovery for [iPad]
11:56:36.144 [DEBUG] [.binding.icloud.handler.DeviceHandler] - Initializing iCloud device handler.
11:56:36.143 [DEBUG] [.binding.icloud.handler.DeviceHandler] - initializeThing thing icloud:device:tgudlek:1e0725f5 bridge status ONLINE
11:56:36.157 [DEBUG] [.binding.icloud.handler.DeviceHandler] - initializeThing thing icloud:device:tgudlek:5fe26aff bridge status ONLINE
11:56:36.153 [DEBUG] [.binding.icloud.handler.BridgeHandler] - iCloud bridge data refresh complete.
11:56:36.149 [DEBUG] [.binding.icloud.handler.DeviceHandler] - initializeThing thing icloud:device:tgudlek:1a6feb50 bridge status ONLINE
11:56:36.181 [DEBUG] [.binding.icloud.handler.BridgeHandler] - iCloud bridge refreshing data …
11:56:37.688 [ERROR] [.binding.icloud.handler.BridgeHandler] - null
[Ljava.lang.StackTraceElement;@ba6e92

Device IDs are set correctly in the config file (following the example from github repo), and the binding is installed manually using SNAPSHOT jar. I’m also using OH2.2.

Hi Tomislav,

I checked the code of the binding & it fails during the evaluation of a configured thing device id:

      String deviceId = thing.getProperties().get(IDPROPERTY);
    
       for (int i = 0; i < content.size(); i++) {
            if (content.get(i).getId().compareToIgnoreCase(deviceId) == 0) {
                return content.get(i);
            }
        }

Can you verify that all three things have the correct id set and maybe post your configuration? To be precise the “compareToIgnoreCase(deviceId)” seems to fail. I´ll also add additional logging to the binding in that area. I´ll let you know once that is ready.

with kind regards,
Patrik

Hey Patrick,

thanks for the swift reply!

Anyway, here’s the discovery info:

2017-11-18 11:54:42.771 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud bridge handler started.
2017-11-18 11:54:42.776 [DEBUG] [binding.icloud.handler.BridgeHandler] - lCloud bridge initialized.
2017-11-18 11:54:44.455 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud device discovery for [iPhone SE]
2017-11-18 11:54:44.465 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing ‘icloud:device:tgudlek:5fe26aff’ to inbox.
2017-11-18 11:54:44.468 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud device discovery for [MacBook Pro 13"]
2017-11-18 11:54:44.487 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing ‘icloud:device:tgudlek:1a6feb50’ to inbox.
2017-11-18 11:54:44.489 [DEBUG] [binding.icloud.handler.BridgeHandler] - iCloud device discovery for [iPad]
2017-11-18 11:54:44.507 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing ‘icloud:device:tgudlek:1e0725f5’ to inbox.

and this is my config

Bridge icloud:account:tgudlek [appleId="t@gudlek.com", password="hunter2", refreshTimeInMinutes=5] {
    Thing device 5fe26aff "Tomi's iPhone" @ "World"
    Thing device 1e0725f5 "Tomi's iPad" @ "World"
    Thing device 1a6feb50 "bowie (Tomi's MacBook Pro)" @ "World"
}

please remove the password from the example; as it was already posted => change it

No worries, it’s a fake one.

2 Likes

Hi Tomislav,

I can confirm that you´ve found a bug in the binding; please use paper UI for the moment for the thing creation. I´ll work on a fix this weekend and let you know once an updated binding is available.

thanks for providing the info and kind regards,
Patrik

1 Like

Thanks, Patrick! Kudos for the great work you’re doing here :slight_smile:

Hi Tomislav,

a new CI build with the fix is ready; please let me know if it works. If not the .log would be much appreciated.

with kind regards,
Patrik

Hey Patrik,

It works just fine!

I can confirm that the textual configuration is working with the last build. But all my devices stays offline regardless of whether I use the textual configuration or the PaperUI. Unfortunately, the log is not very meaningful:

18-Nov-2017 15:53:50.151 [DEBUG] [org.openhab.binding.icloud                        ] - BundleEvent INSTALLED - org.openhab.binding.icloud
18-Nov-2017 15:54:11.210 [DEBUG] [org.openhab.binding.icloud                        ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory}={component.name=org.openhab.binding.icloud.internal.BridgeHandlerFactory, component.id=0, service.id=150, service.bundleid=10, service.scope=bundle} - org.openhab.binding.icloud
18-Nov-2017 15:54:11.246 [DEBUG] [org.openhab.binding.icloud                        ] - BundleEvent STARTING - org.openhab.binding.icloud
18-Nov-2017 15:54:11.249 [DEBUG] [org.openhab.binding.icloud                        ] - BundleEvent STARTED - org.openhab.binding.icloud
18-Nov-2017 15:54:23.149 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud bridge handler initializing ...
18-Nov-2017 15:54:23.153 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud bridge starting handler ...
18-Nov-2017 15:54:23.187 [DEBUG] [org.openhab.binding.icloud                        ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.config.discovery.DiscoveryService}={service.id=281, service.bundleid=10, service.scope=singleton} - org.openhab.binding.icloud
18-Nov-2017 15:54:23.197 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud bridge handler started.
18-Nov-2017 15:54:23.199 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - lCloud bridge initialized.
18-Nov-2017 15:54:23.202 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud bridge refreshing data ...
18-Nov-2017 15:54:25.208 [DEBUG] [org.openhab.binding.icloud.handler.DeviceHandler  ] - Initializing iCloud device handler.
18-Nov-2017 15:54:25.209 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [iPad 2]
18-Nov-2017 15:54:25.210 [DEBUG] [org.openhab.binding.icloud.handler.DeviceHandler  ] - initializeThing thing icloud:device:account1:abcd1234 bridge status ONLINE
18-Nov-2017 15:54:25.263 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [iPhone 7]
18-Nov-2017 15:54:25.266 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [iPhone 6]
18-Nov-2017 15:54:25.293 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [Apple Watch]
18-Nov-2017 15:54:25.305 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [iPad Pro]
18-Nov-2017 15:54:25.334 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [MacBook]
18-Nov-2017 15:54:25.340 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [iMac]
18-Nov-2017 15:54:25.346 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [MacBook Pro 15"]
18-Nov-2017 15:54:25.352 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud device discovery for [MacBook Pro 15"]
18-Nov-2017 15:54:25.385 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud bridge data refresh complete.
18-Nov-2017 15:54:26.676 [DEBUG] [org.openhab.binding.icloud.handler.BridgeHandler  ] - iCloud bridge refreshing data ...

In addition, I get the following warnings during the bundle installation:

Installation Warnings
18-Nov-2017 15:53:50.151 [DEBUG] [org.openhab.binding.icloud                        ] - BundleEvent INSTALLED - org.openhab.binding.icloud
18-Nov-2017 15:53:51.247 [WARN ] [org.apache.felix.fileinstall                      ] - Error while starting bundle: file:/openhab/addons/org.openhab.binding.icloud-2.2.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.icloud [10]
  Unresolved requirement: Import-Package: com.google.common.collect

	at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312) [8:org.apache.felix.fileinstall:3.6.0]
18-Nov-2017 15:53:51.589 [WARN ] [org.jline                                         ] - Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)
18-Nov-2017 15:53:52.590 [WARN ] [org.apache.felix.fileinstall                      ] - Error while starting bundle: file:/openhab/addons/org.openhab.binding.icloud-2.2.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.icloud [10]
  Unresolved requirement: Import-Package: com.google.common.collect

	at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312) [8:org.apache.felix.fileinstall:3.6.0]
18-Nov-2017 15:53:55.939 [WARN ] [org.apache.felix.fileinstall                      ] - Error while starting bundle: file:/openhab/addons/org.openhab.binding.icloud-2.2.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.icloud [10]
  Unresolved requirement: Import-Package: com.google.common.collect

	at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312) [8:org.apache.felix.fileinstall:3.6.0]
18-Nov-2017 15:53:57.192 [WARN ] [org.apache.felix.fileinstall                      ] - Error while starting bundle: file:/openhab/addons/org.openhab.binding.icloud-2.2.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.icloud [10]
  Unresolved requirement: Import-Package: org.eclipse.jdt.annotation; resolution:="optional"
  Unresolved requirement: Import-Package: org.eclipse.smarthome.config.core
  Unresolved requirement: Import-Package: com.google.gson
    -> Export-Package: com.google.gson; bundle-symbolic-name="com.google.gson"; bundle-version="2.7.0"; version="2.7.0"; uses:="com.google.gson.reflect,com.google.gson.stream"
       com.google.gson [23]
  Unresolved requirement: Import-Package: com.google.common.collect
    -> Export-Package: com.google.common.collect; bundle-symbolic-name="com.google.guava"; bundle-version="18.0.0"; version="18.0.0"; uses:="com.google.common.base,javax.annotation,com.google.common.primitives,com.google.common.math"
       com.google.guava [24]
         Unresolved requirement: Import-Package: javax.annotation; resolution:="optional"
           -> Export-Package: javax.annotation; bundle-symbolic-name="javax.annotation-api"; bundle-version="1.2.0"; version="1.2.0"
              javax.annotation-api [28]

	at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312) [8:org.apache.felix.fileinstall:3.6.0]
18-Nov-2017 15:53:58.471 [WARN ] [org.apache.felix.fileinstall                      ] - Error while starting bundle: file:/openhab/addons/org.openhab.binding.icloud-2.2.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.icloud [10]
  Unresolved requirement: Import-Package: org.eclipse.jdt.annotation; resolution:="optional"
  Unresolved requirement: Import-Package: org.eclipse.smarthome.config.core
  Unresolved requirement: Import-Package: com.google.gson
    -> Export-Package: com.google.gson; bundle-symbolic-name="com.google.gson"; bundle-version="2.7.0"; version="2.7.0"; uses:="com.google.gson.reflect,com.google.gson.stream"
       com.google.gson [23]
  Unresolved requirement: Import-Package: com.google.common.collect
    -> Export-Package: com.google.common.collect; bundle-symbolic-name="com.google.guava"; bundle-version="18.0.0"; version="18.0.0"; uses:="com.google.common.base,javax.annotation,com.google.common.primitives,com.google.common.math"
       com.google.guava [24]
         Unresolved requirement: Import-Package: javax.annotation; resolution:="optional"
           -> Export-Package: javax.annotation; bundle-symbolic-name="javax.annotation-api"; bundle-version="1.2.0"; version="1.2.0"
              javax.annotation-api [28]

	at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312) [8:org.apache.felix.fileinstall:3.6.0]
18-Nov-2017 15:53:59.712 [WARN ] [org.apache.felix.fileinstall                      ] - Error while starting bundle: file:/openhab/addons/org.openhab.binding.icloud-2.2.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.icloud [10]
  Unresolved requirement: Import-Package: org.eclipse.jdt.annotation; resolution:="optional"
  Unresolved requirement: Import-Package: org.eclipse.smarthome.config.core
  Unresolved requirement: Import-Package: com.google.gson
    -> Export-Package: com.google.gson; bundle-symbolic-name="com.google.gson"; bundle-version="2.7.0"; version="2.7.0"; uses:="com.google.gson.reflect,com.google.gson.stream"
       com.google.gson [23]
  Unresolved requirement: Import-Package: com.google.common.collect
    -> Export-Package: com.google.common.collect; bundle-symbolic-name="com.google.guava"; bundle-version="18.0.0"; version="18.0.0"; uses:="com.google.common.base,javax.annotation,com.google.common.primitives,com.google.common.math"
       com.google.guava [24]
         Unresolved requirement: Import-Package: javax.annotation; resolution:="optional"
           -> Export-Package: javax.annotation; bundle-symbolic-name="javax.annotation-api"; bundle-version="1.2.0"; version="1.2.0"
              javax.annotation-api [28]

	at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) [8:org.apache.felix.fileinstall:3.6.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312) [8:org.apache.felix.fileinstall:3.6.0]

Thank you for the report; I´ll refactor the binding that it does not use that anymore. I´ll let you know once a new CI build is available.

with kind regards,
Patrik

1 Like