Release Candidate and Support: Amazon Echo Control Binding

Have you cheked the volume?

Yes, even the lights when echo dot start to speak does not get up…

2020-07-16 08:04:30.312 [ome.event.ItemCommandEvent] - Item ‘TTS’ received command 1

2020-07-16 08:04:30.341 [ome.event.ItemCommandEvent] - Item ‘Echo_Living_Room_TTS’ received command Al�cia, voc� � tudo na minha vida, papai te ama polakita

2020-07-16 08:04:30.408 [nt.ItemStatePredictedEvent] - Echo_Living_Room_TTS predicted to become Al�cia, voc� � tudo na minha vida, papai te ama polakita

2020-07-16 08:04:30.442 [vent.ItemStateChangedEvent] - Echo_Living_Room_TTS changed from to Al�cia, voc� � tudo na minha vida, papai te ama polakita

2020-07-16 08:04:32.171 [vent.ItemStateChangedEvent] - Echo_Living_Room_TTS changed from Al�cia, voc� � tudo na minha vida, papai te ama polakita to

I think it is a “security” problem, that their site detects a “redirect” to amazon.com via an IP (openhab IP) when different from the one detected in the browser. I can’t launch a browser from within openhab (RPi), so could someone with browser access within their openhab install please test?

That did not work for me.

1 Like

I have the same issue with the version that was provided in this thread for download. The Text to speech does not work. It is issue correctly but afterwards as shown in my exaple deleted immediately after 2 sec:

2020-07-22 18:34:08.934 [ome.event.ItemCommandEvent] - Item 'Echo_Markus_TTS' received command Es ist alles in Ordnung, nichts ist offen.
2020-07-22 18:34:08.937 [nt.ItemStatePredictedEvent] - Echo_Markus_TTS predicted to become Es ist alles in Ordnung, nichts ist offen.
2020-07-22 18:34:08.952 [vent.ItemStateChangedEvent] - Echo_Markus_TTS changed from to Es ist alles in Ordnung, nichts ist offen.
2020-07-22 18:34:10.156 [vent.ItemStateChangedEvent] - Echo_Markus_TTS changed from Es ist alles in Ordnung, nichts ist offen. to **(NOTHING HERE)**

Any idea how to get this working again? I use the TTS very intensivly to inform the family about certain states of the house, welcome etc. Everything else seems fine, the “Good Monring” announcements etc. work as designed.

Regards Markus

Check the developer thread, Trinitus01 is implementing some fixes:

Changing the account.thing (simply a new account ID) did it for me.
Immediately after changing I was able to log in again.

3 Likes

Thanks for the hint. That worked for me too!

1 Like

I tried that too. Did not work with 2.5.6. And after your message I tried it yet again and it failed yet again.

From what i understand, that’s the point: you have to use the 2.5.7-snapshot binding (see URL posted above).

I used 2.5.7-SNAPSHOT for logging in, after the login was successful I changed to the 2.5.6.jar again.

I solved a problem not yet addressed here…

With 2.5.7., the login still fails and also includes a “challenge” in addition to entering the password. Even when keying that manually along with Amazon password, it still fails to log in. If you have this problem: it means you have one-time passwords (OTP) set in Amazon as “not required” for the device attempting to login for validation for OH, so it will fail every time.

The solution is to log on to Amazon using a different device (one that that actually logs in to Amazon, like their phone app), then reset your device to require OTP.

That worked for me too!

changing the account.thing ID and reboot

There has been a lot of trouble with the amazon binding the last weeks. @J-N-K and @Trinitus01 spent a lot of time investigating, implementing and testing with others. Most of the problems are solved now, from what i understand.
There were also talks about the OTP and to set your account to “not required”. As OTP has never been supported by openhab up to now, this info maybe a bit hard to realize in this thread.
Maybe this info should find its way into the docs.

I know that @Apollon77 have resolved thoses issues on his alexa-remote library )( so same thing apply for iobroker alexa2 .)

It might be useful to you guy to take a look at his code . But it is javascript

My solution was to delete the amazonechocontrol*.json file in the userdata\jsondb folder. After deleting this file and restart of OH you can recreate your old account thing with the same name.

1 Like

openHAB just updated from 2.5.6-2 to 2.5.7-7 and now this binding is completely broken for me - just a warning for others who might experience this as well if you update openHAB…

Seems to be a certificate issue, identical to what is described in this community forum post for a different binding that also “broke” when openHAB was updated. Here is the full error code that now appears when I go to the Amazon Echo Control binding configuration URL, in place of where my Echo Devices and serial numbers would normally be listed:

HTTP ERROR 500
Problem accessing /amazonechocontrol/0654f2d8. Reason:

    Server Error
Caused by:
javax.servlet.ServletException: javax.net.ssl.SSLHandshakeException: No trusted certificate found
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:88)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:494)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
	at java.lang.Thread.run(Thread.java:748)
Caused by: javax.net.ssl.SSLHandshakeException: No trusted certificate found
	at sun.security.ssl.Alert.createSSLException(Alert.java:131)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:645)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:464)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360)
	at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
	at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:156)
	at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1197)
	at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1106)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:398)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:370)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)
	at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:588)
	at org.openhab.binding.amazonechocontrol.internal.Connection.tryGetBootstrap(Connection.java:441)
	at org.openhab.binding.amazonechocontrol.internal.Connection.verifyLogin(Connection.java:852)
	at org.openhab.binding.amazonechocontrol.internal.AccountServlet.doGet(AccountServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)
	... 15 more
