[RELEASE] Echo Speaks v3 + Actions

Glad it's working now... This was all thanks to the genius @tony.fleisher basically pointing at the issue.

Well! This is on my to do list. Does it work well with all the amazon devices, or is this something that occasionally needs to be updated because amazon changes something? Looking for a set it and forget it. Am I barking up the wrong tree?

Cheers for the replies!

Well for the most part it should just work, but ES is playing middle man between amazon and hubitat.

It's also using an undocumented API and authentication mechanism that at any point can be closed by amazon.

2 Likes

NEW RELEASE

Main App (v3.6.4.3)

  • UPDATED: Bumped minimum app versions to latest release.

Action App (v3.6.4.1)

  • FIXED: HSM Triggers and Conditions under Hubitat.

Zone App (v3.6.4.1)

  • FIXED: HSM Triggers and Conditions under Hubitat.

1 Like

Hi @tonesto7 after the latest update i'm getting this every 5 minutes?

app:502020-10-14 10:08:49.848 am info EchoApp (v3.6.4.3) | wakeupServer Completed... | Process Time: (233ms) | Source: (runCookieRefresh)

app:502020-10-14 10:03:49.559 am info EchoApp (v3.6.4.3) | wakeupServer Completed... | Process Time: (206ms) | Source: (runCookieRefresh)

app:502020-10-14 09:58:49.512 am info EchoApp (v3.6.4.3) | wakeupServer Completed... | Process Time: (145ms) | Source: (runCookieRefresh)

app:502020-10-14 09:53:49.545 am info EchoApp (v3.6.4.3) | wakeupServer Completed... | Process Time: (173ms) | Source: (runCookieRefresh)

This happens when the heroku goes into a deep sleep. Goto Login Settings > view heroku settings page to wake it.

Hopefully a really easy question for someone, Having just moved from ST where this particular action was working, I cannot for the life of me remember how I did it!

I've got an action where if a Smart Plug power <5W then echo speaks tells me the tumbledryer has finished. The issue I have, is that it goes off on the slightest blip of power (repeatedly). I fixed this on ST (cannot remember how) - I think what I need is a condition that it has to have been <5W for 5 minutes before it triggers, for example, but I cannot find a way of doing this! Any clues or other methods to achieve the same thing?

Thanks,

Jason.

You could do that with Webcore or RM. I just so happen to use webcore for that very thing, but it would be a simple rule in RM as well.

I have never used the Echo speaks actions so I can't help you there.

Hi there. New user here and my goal is to have Hubitat voice/tts announcements come through the various echo flex and dot devices around the house. I believe Echo Speaks will help me with that.

The problem I am having is it is not discovering any devices. I have all apps and device code installed, authenticated alexa server login and can try to 'discover' but it says no devices found.

Please advise and thank you.

Reference info:

Device List

image

ES Versions and Issue Report

image

Alexa Login Service

image

Hey Jason,

Here is how I do it, others might have a more elegant/simpler way but this works.... for me

Rick

1 Like

Really wanted to get this to run locally in Docker on my Synology NAS, so I spent a bit of time on it last night.. and failed. Just needed a good night's sleep; gave it another 15 minutes and it works! I'm sharing in case anyone's interested.

The main issue I ran into was that getIPAddress() returns the IP of the container, which in my environment is not available from Hubitat. So I kludge'd it to return the IP of the host (and I'm not talking about the IP exposed by /sbin/ip route, which is still a docker land IP). The correct IP is actually the hostUrl. @tonesto7 maybe a "Docker?" checkbox in the Required Settings could set that as the IP instead of trying to get it from os.networkInterfaces? Or just add a field?

ssh admin@synology
(I have all my docker configs and volumes on volume2)
cd /volume2/docker
git clone GitHub - tonesto7/echo-speaks-server
vi echo-speaks-server/index.js

# ugly temporary hardcoded kludge
look for function getIPAddress()
on the first line: return 'your IP';

cd ~
mkdir echo-speaks-server
cd echo-speaks-server
vi docker-compose.yml

version: "2"
services:
  node:
    container_name: node-echo-speaks
    restart: on-failure
    image: "node:alpine"
    working_dir: /home/node/app
    environment:
      - NODE_ENV=production
    volumes:
      - /volume2/docker/node-echo-speaks/:/home/node/app
    ports:
      - "8091:8091"
      - "9222:9222"
      - "9229:9229"
    command: >
      sh -c "npm install &&
             npm start"

sudo docker-compose up -d

The container should now be running. Follow the usual installation instructions for Echo Speaks.

Really happy to finally have TTS after not being able to get it on my plethora of Google products!

2 Likes

Good stuff @molepage. Thanks for sharing. I don't have a Synology yet but am interesting in getting one. This would be something I'd want to do to once inhand. :+1:

Quick info update:
I have pretty much all the detection options turned on and it's still not discovering any devices. Any suggestions are welcome as I'd like to get Echo Speaks working here.

Thanks all

This only happens when the account is a family or shared account.

Hi @tonesto7. I do not know who you were replying to...? If it was me, is there a problem using ES with a shared/family account?

Great, thanks, I'll adjust and give it a whirl!

I’m having trouble getting the server setup completed. On the Heroku site, I successfully deployed the code, and then go to Open App. I can see the Echo Speaks Service page, and I click the GOTO LOGIN PAGE button. Then I see a page which says “There’s nothing here yet”, a generic Heroku page.
Anyone know how to resolve this?

Yes - look through the steps carefully - You almost certainly have not copied the code in step 2 of the server install and put into into the first field (app name) in the next step, as per the instructions.

I finally got it working. I was already pretty familiar with the steps, I used this since it was first available on ST. I tried it a 2 more times on my iPhone using Safari, then tried it in Chrome also on my phone but kept getting the same result. Then I tried the same steps from my laptop and it worked right away. I’m sure others have done this from their phones (including me in the past), so must be something I’m doing or maybe some setting. If I need to redeploy the server, I’ll play around to see if I can figure it out.
Thanks for the help!

1 Like

I've found that my laptop is a lot easier with this process, although I've done it a couple of times on my iPad. Glad you got it working.

1 Like