Announcing some improvements to the Homekit plugin for openHAB 2

This is the current effort:

1 Like

When you say “the next start of the app”, do you mean if OpenHAB is restarted? This is likely because you don’t have a persistence service configured, so when OpenHAB restarts it doesn’t immediately know the status of your battery, so we can’t report to HomeKit that the battery is low.

No, I mean the homekit app. I have not restarted openhab. Yesterday I had the following result:
The opened window is displayed with a battery warning in the Homekit app. When I close the window, the battery warning remains. If I close the Homekit app now and open it again afterwards, the battery warning has disappeared.

I have added automation to my garage door and a reed switch that shows the status as soon as the door gets opened or closed. This works well but I was wondering if the switch could be merged with the “Contact” button so that you can click the garage door picture and that acts as the switch as well?

1 Like

@Tim_Harper @ccutrer Great to see someone working on the homekit addon, greatly appreciated!

If you have time, here is another issue I’ve opened a while ago, which would improve thermostat handling quite a bit…

This is really great, @Tim_Harper. Thank you very much.

I noticed one small change compared to the old Homekit binding. For a “Lighting” you could choose type of bulb like you can choose type of “ContactSensor” in the Homekit app. It seems that this option is gone with the new binding.
The types looked like this:

Edit:
The functionality is identical to what it was before. The icons for light can be changed by holding down the icon, which is different than ContactSensor.

Just wanted to add my voice of thanks to @Tim_Harper for the efforts on this plugin. Homekit integration has always been an important part of Openhab for us and your efforts to improve the functionality and stability are REALLY appreciated! Thank you!

This is where openhab needs to borrow some concepts from homeassistant. I have exactly what you want…but on homeassistant. It can define commands for opening and closing the door (and an mqtt topic), and a separate topic for state. These are all combined into one entity that is a garage door (or a cover more specifically). Same with alarms and thermostats.

1 Like

Hi Tim,
It seams Security system is not included in the last release"…-6", isn’t it?

Hi.

We would like to get all of these great improvements merged into master as soon as possible. Since @Tim_Harper currently is not able to complete this (get well soon!) I took over.

However, I’m not using Homekit at the moment, so I need your help. I have prepared a test-version, which can be found here. I would very much appreciate to hear from you.

Regards

Jan

Which build is the minimum requirement to be able to test it?

I think any 2.5.0 will do but I’m not sure. If necessary I can adapt the .kar.

I would like to test the improved version, but unfortunately I can’t uninstall the previously installed HomeKit Integration. In PaperUI I the spinning after pressing “Uninstall” never stops. In the console, I get the following error:


                          __  _____    ____      
  ____  ____  ___  ____  / / / /   |  / __ )     
 / __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __  | 
/ /_/ / /_/ /  __/ / / / __  / ___ |/ /_/ /      
\____/ .___/\___/_/ /_/_/ /_/_/  |_/_____/     
    /_/                        2.5.0-SNAPSHOT
                               Build #1549   

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown openHAB.

openhab> feature:uninstall openhab-misc-homekit
java.lang.StackOverflowError
	at java.util.regex.Pattern.range(Pattern.java:2665)
	at java.util.regex.Pattern.clazz(Pattern.java:2564)
	at java.util.regex.Pattern.sequence(Pattern.java:2065)
	at java.util.regex.Pattern.expr(Pattern.java:1998)
	at java.util.regex.Pattern.compile(Pattern.java:1698)
	at java.util.regex.Pattern.<init>(Pattern.java:1351)
	at java.util.regex.Pattern.compile(Pattern.java:1028)
	at java.util.regex.Pattern.matches(Pattern.java:1133)
	at java.lang.String.matches(String.java:2121)
	at org.apache.felix.utils.resource.ResourceUtils.append(ResourceUtils.java:95)
	at org.apache.felix.utils.resource.ResourceUtils.toString(ResourceUtils.java:38)
	at org.apache.felix.utils.resource.AbstractCapabilityRequirement.toString(AbstractCapabilityRequirement.java:81)
	at org.apache.felix.utils.resource.RequirementImpl.toString(RequirementImpl.java:31)
	at org.apache.karaf.features.internal.resolver.ResourceUtils.toFeatureRequirement(ResourceUtils.java:171)
	at org.apache.karaf.features.internal.region.Subsystem.require(Subsystem.java:301)
	at org.apache.karaf.features.internal.region.SubsystemResolver.prepare(SubsystemResolver.java:141)
	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:379)
	at org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1075)
	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:383)
	at org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1075)

[many more lines with the same two statements]

	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:383)
	at org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1075)
Error executing command: java.lang.StackOverflowError

Any advice?

Check which bundles are installed (bundles:list). Uninstalling the org.openhab.io.homekit bundle should be enough.

Ok, that doesn’t seem to work on 2.5.0-Snapshot Build #1549

openhab> feature:install openhab-misc-homekit-test
Error executing command: java.lang.StackOverflowError

openhab.log:

2019-05-10 22:51:35.668 [WARN ] [internal.service.FeaturesServiceImpl] - Can't load features repository mvn:org.apache.karaf.features/framework/4.2.2/xml/features
java.lang.RuntimeException: Error resolving artifact org.apache.karaf.features:framework:xml:features:4.2.2: [Could not find artifact org.apache.karaf.features:framework:xml:features:4.2.2 in openhab (https://openhab.jfrog.io/openhab/online-repo-snapshot/2.5/)] : mvn:org.apache.karaf.features/framework/4.2.2/xml/features
	at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:116) ~[11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.RepositoryImpl.<init>(RepositoryImpl.java:50) ~[11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.RepositoryCacheImpl.create(RepositoryCacheImpl.java:51) ~[11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getFeatureCache(FeaturesServiceImpl.java:593) [11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.ensureCacheLoaded(FeaturesServiceImpl.java:564) [11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getRepository(FeaturesServiceImpl.java:512) [11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.findMissingDependency(KarServiceImpl.java:164) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:115) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:94) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:86) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.deployer.kar.KarArtifactInstaller.install(KarArtifactInstaller.java:50) [48:org.apache.karaf.deployer.kar:4.2.2]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:950) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:884) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:489) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]
Caused by: java.io.IOException: Error resolving artifact org.apache.karaf.features:framework:xml:features:4.2.2: [Could not find artifact org.apache.karaf.features:framework:xml:features:4.2.2 in openhab (https://openhab.jfrog.io/openhab/online-repo-snapshot/2.5/)]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:720) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:659) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:600) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:567) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:557) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123) ~[?:?]
	at java.net.URL.openStream(URL.java:1045) ~[?:?]
	at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:113) ~[?:?]
	... 15 more
	Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.apache.karaf.features:framework:xml:features:4.2.2 in openhab (https://openhab.jfrog.io/openhab/online-repo-snapshot/2.5/)
		at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:39) ~[?:?]
		at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:355) ~[?:?]
		at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67) ~[?:?]
		at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:581) ~[?:?]
		at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:249) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:421) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:705) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:659) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:600) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:567) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:557) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123) ~[?:?]
		at java.net.URL.openStream(URL.java:1045) ~[?:?]
		at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:113) ~[11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.RepositoryImpl.<init>(RepositoryImpl.java:50) ~[11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.RepositoryCacheImpl.create(RepositoryCacheImpl.java:51) ~[11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getFeatureCache(FeaturesServiceImpl.java:593) [11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.FeaturesServiceImpl.ensureCacheLoaded(FeaturesServiceImpl.java:564) [11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getRepository(FeaturesServiceImpl.java:512) [11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.findMissingDependency(KarServiceImpl.java:164) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:115) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:94) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:86) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.deployer.kar.KarArtifactInstaller.install(KarArtifactInstaller.java:50) [48:org.apache.karaf.deployer.kar:4.2.2]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:950) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:884) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:489) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]
Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error resolving artifact org.apache.karaf.features:framework:xml:features:4.2.2
	at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) ~[?:?]
	at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) ~[?:?]
	at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) ~[?:?]
	at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:705) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:659) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:600) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:567) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:557) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123) ~[?:?]
	at java.net.URL.openStream(URL.java:1045) ~[?:?]
	at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:113) ~[?:?]
	... 15 more
2019-05-10 22:51:36.305 [WARN ] [internal.service.FeaturesServiceImpl] - Can't load features repository mvn:org.apache.karaf.features/standard/4.2.2/xml/features
java.lang.RuntimeException: Error resolving artifact org.apache.karaf.features:standard:xml:features:4.2.2: [Could not find artifact org.apache.karaf.features:standard:xml:features:4.2.2 in openhab (https://openhab.jfrog.io/openhab/online-repo-snapshot/2.5/)] : mvn:org.apache.karaf.features/standard/4.2.2/xml/features
	at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:116) ~[11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.RepositoryImpl.<init>(RepositoryImpl.java:50) ~[11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.RepositoryCacheImpl.create(RepositoryCacheImpl.java:51) ~[11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getFeatureCache(FeaturesServiceImpl.java:593) [11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.ensureCacheLoaded(FeaturesServiceImpl.java:564) [11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getRepository(FeaturesServiceImpl.java:512) [11:org.apache.karaf.features.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.findMissingDependency(KarServiceImpl.java:164) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:115) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:94) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:86) [57:org.apache.karaf.kar.core:4.2.2]
	at org.apache.karaf.deployer.kar.KarArtifactInstaller.install(KarArtifactInstaller.java:50) [48:org.apache.karaf.deployer.kar:4.2.2]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:950) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:884) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:489) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]
Caused by: java.io.IOException: Error resolving artifact org.apache.karaf.features:standard:xml:features:4.2.2: [Could not find artifact org.apache.karaf.features:standard:xml:features:4.2.2 in openhab (https://openhab.jfrog.io/openhab/online-repo-snapshot/2.5/)]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:720) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:659) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:600) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:567) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:557) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123) ~[?:?]
	at java.net.URL.openStream(URL.java:1045) ~[?:?]
	at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:113) ~[?:?]
	... 15 more
	Suppressed: shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.apache.karaf.features:standard:xml:features:4.2.2 in openhab (https://openhab.jfrog.io/openhab/online-repo-snapshot/2.5/)
		at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:39) ~[?:?]
		at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:355) ~[?:?]
		at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67) ~[?:?]
		at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:581) ~[?:?]
		at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:249) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:421) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) ~[?:?]
		at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:705) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:659) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:600) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:567) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:557) ~[?:?]
		at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123) ~[?:?]
		at java.net.URL.openStream(URL.java:1045) ~[?:?]
		at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:113) ~[11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.RepositoryImpl.<init>(RepositoryImpl.java:50) ~[11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.RepositoryCacheImpl.create(RepositoryCacheImpl.java:51) ~[11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getFeatureCache(FeaturesServiceImpl.java:593) [11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.FeaturesServiceImpl.ensureCacheLoaded(FeaturesServiceImpl.java:564) [11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.features.internal.service.FeaturesServiceImpl.getRepository(FeaturesServiceImpl.java:512) [11:org.apache.karaf.features.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.findMissingDependency(KarServiceImpl.java:164) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:115) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:94) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:86) [57:org.apache.karaf.kar.core:4.2.2]
		at org.apache.karaf.deployer.kar.KarArtifactInstaller.install(KarArtifactInstaller.java:50) [48:org.apache.karaf.deployer.kar:4.2.2]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:950) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:884) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:489) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
		at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]
Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Error resolving artifact org.apache.karaf.features:standard:xml:features:4.2.2
	at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) ~[?:?]
	at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) ~[?:?]
	at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) ~[?:?]
	at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:705) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:659) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:600) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:567) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:557) ~[?:?]
	at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123) ~[?:?]
	at java.net.URL.openStream(URL.java:1045) ~[?:?]
	at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:113) ~[?:?]
	... 15 more

That’s correct. SecuritySystem is currently only in my private fork, since it depends on additional changes to the upstream HAP-Java library which have not been merged yet either. Those changes are waiting for additional major refactoring to be completed. Which is going very slow, as I have very many other demands in my life at the moment.

I don’t know when exactly S1549 was build, Karaf was recently (on 2019-04-15) upgraded from 4.2.2 to 4.2.4, maybe it is related to that change.

Hi Cody,
Thanks for your reply. Can I help you somehow on that?

With openHAB 2.5.0 Build #1578 everything went smooth.
I had no issue with pairing, adding items with and without a Homekit tag (prior to this the connection between openhab and iOS broke when changing/deleting/adding any item).
Adding/changing an item with Homekit tag throws an error on every item, that has a Homekit tag, but without any noticeable bad impact:

[ERROR] [kit.internal.HomekitAccessoryUpdater] - Received duplicate subscription on [item]

I’m using Lighting, Switchable, ContactSensor, CurrentTemperature, CurrentHumidity tags. So far with no issues.

1 Like

Will have a Look tomorrow.