Caused by: sun.security.validator.ValidatorException: No trusted certificate found
	at sun.security.validator.SimpleValidator.buildTrustedChain(SimpleValidator.java:398)
	at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:135)
	at sun.security.validator.Validator.validate(Validator.java:271)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:223)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:629)
	... 56 more
Caused by:
javax.net.ssl.SSLHandshakeException: No trusted certificate found
	at sun.security.ssl.Alert.createSSLException(Alert.java:131)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:645)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:464)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360)
	at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
	at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:156)
	at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1197)
	at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1106)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:398)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:370)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)
	at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:588)
	at org.openhab.binding.amazonechocontrol.internal.Connection.tryGetBootstrap(Connection.java:441)
	at org.openhab.binding.amazonechocontrol.internal.Connection.verifyLogin(Connection.java:852)
	at org.openhab.binding.amazonechocontrol.internal.AccountServlet.doGet(AccountServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:494)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
	at java.lang.Thread.run(Thread.java:748)
Caused by: sun.security.validator.ValidatorException: No trusted certificate found
	at sun.security.validator.SimpleValidator.buildTrustedChain(SimpleValidator.java:398)
	at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:135)
	at sun.security.validator.Validator.validate(Validator.java:271)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:223)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:629)
	... 56 more
Caused by:
sun.security.validator.ValidatorException: No trusted certificate found
	at sun.security.validator.SimpleValidator.buildTrustedChain(SimpleValidator.java:398)
	at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:135)
	at sun.security.validator.Validator.validate(Validator.java:271)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:223)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:629)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:464)
	at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360)
	at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
	at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
	at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:156)
	at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1197)
	at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1106)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:398)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:370)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)
	at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:588)
	at org.openhab.binding.amazonechocontrol.internal.Connection.tryGetBootstrap(Connection.java:441)
	at org.openhab.binding.amazonechocontrol.internal.Connection.verifyLogin(Connection.java:852)
	at org.openhab.binding.amazonechocontrol.internal.AccountServlet.doGet(AccountServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:494)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
	at java.lang.Thread.run(Thread.java:748)
Powered by Jetty:// 9.4.20.v20190813

It seems one can “self-sign” the certificate but I’m not too familiar with that process… trying to figure out how to accomplish this now, or might just downgrade openHAB for now…

Edit: Sorry for false alarm, but everything seems to be working again after letting openHABian update Java from Zulu 8 OpenJDK 64-bit to Zulu 11 OpenJDK 64-bit, which is no longer in beta, according to the “openHABian Announcements” info screen. This resolved all of my Java certificate error problems and I am now running the latest openHAB stable (2.5.7-7) again with my Java error issues resolved. Perhaps this information might be helpful should anyone else experience the issues I had when openHAB updated itself.

TL;DR - Make sure you keep your Java updated. :heavy_check_mark::+1:

Edit 2: Well… never mind - the certificate error is back… :exploding_head::dizzy_face:… I’m going to just downgrade openHAB back to 2.5.6-2 for now and call it a night. Sorry for all the posts. Hopefully I’m the only person who is experiencing this issue…

Haha, I swear I used the search function! It seems this issue has already been discussed/reported…

1 Like

See [Java 11 test]: amazonechocontrol 2.5.7-snapshop throws exceptions due to missing cacerts file copying back the cacerts file from Java 8 to Java 11 helps

1 Like

Thanks! I just tried this now, with no luck :frowning:

This link suggests a major purge of everything Java from the system and then a fresh re-install, so I am trying this now to see if it helps…

But it seems the openHABian Zulu-11 installer isn’t properly generating a “cacerts” file at all, so this still may not work. I may try installing Java the old way/directly, without openHABian. Or just go back to Java 8…

@J-N-K

I think I’ve solved the problem and everything is working again! Instead of copying the cacerts from the other Java, the approach I found at this link suggested it’s better if possible to totally purge everything Java and then install fresh, letting the certificate store/cacerts file be properly regenerated.

I used the following command to remove all old Java packages:

sudo apt-get purge openjdk* zulu* java-common

and then reinstalled Java 11 via openHABian:

richard@HomeServer:~
$ java -version
openjdk version "11.0.8" 2020-07-14 LTS
OpenJDK Runtime Environment Zulu11.41+23-CA (build 11.0.8+10-LTS)
OpenJDK 64-Bit Server VM Zulu11.41+23-CA (build 11.0.8+10-LTS, mixed mode)

And now everything is online again, I can see my Echo Devices online, and all Echo Smart Home Devices (preview/beta) are working fine as well! :tada::raised_hands: Fingers crossed it keeps working…

Edit: It worked for five minutes, and now the error is back… :sob::sob:

Edit Again: Everything is working now! :tada::tada::tada: Seems to be fixed. :+1:

Steps taken to resolve:

  1. Update openHAB normally or through openHABian. Then stop openHAB.

  2. Purge all Java/Zulu installations:
    sudo apt purge openjdk* zulu*

  3. Make sure you’ve deleted any “cacerts” files on your machine. I used a common file-search program on Linux (Catfish) but you could also use a fancy terminal command to remove all “cacerts” files.

  4. Install Java 11 / Zulu OpenJDK manually. For me, on Debian, the commands were:

     sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
     echo "deb http://repos.azulsystems.com/debian stable main" | sudo tee /etc/apt/sources.list.d/zulu.list
     sudo apt update
     sudo apt install zulu-11
    

And everything is good to go! :slight_smile:

1 Like