Release Candidate and Support: Amazon Echo Control Binding

I’m almost have the same problem. I’ve 2 echo at home both of them work with TTS or startCommand but no sound at all when i try to trigger an alarm. (by rules, by paper ui control, or sitemap). I’m using 2.5.2

It is still not working, but I haven’t tried to fix it because I am using the announcement channel instead.

Hi,
i have some problems to use announcement with my echoshow. Here my thing configuration:

Thing echoshow echoKitchen "Alexa" @ "Kueche" [serialNumber="G000XXXXXXXXXXXX"]

and my item:

String Echo_Kitchen_Announcement "Announcement" (Kueche) {channel="amazonechocontrol:echo:account1:echoKitchen:announcement"}

If i call:

Echo_Kitchen_Announcement 'door opened'

nothing happends, if i change the thing from echoshow to echo:

Thing **echo** echoKitchen "Alexa" @ "Kueche" [serialNumber="G000XXXXXXXXXXXX"]

everthing works fine. Do you know this problem?

Regards
Ralph

Have you activated the announcement feature at the echoshow device via alexa app?

Yes i have activated the announcement feature.

Hi @michi I am brand new to OpenHab and have got things setup and the account is showing my devices etc. One thing I am unsure of is if and how I can send a command to alexa in general from a rule. What I am trying to do is when i start playing a movie on Plex it sends a command to Alexa to turn off the living room lights then when the movie is paused or stopped, turn on the lights. I was attempting to use the SendMessage channel on the account but nothing happens when the command fires. Is there an example of how I can achieve the above?

Question / Answer Rule?

Has anybody figured out how to TTS a question then have Alexa wait for the response from you in order to interact with your rules based on your response?

Best, Jay

Hi,
I´m using the binding for 3 echos. Is there way to find out, which echos receives the call?
I need this information to give an answer back only at this device (echo).

Thanks in advance
Benno

Look at lastVoiceCommand.

Hello H102,
perfect, thank you very much.
I don’t know how I missed it.
Works perfectly for me!

1 Like

I have some difficulties with lastVoiceCommand since yesterday. The channel does not get any updates. Re-configured the items and re-started OH made it work for an hour or so. Same problems this morning. Anyone else?

btw: i am using alexa.amazon.de, OH 2.5.4 with the respective binding version.

EDIT: not sure what’s going on. Works again after 2 reboots … let’s hope for the best

Hi All

Where can I find the available choices for the System Alerts? I want a siren like alert if theres one available

Id like to use these ones

https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html

Thanks

Further, I am constantly getting this error on the 2.4 stable, with latest snapshot as per the above post:

22:02:27.201 [WARN ] [ntrol.internal.handler.AccountHandler] - handling of websockets fails: {}
org.openhab.binding.amazonechocontrol.internal.HttpException: GET url 'https://alexa.amazon.com.au/api/activities?startTime=1588507346810&size=10&offset=1' failed: Bad Request
        at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:587) ~[195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequestAndReturnString(Connection.java:445) ~[195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequestAndReturnString(Connection.java:440) ~[195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.openhab.binding.amazonechocontrol.internal.Connection.getActivities(Connection.java:868) ~[195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.openhab.binding.amazonechocontrol.internal.handler.AccountHandler.handlePushActivity(AccountHandler.java:750) ~[195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.openhab.binding.amazonechocontrol.internal.handler.AccountHandler.handleWebsocketCommand(AccountHandler.java:695) ~[195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.openhab.binding.amazonechocontrol.internal.handler.AccountHandler.webSocketCommandReceived(AccountHandler.java:683) [195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.openhab.binding.amazonechocontrol.internal.WebSocketConnection$Listener.onWebSocketBinary(WebSocketConnection.java:406) [195:org.openhab.binding.amazonechocontrol:2.5.0.201904031156]
        at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onBinaryMessage(JettyListenerEventDriver.java:82) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.message.SimpleBinaryMessage.messageComplete(SimpleBinaryMessage.java:68) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onBinaryFrame(JettyListenerEventDriver.java:68) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:157) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:476) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:245) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:560) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:391) [92:org.eclipse.jetty.websocket.common:9.4.11.v20180605]
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) [75:org.eclipse.jetty.io:9.4.11.v20180605]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) [75:org.eclipse.jetty.io:9.4.11.v20180605]
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:291) [75:org.eclipse.jetty.io:9.4.11.v20180605]
        at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:151) [75:org.eclipse.jetty.io:9.4.11.v20180605]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) [75:org.eclipse.jetty.io:9.4.11.v20180605]
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) [75:org.eclipse.jetty.io:9.4.11.v20180605]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) [87:org.eclipse.jetty.util:9.4.11.v20180605]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) [87:org.eclipse.jetty.util:9.4.11.v20180605]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) [87:org.eclipse.jetty.util:9.4.11.v20180605]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) [87:org.eclipse.jetty.util:9.4.11.v20180605]
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) [87:org.eclipse.jetty.util:9.4.11.v20180605]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) [87:org.eclipse.jetty.util:9.4.11.v20180605]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) [87:org.eclipse.jetty.util:9.4.11.v20180605]
        at java.lang.Thread.run(Thread.java:748) [?:?]

