Alexa TTS stopped working (amazonechocontrol)

Hi all,

I’ve been a long time user of the Alexa TTS for some occasional announcements. It seems to have stopped working within the past few weeks and I can’t get it working again.

I upgraded to 3.3.0, and had an older Alexa 3.2.7 binding (org.smarthomej.binding.amazonechocontrol-3.2.7-SNAPSHOT.jar) installed from some other earlier issues.

I’ve since tried going to the standard 3.3.0 binding, as well as the Smarthomej binding with no luck.

I have logged out (and reset my Identifier) my Amazon account, confirmed my Openhab cloud connection is good, and tested all sorts of combinations of things to correct the issue.

Am I the only one having issues recently?

from my rule (which triggers in my event log)
Echo_SonosWH_TTS.sendCommand(‘Garage Door left open’)

Items are all online in my binding, nothing has changed with my config prior to this, but these don’t trigger often enough for me to have noticed exactly when it started. This is happening w/ my Alexa enabled Sonos, and normal Amazon Alexa devices.

Happy to post other details too.

Thanks!

Here it is working ( 3.3.0 ).

If more / the majority or all would have been affected more people would report this to be a problem. As this seems not to be the case - especially of the last few weeks time frame - I would conclude you are the only one.

Do you have logging directly before TTS command is executed ?

I’m using openhab 3.4 snapshot with an old pre 3.3 smarthomej Alexa binding. The TTS still works for me. I haven’t updated my smarthomej binding out of laziness.

I’m on OH3.3.0 and haven’t have any issues with alexa and TTS with both a sonos beam and a handful of amazon echos. However I did in the past have an issue when trying to switch from the non-standard binding back to the standard binding. Can you go into the karaf console and confirm if the old binding was really removed? You may have to remove both the old and new version of the binding via the console, then clear cache and reboot, then re-install the current binding through the gui.
Cheers

Can you show the exact string you want to say? It might be that there is an issue with encoding or something like „whisper“.

Thanks for the responses! I figured I was the only one here just by searching for other issues.

do I just edit my log4j2.xml and turn on debugging for this to get enough info?

