If you use the Echo Speaks smart application in Hubitat Elevation to drive your Alexa devices for customized speech, be aware that the Heroku cloud application server will begin charging per month for their service on November 28th. Echo Speaks uses a Heroku routine in order to maintain a valid login cookie to the Alexa service.
Tony Fleisher, the author of Echo Speaks has developed a local Echo Speaks authorization server that removes this need for Heroku and runs on your local network.
There are two ways to install this local authorization server. Both methods require a Linux server that can be a Raspberry Pi, a Virtual Machine, or a LXC/LXD container.
The first way to install the container is in Docker.
To install Docker and docker-compose, if it is not installed:
curl -sSL https://get.docker.com | sh
sudo apt install docker-compose
Then, download and unzip the project:
sudo apt install unzip
wget https://github.com/TonyFleisher/echo-speaks-server/archive/refs/heads/docker-enablement.zip
unzip docker-enablement.zip
Move into the docker folder for the project:
cd echo-speaks-server-docker-enablement/docker
Become the root user:
sudo su
Execute the command to build the container.
docker-compose build
If you get the following error:
The Compose file './docker-compose.yaml' is invalid because:
Unsupported config option for services: 'echo-speaks-server'
then you need to edit the docker-compose.yaml file:
nano docker-compose.yaml
Add the following line to the beginning of the file before the “services” line and horizontally aligned with it:
version: "3"
Exit the editor with CTRL X, Type “Y” and hit enter.
Then repeat the:
docker-compose build
To start the project, find out the address of your docker host:
ip a
Start the Echo speaks server using the address of your docker server from above (my address is 172.16.1.78):
IPADDRESS=172.16.1.78 ./start.sh
The startup operation should look like this:
Test to see if it is running, visit the Web page (with your address at port 8091)
In my case: http://172.16.1.78:8091
Go back to the Echo-speaks app in the Hubitat and clear your server setup. Then initiate the setup being sure to turn off the “Deploy to Heroku” switch. That’s it!
ALTERNATE INSTALLATION OF ECHO SPEAKS AUTHORIZATION SERVER WITHOUT DOCKER
On your target server, install the dependencies:
sudo apt install nodejs
sudo apt install npm
Now get and install the Echo Speaks Server application.
npm i https://github.com/tonesto7/echo-speaks-server
sudo npm install -g pm2
cd node_modules/echo-speaks-server
sudo pm2 start index.js
sudo pm2 list
sudo pm2 save
sudo pm2 startup
sudo pm2 save
Test to see that it is running by visiting the Web page (with the address of your server at port 8091)
In my case: http://172.16.1.78:8091
That’s it!