i found a much easyer way to control volumio with alexa.
No need for plugins, extra hardware and other hacks.
Basicly i use the IFTTT and the rest api from volumio.
First if you login to alexa.amazon.com an you get send to .co.uk go to amazon.com and set region to US with some us address and postalcode (ny postal code 10001 will work fine). if you now login to alexa.amazon.com you should see the .com url.
For some reason .co.uk is not working on ifttt, and it’ll keep telling your command it not in iftt.
portforward port 80 in your router to the interal ip of your volumio (we’ll get to security later on).
so if you surf on an external computer to yourip/ you should see the Volumio interface.
(make sure not to map from a different port e.g. yourip:8000 , Webhook does not seem to like adding ports to the url)
Create an IFTTT account; create an applet (you now have to allow IFTTT into amazon alexa, a pop up shows up)
IF: search for alexa and tell it to use the e.g. phrase “music on”
Then: select webhook and fill in the portforwarded url of volumio eg. http://yourip/api/v1/commands/?cmd=play
Another one could be:
IF: Alexa phrase " music volume up"
Then: webhook: http://yourip/api/v1/commands/?cmd=volume&volume=plus
You can find all api commands here: volumio.github.io/docs/API/REST_API.html
i’ve made commands for: play, stop, next, volume up, volume down, volume 20, volume 40 etc.
so in case of our alexa 1 phrase is 1 command (ifttt doesn;t mind
in the google home you’d be able to send variables along, alexa ifttt can’t do that (yet)
So…just yell" ALEXA TRIGGER VOLUME UP" works like a charm!
for security there can be 2 things done. I logged the webhook get ip numbers vor a while and added that to the allowed source ip in my firewall.
what i would like to do is add a password in the webservice of volumio so i can send a user & password in the string: e.g. user:password@http://yourip/api … /?cmd=play.
I’ll have to dive into that later on (anyone ever set a password for non local ip’s on volumio like Domoticz has??? )
e.g something like:
AuthName “Restricted Access”
require user [username]
deny from all
allow from 192.168.1.
tip: For “yourip” you could ofcouse better use an dynamic dns like volumio.no-ip.biz if you are familiar with that.