Amazon Echo Control - lastVoiceCommand not receiving updates

removed SmartHome/J Amazon Echo Control Binding
shutdown openhab.
sudo openhab-cli clean-cache
restart openhab.
reinstalled SmartHome/J Amazon Echo Control Binding
Now i’m at least able to reconnect amazon account..
Now i’m connected to https://eu-api-alexa.amazon.com
This evening i will check if last voice commands works or not.

Still not working :frowning:

Not sure if this is related, but at exatly the same time this stopped working, my Eufy doorbell stopped sending it’s usual Alexa notification for doorbell presses. Motion detection still triggers an Alexa notification, and other notification targets still fire (iOS app, HomeBase ringtone) - just the doorbell press goes undetected according to Alexa. Perhaps the same update has bricked Eufy’s approach to triggering?

Note, this has nothing to do with openHAB as it should all happen within the Alexa ecosystem, but may shed light.

Aside from that, I’m at a loss as to how I can contribute to finding a solution…

multiple users report the amazon service works as before. Can you confirm this issue is fixed? Might need a bridge disable/enable.

Mine are working, see below. I’m on SmartJ version 4.3.x version.

Capture

1 Like

In OH5 with the release binding lastVoiceCommand is not working, neither after triggering the activate-channel, nor by itself.

1 Like

same for me, OH5, amazon.fr, regular binding. and multiple ‘too many requests’ also that are disconnecting things every few minutes. Also new with OH5, INFO log “getting activities failed“ every few minutes also.

That seems different as this was just about the lastVoiceCommand. The issue you describe seems to be fixed for many users. You might need to set the discovery mode to none and restart openHAB (not just the binding.)

I’m not sure if it’s totally different. The “too many requests”-error occurs each time you trigger the refresh-channel in order to fetch the lastVoiceCommands. The log says:

log
2025-08-09 07:27:03.016 [INFO ] [ntrol.internal.connection.Connection] - getting activities failed

org.openhab.binding.amazonechocontrol.internal.ConnectionException: https://www.amazon.de/alexa-privacy/apd/rvh/customer-history-records?startTime=1754717096542&endTime=1754717246542&maxRecordSize=1 failed with code 429: Too Many Requests

	at org.openhab.binding.amazonechocontrol.internal.util.HttpRequestBuilder$HttpResponseListener.onComplete(HttpRequestBuilder.java:385) ~[?:?]

	at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:218) ~[?:?]

	at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:210) ~[?:?]

	at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:481) ~[?:?]

	at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:461) ~[?:?]

	at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:424) ~[?:?]

	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:374) ~[?:?]

	at org.eclipse.jetty.http.HttpParser.parseFields(HttpParser.java:1188) ~[?:?]

	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1560) ~[?:?]

	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:208) ~[?:?]

	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:148) ~[?:?]

	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:80) ~[?:?]

	at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:131) ~[?:?]

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

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]

	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) ~[?:?]

	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) ~[?:?]

	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) ~[?:?]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]

	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[?:?]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[?:?]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[?:?]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[?:?]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[?:?]

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) ~[?:?]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[?:?]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[?:?]

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

Maybe it’s the same root cause why people with devices connected via echo (which I don’t have) have problems.

I’ll investigate. Hopefully Amazon has this rate limit documented somewhere.

Just in case it’s helpful some history: maybe 1-2 years ago Amazon stopped to automatically feed the lastVoiceCommand. So JNK provided a workaround: all lastVoiceCommands of your echos could be fetched by explicitly triggering the (new invented) refresh-channel of the bridge. The only purpose of this channel was the workaround. Maybe it’s not needed anymore. @scheuerer said he sees that it’s filled again (really the lastVoiceCommand-channel?). Currently I cannot reproduce that in OH5 but I’ll recreate my things and try again.

I did some more tests: Re-created the bridge and echo things, send voice commands and check items. Results:
The lastVoiceCommand-items only get updated very rarely. Most of the times I got this error:

Summary
2025-08-10 21:50:29.836 [INFO ] [ntrol.internal.connection.Connection] - getting activities failed
org.openhab.binding.amazonechocontrol.internal.ConnectionException: https://www.amazon.de/alexa-privacy/apd/rvh/customer-history-records?startTime=1754855293297&endTime=1754855443297&maxRecordSize=1 failed with code 429: null
	at org.openhab.binding.amazonechocontrol.internal.util.HttpRequestBuilder$HttpResponseListener.onComplete(HttpRequestBuilder.java:385) ~[?:?]
	at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:218) ~[?:?]
	at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:210) ~[?:?]
	at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:481) ~[?:?]
	at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:461) ~[?:?]
	at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:424) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:374) ~[?:?]
	at org.eclipse.jetty.http.HttpParser.parseFields(HttpParser.java:1188) ~[?:?]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1560) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:208) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:148) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:80) ~[?:?]
	at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:131) ~[?:?]
	at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:172) ~[?:?]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[?:?]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]

From time to time it works but not reproducable.

Yep, same here on OH 5.

The v4.3.2 SmartJ version works consistently for lastVoiceCommand.

Best, Jay

Hi @lsiepel thanks for the advice.

I did all what you say (mode to 0, restart) but no change unfortunately : still have “too many request 429” and disconnecting frequently. Still have periodically “getting activities failed“. (every few minutes) > dont know if both are related but I think so. And like others, lastVoiceCommand very rarely update correctly (again, dont know if related). My settings :

Device Discovery Mode 0
Polling Interval Alexa 30
Polling Interval Skill 120
Activity Request Delay 5

I am a bit lost, with OH5 is “refreshActivity.sendCommand(ON)“ in rules still needed anymore ? (I did not see difference)

I have a general question!

In which use cases you are using the “last voice command” or the “last spoken text” ??
For what and how are you using this?

I assume that Alexa need to know in her cloud, all the OH things to use this, and the OH channels, or?

In my setup, I have all the echo lastvoicecommands in a group. If the group changes, I look for the command spoken and go down a list of IF statements to execute OH actions. My list of actions on spoken stuff is very large because it’s also checking what room the last voice command came from.

But when I ask here e.g: “turn on the water”. She tells me, that she do not know what to do.

So the OH channel “lastvoicecommand” is not updated with the “turn on the water”.

I cannot trigger a rule to do something, when the “turn on the water” is not understood from here.

Remember, OH is doing the work based on lastvoicecommand and rules around that not Alexa.

If you wante Alexa to respond properly, then create a routine for that verbiage and have it say back to you “OK” or “Sure”.

Best, Jay

My context is to ask Alexa which windows are open. Openhab scans through the sensors and then the echo which received the question should answer. I identify that with the last spoken command because only the echo that received the question gets the change event.

@scheuerer : A question to you: Is the Speak-channel (textToSpeech) working for you? It’s a quite important part of my use cases and currently doesn’t work at all: No error but no speech either