[RELEASE] Echo Speaks v3 + Actions

Can't seem to get this to work properly. I have two Echo Speaks actions defined. One for when HSM is set to Amed Away and one for when it is set to Armed Home. Each action has a different set of contact sensors as triggers. And each has a condition set to lock the action to when HSM is actually being used (Armed Away/Home vs disarmed). Except the conditions seem to be ignored. Even when HSM is disarmed, every time a contact that is listed under triggers is opened my echo go off.

Please please please :pray: :grimacing:

2 Likes

I'm having a similar problem with WHA groups though I'm trying to use them for music. I also can only seem to send volume commands successfully.

@gary1
Sorry, I havenā€™t tried this yet, but the docs say WHA devices are supported for announcements. It doesnā€™t list ā€œspeakā€ as being supported. Are you selecting speak, or announcement?

I'm actually not using either, I'm trying to play music to grouped Echo devices. Is that not supported?

I can't find the info for WHA devices. Maybe @tonesto7 can answer that.

It does indeed do announcements, but only ā€œAnnouncement Allā€ from what I can see...

I know there are restrictions (out of @tonesto7 's control ) on what the WHA devices can do. I just can't remember what they are, and can't seem to find the info in this small thread. :wink:
Just came across this from 2019: "unfortunately amazon doesnā€™t support tts to groups". That's all I found.

1 Like

I've gotten past the multi-room/grouped echo devices music issue I was having after reading this post over on the SharpTools forum.

Automate music on multiple echos through Echo Speaks and Rule Engine

2 Likes

@tonesto7 Is this error something to be worried about?

Error making Call to Alexa message gateway: {"header":{"namespace":"System","name":"Exception","messageId":"ASRLS_6770139d-3ca3-4fb3-a2bf-330beeaf0683_1598051662029.0..ASRLS_6770139d-3ca3-4fb3-a2bf-330beeaf0683_1598051662029"},"payload":{"code":"INVALID_REQUEST_EXCEPTION","description":"Cannot read the request payload as: Cannot construct instance of com.amazon.iota.driver.v3.StateReportProperty, problem: arg3 must not be null\n at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: com.amazon.iota.driver.directive.v3.MessageEnvelope$V3Builder["context"]->com.amazon.iota.driver.directive.v3.Context["properties"]->com.amazon.iota.driver.v3.StateReportPropertyArray[1])"}}

From a security perspective, this looks (at minimum) a little shady...

Why are you proxying the authentication to Amazon via your own site, herokuapp.com? Doing so obviously gives you access to the user's account email and password.

Did I miss something? Am I reading this out of context or being accused of being shady?

Heroku is stateless meaning it doesn't remember anything after the server goes to sleep. It also doesn't store the username/password anywhere.

2 Likes

Also it is not your site right, and you offer a way to host the server locally?

1 Like

Nope it's not my site :slight_smile:

The cloud offering there for ease of deployment. but yes it's available to install locally

2 Likes

If you look online, a lot of web bots, for twitch and discord for example, use heroku or VPS as a server host instead of hosting the bot on your own.

1 Like

I don't know what Heroku is or who it belongs to but asking users to provide their Amazon credentials to any other website is not appropriate - and testimonials about statelessness and not storing usernames or passwords don't keep accounts from getting hijacked.

So, am I able to complete the Echo Speaks installation using the 'Manual Cookie Entry' in-lieu of the faux Amazon Login?

How are you complaining and calling something not appropriate and shady when you have no idea what it is. Maybe you should actually read the original post before making baseless statements. As someone else pointed out, you can deploy this locally. The guy put alot of personal time and effort to provide something very useful for the community. If you don't like it, feel free to move on.

11 Likes

Then it's up to you to manually refresh the cookie whenever it expires. Blame Amazon, they're the ones who won't make an Alexa TTS API public.

You may not like the way it works, but it's not shady. You're running it on YOUR OWN cloud server.

7 Likes

Settle down. I'm not complaining or trying to be critical of the work anyone did. I was simply trying to point out that providing your credentials to any third party is ripe for compromise. If you disagree, PM me your Amazon username and password. Daddy needs a gimbal.

My original question, why is Amazon authentication being proxied through herokuapp.com, has been answered (at a high level): because Amazon doesn't expose their Alexa TTS API. Is there detailed documentation that explains how the proxied authentication to Amazon is done? If this function is part of the source code, can someone please point me to the specific file?

Also, a graphical depiction of the components of this application and how they interact would be helpful.

Thx

All his code for echo speaks is here ---> GitHub - tonesto7/echo-speaks-server

No need to attempt shaiming @tonesto7 in this thread.

4 Likes