[RELEASE] Echo Speaks V4

FWIW my QNAP NAS has 2 Ethernet ports that you can separate on different LANs. Then within docker you can assign to a specific network port. This may vary but this is what I did.

5 Likes

I’m running a HP MicroServer with Open Media Vault and dual nic's, so this isn’t an issue for me.

1 Like

Not as fun but there are still Pi 400s to be had.

So, again, forgive my ignorance as a noob, but will this work as a container to “host” Echo Speaks? Other than hooking up a monitor (in order to facilitate loading up the software in order to make this work), is there anything else that is needed to get this to work? Other than the form factor (size of keyboard and lack of ability to attach a cooling fan, etc), seems to be a good price given even if you were able to get a hold of a RPi4, you’d still need to get a case, power supply, cables, keyboard for input, etc., etc. Any thoughts on this? Input from experienced user would be greatly appreciated.

I don't personally have one, but have been entertaining picking one up with the supply issues for the RPi4. You can use it just as you would using a RPi like instructed above. The CPU is the same but runs a higher base clock. No need for a fan:

I would not have a problem if I could get a gazillion Alexa routines. The reason I went with Echo Speaks is that I kept running up against the 200 Routine limit in Alexa. With a Routine needed for each phrase, I quickly ran up against the limit (not to mention the number of Routines and virtual switches needed to get my Dashboards to stay synchronized with Alexa states). The limitation for me has been on the Alexa side, Hubitat did not have any problems (Echo Speaks allowed me to “transfer” announcement functions from Alexa to HE, freeing up many Alexa Routines. The Alexa API seemed to let me go beyond the limit if the announcements were coming from ES.

Although Heroku states that plans start at $7/month, in another thread, someone who inquired what it would take to run their ES stated that Heroku stated it would take $14/month. $168 a year is a bit more than what I am willing to pay, given I can still go back to the pre-ES way that I had making HE announcements on Alexa (albeit, very pared down).

For this reason, I am relying on help from this community and am planning to dip my toes into trying to get Echo Speaks to work from a local container (RPi in my use case). Hopefully I will not drown in the rabbit hole, LOL. Any and all help is greatly appreciated. I am awaiting @tonesto7 ’s and others’ work on this!

Likewise - perhaps @tonesto7 could put up a donation link for us to chip in some funds to help cover his time?

1 Like

I am running the echo-speaks server via docker-compose on a pi zero W running bullseye. I had to pull Node from the arm32v6/node:lts-alpine3.16 repo in order to get things working properly and it took forever to install Rust/Cargo. But as mentioned earlier in this thread the workload is minimal once everything is up and running.
I haven't confirmed that I have automatic restart upon reboot working yet.

Thank you @casazco and welcome to the community! Nice overall description of what you are running. At some point, I am hoping that someone can document a detailed, step-by-step cookbook style set of instructions on how to physically do this. Ideally, starting with how to set up the RPi, recommended OS, links for the recommended container and any pre-reqs (e.g., docker-compose needing docker preloaded, need for Rust/Cargo programming language knowledge, etc., etc.). Am I correct in assuming that you wrote a custom program in Rust to get things working? Anyway, hopefully at some point all this will be documented by the community in a manner that can be easily followed and duplicated. Thanks for taking the time to describe your setup. Hope you run into any specific problems in your implementation of ES locally that have not yet been worked out, or is ES working smoothly for you running from your local container?

There is one right in the ES app.

3 Likes

Ah cool. :+1:

My contribution is on the way …
Done!

1 Like

I'm having issues configuring echo speaks to use a local server. The server itself reports it's working well, and the logs look fine. But when I go through the steps in echo speaks to configure it I follow the instructions and get the following on screen.


should I be able to configure the IP somewhere?
currently, I'm just testing this out as I rely on ES a lot.
so this is just installed on my mac and I haven't removed the old ES app.
has anybody else run into this?

--EDIT------
Moving the server into docker seems to get a little further but I think its picking up an inaccessible IP.

From @user2305 instructions above.

After you copy the call back URL from the Echo Speaks page go to

http://RPI_IP_ADDRESS:8091 . Insert the pasted string. Then go back to echo speaks and try to login

This is the step in the process that I completely missed until a lot of searching. :frowning: I didn't see that documented in the install instructions.

Hello @moh . The process was surprisingly frictionless but took some time. I did not write any custom code. My RPi was already up and running on bullseye (5.15.56+ #1575 Fri Jul 22 20:26:40 BST 2022 armv6l GNU/Linux).

The first thing I did was clone @tony.fleisher 's repository and switch to the "docker-enablement" branch.

The biggest hurdle was finding a version of node.js that would run on my RPi (look here: Node for ARMv6 and allow Rust/Cargo to install properly (I followed the guide here: Rust/Cargo for RPi).

I followed the guide located here (docker-compose on RPi ) to install docker-compose. It took a long time to complete some of the installation steps on my RPi but nothing crashed (so far).

The readme in the docker folder of @tony.fleisher 's repo (docker repo) explains how to make sure your host's IP address is passed to the container.

Lastly, I reviewed the thread on this site about replacing Heroku with a local server (link to thread) and followed the guidance for re-installing Echo Speaks on my Hubitat hub and pointing it to the local server instead of Heroku.

4 Likes

Thanks @casazco for putting this together. Much appreciated! A great guide to how to get started with this.

That's just paranoia. Assuming you use your NAS to serve files to your connected TV or TV-connected device, you're already punching a hole in any firewall to allow that to happen.

Truthfully, I'd trust most IoT devices more than mobile devices and also most computers that are used by family members.

1 Like

I have a linux server running a docker container already. I just need the docker image for echo speaks

2 Likes

It's here: echo-speaks-server/docker at docker-enablement · TonyFleisher/echo-speaks-server · GitHub

1 Like