I can’t tell were the problem is culminating, but when I look at my Alexa history (through the OH URL - https://openhab/amazonechocontrol/account1/PROXY/api/activities?startTime=&size=50&offset=1 ) I do not see my API calls in there. Not sure if they are supposed to or not though.

I have verified in Karaf that the expected version is running:
openhab> bundle:list | grep mazon
291 │ Active │ 80 │ 3.2.13 │ SmartHome/J Add-ons :: Bundles :: Amazon Echo Control Binding

and here is the snip from my rule, it triggers when I leave it open for 20 minutes. I see the log entries for it too.

var String JasonsGarageSpeaking = “Jasons Garage is open”
sendCommand(Echo_SonosWH_TTS, JasonsGarageSpeaking)

I have tested a number of formats in case something has changed, such as
Echo_SonosWH_TTS.sendCommand(‘Hello’)
and with double quotes vs single, but again it’s been the same for about 2 years now and only stopped within the last few weeks.

I appreciate the help & ideas!

Can you link the textToSpeechVolume channel and check what volume is set?

I have linked to that and it’s set in the 50’s. I also tried playing some music to see if it just does a small break but silently in case the TTS Volume was too low. Tried an Amazon Show announce too (I think that shows up on the screen?) to see if something triggered.

I do see my firewall allowing traffic to 99.84.229.39 (alexa.amazon.com) which happens right when I generate a request via openhab. They are oddly only showing 838 bytes though (PAN Firewall)
*Edit, my bad there, I only had session start logging enabled. I do see about 4.3k-7.4k once I enabled session end logging.

Could Amazon be denying my request somehow but I just can’t tell? I’ll try turning on some additional logging today too.

Maybe. The correct bundle for logging is org.smarthomej.binding.amazonechocontrol.

I just tried with DEBUG level logging on that bundle and saw this (serial # & other info changed for security):

2022-07-13 14:16:20.580 [DEBUG] [ntrol.internal.connection.Connection] - thread 1248470363 device 
2022-07-13 14:16:20.580 [DEBUG] [ntrol.internal.connection.Connection] - Make request to https://alexa.amazon.com/api/behaviors/preview
2022-07-13 14:16:20.581 [DEBUG] [ntrol.internal.connection.Connection] - POST: {"behaviorId":"PREVIEW","sequenceJson":"{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.SerialNode\",\"nodesToExecute\":[{\"@type\":\"com.amazon.alexa.behaviors.model.ParallelNode\",\"nodesToExecute\":[{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"Alexa.Speak\",\"operationPayload\":{\"deviceType\":\"A4ZP7ZC4PI6TO\",\"deviceSerialNumber\":\"B0913D01925306U2\",\"locale\":\"\",\"customerId\":\"A2IBQYDUDRAIR4\",\"textToSpeak\":\"Testing\"}}]}]}}","status":"ENABLED"}
2022-07-13 14:16:20.826 [DEBUG] [ntrol.internal.connection.Connection] - Call to https://alexa.amazon.com/api/behaviors/preview succeeded
2022-07-13 14:16:21.037 [DEBUG] [control.internal.handler.EchoHandler] - Handle updateState amazonechocontrol:echoshow:account1:B0913D01925306U2
2022-07-13 14:16:21.038 [DEBUG] [ntrol.internal.connection.Connection] - Make request to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:21.348 [DEBUG] [ntrol.internal.connection.Connection] - Retry call to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:22.438 [DEBUG] [trol.internal.handler.AccountHandler] - check login amazonechocontrol:account:account1
2022-07-13 14:16:22.438 [DEBUG] [trol.internal.handler.AccountHandler] - checkData amazonechocontrol:account:account1 finished
2022-07-13 14:16:23.348 [DEBUG] [ntrol.internal.connection.Connection] - Make request to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:23.726 [DEBUG] [ntrol.internal.connection.Connection] - Retry call to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:23.877 [DEBUG] [ntrol.internal.connection.Connection] - removed 1248470363 device B0913D01925306U2 
2022-07-13 14:16:25.727 [DEBUG] [ntrol.internal.connection.Connection] - Make request to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:26.085 [DEBUG] [ntrol.internal.connection.Connection] - Retry call to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:28.086 [DEBUG] [ntrol.internal.connection.Connection] - Make request to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:28.437 [DEBUG] [ntrol.internal.connection.Connection] - Retry call to https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440
2022-07-13 14:16:28.438 [DEBUG] [ntrol.internal.connection.Connection] - Request to url 'https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440' fails:
org.smarthomej.binding.amazonechocontrol.internal.ConnectionException: GET url 'https://alexa.amazon.com/api/np/player?deviceSerialNumber=B0913D01925306U2&deviceType=A4ZP7ZC4PI6TO&screenWidth=1440' failed with code 400: Bad Request
	at org.smarthomej.binding.amazonechocontrol.internal.connection.Connection.makeRequest(Connection.java:517) ~[?:?]
	at org.smarthomej.binding.amazonechocontrol.internal.connection.Connection.makeRequestAndReturnString(Connection.java:385) ~[?:?]
	at org.smarthomej.binding.amazonechocontrol.internal.connection.Connection.makeRequestAndReturnString(Connection.java:380) ~[?:?]
	at org.smarthomej.binding.amazonechocontrol.internal.connection.Connection.getPlayer(Connection.java:922) ~[?:?]
	at org.smarthomej.binding.amazonechocontrol.internal.handler.EchoHandler.updateState(EchoHandler.java:895) ~[?:?]
	at org.smarthomej.binding.amazonechocontrol.internal.handler.EchoHandler.lambda$2(EchoHandler.java:632) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
2022-07-13 14:16:28.451 [INFO ] [control.internal.handler.EchoHandler] - Failed to get player queue

So perhaps some weird Player queue piece?

Well I’ve been trying a lot of different things here, but the last one just got this working for me.
I upgraded from Ubuntu Focal Fossa - 20.04.4 to Jammy Jellyfish 22.04.1

Not sure if that just updated something else along the way or what, but I just re-tested and without changing any other rules / triggers / etc, it worked.

I do run Openhab on an Intel NUC by itself, so not the more typical Pi deployment.

I’ll revert a few things I’ve tested with along the way and confirm I’m still good. Things like moving back to my Openhab family account (I tested with my normal Amazon log in), back to my text file items configs and such. I’ll report back if it seems something else was contributing too.