[SOLVED] Alexa discover device issues on milestone release 2.4.0-M3

It may not have anything to do with the moving to a milestone release. As I have also updated the jar to the latest for the AmazonEchoControl binding.

  1. All of the devices in the alexa app that are found via openhab are marked as offline. Although I can still control them.
  2. If I delete a device and try to discover it will not be found and I can no longer control it.
  3. If I add a new item in OH2 with a switchable tag, it too will not be .found by a discover devices on Alexa.

My OH2 system has been rebooted multiple times.

I am not sure of the best way to debug this from the karaf console, if someone can point me in the right direction that will be useful.

I am seeing this error in my logs soon after every attempt to ‘discover devices’ on the echo device.

==> /var/log/openhab2/openhab.log <==

2018-09-14 18:11:38.371 [ERROR] [ersey.server.ServerRuntime$Responder] - An I/O error has occurred while writing a response message entity to the container output stream.

org.glassfish.jersey.server.internal.process.MappableException: org.eclipse.jetty.io.EofException

	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:92) [163:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711) [163:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444) [163:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434) [163:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329) [163:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [162:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [163:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [163:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) [160:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [160:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [160:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [160:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [160:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) [15:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) [78:org.eclipse.jetty.servlet:9.3.21.v20170918]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [78:org.eclipse.jetty.servlet:9.3.21.v20170918]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [175:org.ops4j.pax.web.pax-web-jetty:6.0.9]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [75:org.eclipse.jetty.security:9.3.21.v20170918]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [175:org.ops4j.pax.web.pax-web-jetty:6.0.9]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [78:org.eclipse.jetty.servlet:9.3.21.v20170918]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [175:org.ops4j.pax.web.pax-web-jetty:6.0.9]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.Server.handle(Server.java:534) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [80:org.eclipse.jetty.util:9.3.21.v20170918]

	at java.lang.Thread.run(Thread.java:748) [?:?]

Caused by: org.eclipse.jetty.io.EofException

	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:199) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:420) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:147) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:739) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:519) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:750) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:235) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:219) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:470) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.glassfish.jersey.servlet.internal.ResponseWriter$NonCloseableOutputStreamWrapper.write(ResponseWriter.java:325) ~[?:?]

	at org.glassfish.jersey.message.internal.CommittingOutputStream.write(CommittingOutputStream.java:229) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$UnCloseableOutputStream.write(WriterInterceptorExecutor.java:299) ~[?:?]

	at org.glassfish.jersey.message.internal.ReaderWriter.writeTo(ReaderWriter.java:116) ~[?:?]

	at org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider.writeTo(AbstractMessageReaderWriterProvider.java:79) ~[?:?]

	at org.glassfish.jersey.message.internal.InputStreamProvider.writeTo(InputStreamProvider.java:105) ~[?:?]

	at org.glassfish.jersey.message.internal.InputStreamProvider.writeTo(InputStreamProvider.java:60) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[?:?]

	at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[?:?]

	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86) ~[?:?]

	... 46 more

Caused by: java.io.IOException: Broken pipe

	at sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[?:?]

	at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51) ~[?:?]

	at sun.nio.ch.IOUtil.write(IOUtil.java:148) ~[?:?]

	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504) ~[?:?]

	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:179) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:420) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:147) ~[69:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:739) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[80:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:519) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:750) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:235) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:219) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:470) ~[77:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.glassfish.jersey.servlet.internal.ResponseWriter$NonCloseableOutputStreamWrapper.write(ResponseWriter.java:325) ~[?:?]

	at org.glassfish.jersey.message.internal.CommittingOutputStream.write(CommittingOutputStream.java:229) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$UnCloseableOutputStream.write(WriterInterceptorExecutor.java:299) ~[?:?]

	at org.glassfish.jersey.message.internal.ReaderWriter.writeTo(ReaderWriter.java:116) ~[?:?]

	at org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider.writeTo(AbstractMessageReaderWriterProvider.java:79) ~[?:?]

	at org.glassfish.jersey.message.internal.InputStreamProvider.writeTo(InputStreamProvider.java:105) ~[?:?]

	at org.glassfish.jersey.message.internal.InputStreamProvider.writeTo(InputStreamProvider.java:60) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[?:?]

	at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[?:?]

	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86) ~[?:?]

	... 46 more

Thanks

Paul

Marking as solved, as I have determined awhat is causing the of offlineing and discover for Amazon echo.

It is my alexa.items file which has all the items for the AmazonEchoControl binding.

It seems that there s a poor level of exception control in the binding andf for somne reason many of the items that were defined correctly in the 2.3 version of the binding cause this functional breakdown in version beta 2.4 builds.

I will get it narrowed down fully and then if needed open a new post on the binding thread.

In order to narrow it down I basically excluded all the item files that had switchable tags and then established that discover worked with the remaining. After this it was simply a case of introducing the files one by one until all were acceptable except one, then I begun introducing each item in the file, its a long and slow process and could be made easier by good informative error routines.
Regards

Paul

1 Like

Confirmed to work for me as well - with one addition; if you had simple mode activated while installing the binding, it seems necessary to uninstall the things (or at least channels) generated to get past this issue. The word ‘seems’ being pivotal as I have tried most sorts of voodoo to get past this and it could possibly be something else that did it. Seems logical though, and it did work after this step was executed.