Homekit not working properly

I’ve been using the Homekit Integration and it’s been amazing, for the most part. Connects very nicely. Sees everything.

But one problem I’ve been having is that if I let my phone sit around for a while, it seems to disconnect from the openHAB server. If I say, “Siri, turn on the lights in the bedroom” it’ll say that it can’t communicate with them. But if I say it again or open the homekit app, they’ll snap back online quickly.

It happens very frequently. A great example is if I go to bed, when I wake up and say “Hey Siri, Good Morning” it can’t communicate with anything. But if I say the command again, it works. It’s always on a second try.

It’s really frustarting. Has anyone else experienced this?

still can’t seem to resolve this… has anyone else run into this? Here are some errors I’m noticing in the logs related to Homekit:

13:21:22.372 [ERROR] [lfe.hap.impl.http.impl.BinaryHandler] - Exception in binary handler
java.io.IOException: Operation timed out
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_73]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_73]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_73]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_73]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_73]
	at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_73]
13:21:22.372 [ERROR] [lfe.hap.impl.http.impl.BinaryHandler] - Exception in binary handler
java.io.IOException: Operation timed out
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_73]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_73]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_73]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_73]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_73]
	at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_73]
13:21:22.415 [ERROR] [.hap.impl.http.impl.AccessoryHandler] - Exception caught in web handler
java.io.IOException: Operation timed out
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_73]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_73]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_73]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_73]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_73]
	at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_73]
13:21:22.415 [ERROR] [.hap.impl.http.impl.AccessoryHandler] - Exception caught in web handler
java.io.IOException: Operation timed out
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_73]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_73]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_73]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_73]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_73]
	at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[206:org.openhab.io.homekit:2.0.0.201610091257]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_73]

Has anyone else had this problem?

1 Like

That’s a new one for me. How often does it happen? How long do you need to leave your phone idle?

maybe like 20 or 30 minutes? Possibly more, but less than an hour.

Same happens with OpenHAB 1 and Homebridge. I guess problem is on Apple side

Sorry to dig this up but I recently setup homekit on OH2. I’m getting a bunch of these “Exception caught in web handler java.io.IOException: Connection timed out” in my OH logs. Couple times an hour.

Is there a maintainer that can look into this?

Same thing here. I may have to turn off logging for HomeKit. Although it doesn’t appear to hurt anything, it sure makes it hard to tell if theirs actually something important being logged.

2017-03-10 09:07:09.777 [ERROR] [.hap.impl.http.impl.AccessoryHandler] - Exception caught in web handler
java.io.IOException: Connection timed out
        at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_111]
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_111]
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_111]
        at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_111]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_111]
        at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[190:org.openhab.io.homekit:2.0.0]
        at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[190:org.openhab.io.homekit:2.0.0]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_111]

@beowulfe

I am also still getting these errors with the latest nightly for OH2. The errors occur for me 100% of the time if I use an iOS device to access/view the “Home” app, then just exit the app. After a while, you will see the stack trace reported here, with “Connection timed out” being the cause. Similarly, if you disconnect your phone from the network shortly after viewing the Home app, you will see the same stack trace but with “Connection reset by peer” as the cause. So I can confirm, at least in my case, that these errors are harmless.

However, these really clutter up the log - since they are logged at ERROR level, there’s no way to get rid of them at all.

I looked at the HAP-Java code repository, and if I’m not mistaken, the issue appears to be fixed there already:

This commit was made in Aug 2016, but it appears it has not made its way to OH2 yet. Is it possible to get the latest version of homebridge/HAP/homekit, or perhaps just this change, merged into OH2?

I don’t see an issue for this in the OH2 issue list, should I create one?

Sure. It’s easy enough to merge in the newer version, if you want to take a stab at it.

