Web Socket Error on AmazonEchoControl binding every 65 seconds

LastVoiceCommand appears to have stopped working again as of this morning. Anyone else having this issue?

Edit: I should add that I’m running the latest Openhabian 2.5.6-2 on RPi4Nd have the AmazonEcho binding 2.5.6-SNAPSHOT binding linked above installed. Before the fix I had the websocket error but since then everything has been working fine until today.

Maybe you got logged out?

Thanks for the suggestion. I have checked my login status at openhab:8080/amazonechocontrol/
and also disabled and re-linked the openHAB skill in the Alexa app - still no joy :frowning:

Good to know this isn’t happening on other setups so I can investigate further into mine.

Right, I’ve discovered the problem, and it’s a weird one! On my set up, I rely quite heavily on LastVoiceCommand (LVC) to trigger certain events. I
also expose dummy switches to Alexa so that she doesn’t say “I can’t find a device called…”.

What seems to have happened is that Amazon have changed the procedure for reporting on the LVC channel. It now seems to only reports commands which are not linked to a switch being triggered. For example saying, “Alexa, volume up”, or “Alexa, play music”, or “Alexa, what’s the weather like today” (and most other sentences) show up under LVM. But if you say, “Alexa, turn the lights on”, it doesn’t! This breaks a lot of rules I’ve created :frowning:

Has anyone else noticed the change? As I said above, this occurred overnight and I discovered the problem yesterday morning.

I didn’t use LVC up to now, but upgrading to 2.5.7 might be a solution for you. @J-N-K and @Trinitus01 have been working on it, @richaardvark did a lot of testing. Searching for “last voice” and looking at the latest results should help. There is more than one thread, where LVC has been dicussed.

If you are running java 11 be aware of the problem discussed here.

Thanks @yab or the reference. I hadn’t seen that thread until now. I’ve read it through and updated to 2.5.7. Ironically, I’m not getting any errors after updating java and openHAB, but this particular issue persists.

After a few more tests it seems to be very specific; my echo devices do not report LastVoiceCommand if the command relates to any potential smartphone devices, even if they don’t exist in your system. For example, previously I was testing lights, lamps etc. (which are present in my system) but the same thing happens when I ask alexa to “open the blinds” (which are not in my system). This does not get reported at all.

I’m starting to think that this is a security-focused update to the binding or potentially on the alexa server. Perhaps I need to start a new thread or post on the one you linked to.

Can anyone else verify that the same issue is happening on their setup? To reiterate, most commands are reported by LVC, but not if they relate to smart home devices.

Edit: This appears to be another issue, not related to the websocket error. Thread started here.

I have a weird behavior I can’t explain :frowning: Got the same famous Web Socket error a while ago. Found this thread, dropped .jar in addons and all was good.
But since the last restart (trying to make ipcamera binding work), the log is full of it again :frowning:

Checked the version - looks legit (and also tried stoping openhab, remove jar, clearing cache, starting openhab - verifying PaperUI does not show it installed - and putting jar in addons). I’m on openHAB 2.5.0 Release Build atm - if it changes anything.

openhab> bundle:list | grep mazon
291 x Active x  80 x 2.5.6.202008310258      x openHAB Add-ons :: Bundles :: Amazon Echo Control Binding

But the log goes like this. Any ideas appreciated on what I could have done wrong or how to debug. Thank You so much!

UPDATE: I left it like that last night…checking the logs in the morning - have these errors for about an hour, then they disappear. Fine with that for time being; still wondering what to do/if it comes back.

UPDATE2: did another restarte and the error was there, again. I decided it’s time for update:) Cleared cache, upgraded openhab to 2.5.9, installed amazonecho from PaperUI, so far so good. Must have been something wrong at my side :frowning:

2020-09-05 23:57:15.018 [INFO ] [control.internal.WebSocketConnection] - Web Socket error

java.nio.channels.AsynchronousCloseException: null

	at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.close(HttpConnectionOverHTTP.java:181) ~[?:?]

	at java.util.ArrayList.forEach(ArrayList.java:1257) [?:1.8.0_222]

	at org.eclipse.jetty.client.AbstractConnectionPool.close(AbstractConnectionPool.java:208) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.client.DuplexConnectionPool.close(DuplexConnectionPool.java:237) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.client.HttpDestination.close(HttpDestination.java:385) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.client.HttpClient.doStop(HttpClient.java:260) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:180) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:201) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.client.WebSocketClient.doStop(WebSocketClient.java:371) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93) [bundleFile:9.4.20.v20190813]

	at org.openhab.binding.amazonechocontrol.internal.WebSocketConnection.close(WebSocketConnection.java:159) [bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.WebSocketConnection$2.run(WebSocketConnection.java:184) [bundleFile:?]

	at java.util.TimerThread.mainLoop(Timer.java:555) [?:1.8.0_222]

	at java.util.TimerThread.run(Timer.java:505) [?:1.8.0_222]

2020-09-05 23:58:25.431 [INFO ] [control.internal.WebSocketConnection] - Web Socket error

java.nio.channels.AsynchronousCloseException: null

	at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.close(HttpConnectionOverHTTP.java:181) ~[?:?]

	at java.util.ArrayList.forEach(ArrayList.java:1257) [?:1.8.0_222]

	at org.eclipse.jetty.client.AbstractConnectionPool.close(AbstractConnectionPool.java:208) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.client.DuplexConnectionPool.close(DuplexConnectionPool.java:237) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.client.HttpDestination.close(HttpDestination.java:385) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.client.HttpClient.doStop(HttpClient.java:260) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:180) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:201) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.client.WebSocketClient.doStop(WebSocketClient.java:371) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93) [bundleFile:9.4.20.v20190813]

	at org.openhab.binding.amazonechocontrol.internal.WebSocketConnection.close(WebSocketConnection.java:159) [bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.WebSocketConnection$2.run(WebSocketConnection.java:184) [bundleFile:?]

	at java.util.TimerThread.mainLoop(Timer.java:555) [?:1.8.0_222]

	at java.util.TimerThread.run(Timer.java:505) [?:1.8.0_222]

I’ve also installed the amazon echo control binding, and experienced the java heap out of memory issue…I’m running in docker and tried this vriable: EXTRA_JAVA_OPTS="-Xms400m -Xmx512m"
but leads to not starting the container…any ideas or is there another solution? I love the echo control binding!

Do you use the latest version of the AmazonEchoControl binding ?

Yes

It seems that this issue is back again…

The gap between 52 and 57 sold the result of stopping amazon binding.

2 Likes

It‘s probably a different issue and on Amazon‘s side. The same issue has also been reported for another solution that is using similar code (but a different language).

We‘ll have to wait if Amazon fixes it or investigate if the Alexa App uses a different approach now.

2 Likes

Yes, have these log entries, but no Out of Memory issues. I guess the exception handling was fixed in the binding?

I have the
2021-09-29 21:02:43.856 [INFO ] [control.internal.WebSocketConnection] - Web Socket close 1005. Reason: null
messages as well since today. My lastVoiceCommand channel of the echo devices is not updating any more. TTS is working on echo devices

I see the same thing as @martin1338 (Websocket close 1005 and broken lastVoiceCommand). But TTS works, which is a relief.

  • Thomas

Yes, that‘s expected. The lastVoiceCommand is reported via the websocket connection.

1 Like

Same error here… :frowning:

Good news:
I just recognized, that it’s back to normal: :smiley:

2021-10-01 08:04:03.100 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Alexa_LastVCom' changed from schalt die kaffeemaschine an to stelle ein timer auf zwanzig minuten
2 Likes

Seems that it is working now.

Mine is working again in the US.

Best, Jay