I get the same warning.
Greetings,
Markus

Yes, I have the same issue! Changed nothing and it worked fine the last couple month on my echo dot and sonos one gen1 and gen2. Since last weekened, I’m not able to let alexa speak through my sonos devices. Any idea how to fix?

openHAB 2.5.1-2

Same Issue for me:

  [WARN ] [trol.internal.handler.AccountHandler] - handling of websockets fails

org.openhab.binding.amazonechocontrol.internal.HttpException: GET url 'https://alexa.amazon.it/api/activities?startTime=1588949143999&size=10&offset=1' failed: Bad Request

	at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequest(Connection.java:644) ~[bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequestAndReturnString(Connection.java:499) ~[bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.Connection.makeRequestAndReturnString(Connection.java:494) ~[bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.Connection.getActivities(Connection.java:938) ~[bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.handler.AccountHandler.handlePushActivity(AccountHandler.java:775) ~[bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.handler.AccountHandler.handleWebsocketCommand(AccountHandler.java:720) ~[bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.handler.AccountHandler.webSocketCommandReceived(AccountHandler.java:708) [bundleFile:?]

	at org.openhab.binding.amazonechocontrol.internal.WebSocketConnection$Listener.onWebSocketBinary(WebSocketConnection.java:404) [bundleFile:?]

	at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onBinaryMessage(JettyListenerEventDriver.java:103) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.message.SimpleBinaryMessage.messageComplete(SimpleBinaryMessage.java:68) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:65) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onBinaryFrame(JettyListenerEventDriver.java:74) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:145) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:321) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:202) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:226) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.Parser.parseSingleFrame(Parser.java:262) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:582) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:441) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:428) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]

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

I checked my account info at http://openhab:8080/amazonechocontrol/ and I found two accounts. Both are reffering to the same account just one account name is German and one English (“Amazon Konto” and “Amazon Account”). They both also show up in paper ui but items linked to them are different. No clue how this happened and if it could cause problems.
My error log gets spammed for some time with:

[WARN ] [trol.internal.handler.AccountHandler] - handling of websockets fails
org.openhab.binding.amazonechocontrol.internal.HttpException: GET url …

Could this be related to the two accounts and what would be the best way to get rid of one of the accounts? Just delete one Account Thing?

NoTechi

Hi many thanks for this binding I have several Echo Dots and it works really well. I have just installed an Echo Link and managed to set it up manually as a Thing in PaperUI as an Echo device using the serial number listed on my Amazon Account local web page http://openhab:8080/amazonechocontrol/xxxxxxxx. However the Thing channels have IDs which have a different Alexa Echo Control Bridge ID (x) than my Echo Dots and don’t have the device serial number (y) in the string i.e. amazonechocontrol:echo:xxxxxxxx:yyyyyyyyyyyyyyyy:player. Is this because Echo Link isn’t supported?

Many thanks in advance!

Update: I just setup echo items for the Echo Link using just the Control Bridge ID, e.g. for volume {channel=“amazonechocontrol:echo:xxxxxxxx:volume”} as per the thing channels, volume, playAlarmSound, startCommand, startRoutine, notificationVolume, textToSpeechVolume. However I would like to get player to work so I can control the device.

Has anyone found a solution to this error, seems related to the playAlarmSound/Volume channels for the binding.

Request to url 'https://alexa.amazon.com.au/api/equalizer/G090U50783942CHH/A32DOYMUN6DTXA' fails with unkown error
java.net.UnknownHostException: alexa.amazon.com.au
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[?:?]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:?]
        at java.net.Socket.connect(Socket.java:607) ~[?:?]
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666) ~[?:?]
        at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173) ~[?:?]
        at sun.net.NetworkClient.doConnect(NetworkClient.java:180) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[?:?]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) ~[?:?]
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1046) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1044) ~[?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:784) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1043) ~[?:?]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.access$200(HttpURLConnection.java:92) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1490) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1488) ~[?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:784) ~[?:?]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1487) ~[?:?]
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) ~[?:?]

Is this abandonware?

1 Like