Upgraded to OH2.1 and since then I am receiving loads of those:
2017-07-17 00:37:30.138 [ERROR] [lfe.hap.impl.http.impl.BinaryHandler] - Exception in binary handler
java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_131]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_131]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_131]
at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_131]
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_131]
at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[193:org.openhab.io.homekit:2.1.0]
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[193:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[193:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[193:org.openhab.io.homekit:2.1.0]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-07-17 00:37:30.145 [ERROR] [.hap.impl.http.impl.AccessoryHandler] - Exception caught in web handler
java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_131]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_131]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_131]
at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_131]
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_131]
at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[193:org.openhab.io.homekit:2.1.0]
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[193:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[193:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[193:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[193:org.openhab.io.homekit:2.1.0]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]

Any chance to get rid of those traps?

Same here,

since Upgrade to 2.1 i’m also getting this errors frequently:

2017-07-23 01:41:16.417 [ERROR] [lfe.hap.impl.http.impl.BinaryHandler] - Exception in binary handler
java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_121]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_121]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_121]
at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_121]
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_121]
at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[196:org.openhab.io.homekit:2.1.0]
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[196:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[196:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[196:org.openhab.io.homekit:2.1.0]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
2017-07-23 01:41:16.419 [ERROR] [.hap.impl.http.impl.AccessoryHandler] - Exception caught in web handler
java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)[:1.8.0_121]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)[:1.8.0_121]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)[:1.8.0_121]
at sun.nio.ch.IOUtil.read(IOUtil.java:192)[:1.8.0_121]
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)[:1.8.0_121]
at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447)[196:org.openhab.io.homekit:2.1.0]
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[196:org.openhab.io.homekit:2.1.0]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[196:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[196:org.openhab.io.homekit:2.1.0]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[196:org.openhab.io.homekit:2.1.0]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

Would be great if someone could look into this!

Kind regards

jan

I started with openhab2.1-SNAPSHOT several months ago. During this period I was never been able to get HomeKit up and running for more then several hours. This is a known problem. Unfortunately no one really cares.

same here, too. There’s still a discussion about how to implement a new kind of “tagging” to address different things like Alexa or homekit. That is also the reason why there are still no rollershutters available for homekit.


1 Like

@SpeedMaxX tagging would be nice, but a stable version would be much nicer. I wonder if someone has HomeKit up and running in a stable manner.

define stable…
My setup is quiet stable - unless openhab is restarted (https://github.com/openhab/openhab2-addons/issues/1822) and ignoring Homekit not working properly
but I am using temp and humidity sensors and a couple of switches
waiting for new accessories

@Chri46 I have two issues right now with 2.1 HomeKit stops working after several hours and sometimes time based rules also stop working. That’s the reasons I consider 2.1 unstable.

openHAB 2.2.0 Build #1065 has same issue:

2017-10-21 01:47:15.255 [ERROR] [lfe.hap.impl.http.impl.BinaryHandler] - Exception in binary handler
java.io.IOException: Connection timed out
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:?]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) [?:?]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) [?:?]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192) [?:?]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) [?:?]
	at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2017-10-21 01:47:15.263 [ERROR] [.hap.impl.http.impl.AccessoryHandler] - Exception caught in web handler
java.io.IOException: Connection timed out
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:?]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) [?:?]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) [?:?]
	at sun.nio.ch.IOUtil.read(IOUtil.java:192) [?:?]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) [?:?]
	at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:447) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:880) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [354:org.openhab.io.homekit:2.2.0.201710181101]
	at java.lang.Thread.run(Thread.java:748) [?:?]

On my install (on Rasp) Homekit seems to run quite good, as long as I don´t remove the IOS device from the OpenHab server connection. I´ve had Homekit running smooth for several days, but once I disconnect the IOS device from wifi (hence, disconnect from OpenHab) I get an exception (2017-11-05 19:40:18.173 [ERROR] [lfe.hap.impl.http.impl.BinaryHandler] - Exception in binary handler java.io.IOException: Connection reset by peer) and the same exception in web handler. The exception is of cause natural (I actually disconnected), but Homekit does not seem to handle the exception correctly (allow for reconnection at a later time) with the result that I have to reset the pairing key information and basically start over. Sounds familiar ?

@SpeedMaxX have a look at this Other homekit types through red-node in the interim as it doesn’t look like homekit will be supporting other types any time soon :frowning: