For those unfamiliar, If This Then That (IFTTT) is a service that lets you hook two internet services together, with the first acting as a trigger and the second as a destination. For instance, you can say IF a new Instagram photo is posted in a certain area, THEN save it to my dropbox folder.
I've written an app that (with some work) hooks a Sonos system to IFTTT. So you can do things like IF someone tweets with a hashtag, THEN speak the tweet through my Sonos, or IF I arrive home, THEN play a specific Sonos Favorite.
It's pretty cool to ponder the neat things you can do with the scores of channels that IFTTT offers.
Check it out, and let me know if you have any questions. And certainly let me know how you end up using it.
If This Then Sonos
Page 1 / 1
Anyone that is still interested in this, I made it super simple for anyone to get IFTTT support without having to be a hacker. See https://en.community.sonos.com/advanced-setups-229000/easiest-way-to-get-robust-ifttt-support-6790436
Hm... I have this setup in IFTTT, I'm using HTTPS with let's encrypt and have authentication on (through nginx, but that's irrelevant).
Maker channel, Make a web request: https://username:password@dynamic.host.name/preset/discover
Method: GET
Content Type: application/json
Body: (empty, not necessary)
However, they do occasionally fail for me, according to the IFTTT logs, it says "There was a problem with the Amazon Alexa service"
Maker channel, Make a web request: https://username:password@dynamic.host.name/preset/discover
Method: GET
Content Type: application/json
Body: (empty, not necessary)
However, they do occasionally fail for me, according to the IFTTT logs, it says "There was a problem with the Amazon Alexa service"
I did this from work today and the command works externally. I think it must be something in my IFTTT setup.
Hello Jishi,
I am running your API and have a dynamic dns service with all the port forwarding and all configured. I am trying to integrate to Google Home, instead of Alexa, but I cannot get the IFTTT commands to work. The http api server is running and I can control Sonos locally using commands, but cannot via IFTTT. Any recommendations that you can make for me?
Start by verifying that your public endpoint is actually up and running (meaning, test a request against your dynamic DNS name, and some request that you expect to work). You might need to do this over a cellular network or somewhere outside of your LAN, since your router might not respond to traffic for your external IP from within your network.
I run my own http api, use a dynamic dns service and have mapped a hostnamn with a ssl certificate via let's encrypt for extra security (it's not required).
Primarily I'm using it to apply presets via Amazon echo, which means I can say "Alexa, trigger music" to start playback and "Alexa, trigger bedtime" to pause all players. But any trigger supported by ifttt can be used.
If you skip ssl it is much simpler, but you probably should use some sort of authentication to avoid abuse if someone finds your endpoint. Dynamic dns is also recommended unless you rarely change IP. However, it is not a plug and play solution, never will be. If you don't understand port forwarding, and basic routing, don't try it.
Given that Sonos already introduced cloud control of the sonos system, I however think that ifttt will come eventually.
Hello Jishi,
I am running your API and have a dynamic dns service with all the port forwarding and all configured. I am trying to integrate to Google Home, instead of Alexa, but I cannot get the IFTTT commands to work. The http api server is running and I can control Sonos locally using commands, but cannot via IFTTT. Any recommendations that you can make for me?
Given that Sonos already introduced cloud control of the sonos system, I however think that ifttt will come eventually.
Has Sonos introduced cloud control? I was not aware of this and would be very interested to learn more about it.
Not generally available for you as a user, but the Spotify Direct solution is based on cloud control. That's why you can start playing via Spotify Direct, and continue to control it even though you leave your home network (in the Spotify app). It is also evident in the status pages of the players, where it list info about cloud connections (basically, websockets) and what control capabilities it have.
Given that Sonos already introduced cloud control of the sonos system, I however think that ifttt will come eventually.
Has Sonos introduced cloud control? I was not aware of this and would be very interested to learn more about it.
Thanks jishi for your response. That all sounds great but a little above my experience level I'm afraid. If I can't work it out I guess I'll have to wait for Sonos to catch up.
Thanks
Thanks
I'm using ifttt with my sonos. Since this post, they've introduced the maker channel which allows you to invoke arbitrary http calls. By having an exposed computer at home, with the appropriate software, you can now trigger actions on Sonos.
I run my own http api, use a dynamic dns service and have mapped a hostnamn with a ssl certificate via let's encrypt for extra security (it's not required).
Primarily I'm using it to apply presets via Amazon echo, which means I can say "Alexa, trigger music" to start playback and "Alexa, trigger bedtime" to pause all players. But any trigger supported by ifttt can be used.
If you skip ssl it is much simpler, but you probably should use some sort of authentication to avoid abuse if someone finds your endpoint. Dynamic dns is also recommended unless you rarely change IP. However, it is not a plug and play solution, never will be. If you don't understand port forwarding, and basic routing, don't try it.
Given that Sonos already introduced cloud control of the sonos system, I however think that ifttt will come eventually.
I run my own http api, use a dynamic dns service and have mapped a hostnamn with a ssl certificate via let's encrypt for extra security (it's not required).
Primarily I'm using it to apply presets via Amazon echo, which means I can say "Alexa, trigger music" to start playback and "Alexa, trigger bedtime" to pause all players. But any trigger supported by ifttt can be used.
If you skip ssl it is much simpler, but you probably should use some sort of authentication to avoid abuse if someone finds your endpoint. Dynamic dns is also recommended unless you rarely change IP. However, it is not a plug and play solution, never will be. If you don't understand port forwarding, and basic routing, don't try it.
Given that Sonos already introduced cloud control of the sonos system, I however think that ifttt will come eventually.
The link to the website is dead. Has anyone achieved this solution and can provide details
I'd pay good money for a little device e.g. From a Pii or something that was a bit more plug and play for me to add IFTTT to Sonos. I only have the play 1 but I'm not buying anymore Sonos kit if I can't get IFTTT to work.
Is there a Sonos alternative that supports IFTTT?
Is there a Sonos alternative that supports IFTTT?
I'll be glad to help, if you can give me specifics of where things are going wrong. In order to spare everyone the long thread, please contact me via the "Contact" page of my site. Thanks!
Hi. I've been working through your set up to try and integrate IFTTT LCP and my Sonos together, but can't seem to get the hang of it. Is there a way to dummy explain it to help me out?
I know you were just kidding. I was kidding back. I have found a good use for the LCP to IFTTT to Sonos path though. I've got an LCP action that accepts text input, which is then sent to a Sonos to be spoken. I can do this from anywhere in the world, not just in my house. With this, I can remotely yell at my teenager to get out of bed!
I like a lot of the examples you give. So many great ideas out there. I know Sonos is thinking about these too.
I didn't mean to sound negative, sorry if I gave that impression :)
IFTTT is a very cool service, and that nest stuff sounds awesome.
It was more the triple round trip through 2 external services that I was skeptical about. Your SMS stuff and other cool interactions that you could create from twitter or whatever using IFTTT is really cool, and opens up a lot of new possibilities, I am sure.
Like song requests during a party through a facebook group/event, autopopulate tracks from last.fm, start playing soundcloud likes (or a new upload from a followed user) directly on your sonos (they expose direct mp3 links but requires a key from your session it seems)
IFTTT is a very cool service, and that nest stuff sounds awesome.
It was more the triple round trip through 2 external services that I was skeptical about. Your SMS stuff and other cool interactions that you could create from twitter or whatever using IFTTT is really cool, and opens up a lot of new possibilities, I am sure.
Like song requests during a party through a facebook group/event, autopopulate tracks from last.fm, start playing soundcloud likes (or a new upload from a followed user) directly on your sonos (they expose direct mp3 links but requires a key from your session it seems)
OK, Jishi, you'd have to admit that THIS would be useful:
Using today's new Nest Protect Smoke Detector IFTTT channel, you could set up a recipe to announce "Carbon Monoxide detected" on every speaker in the house. That would be pretty cool (except for the whole mortal danger from carbon monoxide part).
Using today's new Nest Protect Smoke Detector IFTTT channel, you could set up a recipe to announce "Carbon Monoxide detected" on every speaker in the house. That would be pretty cool (except for the whole mortal danger from carbon monoxide part).
A more direct route would be to use LCP to call your sonos-api rest endpoint running on the pi. This was more a proof of concept. You could use Launch Center's extensible actions to do bigger things than simply playing a favorite.
The chrome support was the only plausible http request support that I could find according to docs, although I would have expected LCP to have native webhook support. Obviously it has.
I have been experimenting with on{x} on android to achieve similar features. Very handy. For instance, I have the following rule:
When connecting to home wifi:
pause spotify playback on mobile
regroup all players and set predefined volumes
start playback on Sonos instead
Instead of just using the Google chrome support to open url and return to a http action directly on your raspberry pi... :)
Of course you're right, though I'm not sure what you mean by "using Google chrome support to open url".
A more direct route would be to use LCP to call your sonos-api rest endpoint running on the pi. This was more a proof of concept. You could use Launch Center's extensible actions to do bigger things than simply playing a favorite.
Launch Center Pro to Sonos, via IFTTT
Seems like a pretty big roundtrip to have Launch Center invoke a IFTTT command, which invokes an XMLRPC proxy to talk to your raspberry pi.
Instead of just using the Google chrome support to open url and return to a http action directly on your raspberry pi... 🙂
One last note on this hack. Launch Center Pro, a neat action and app launcher for iOS, recently received an update that features IFTTT integration. Naturally, I made actions that start up various Favorites on various Zones. Pretty handy.
Launch Center Pro to Sonos, via IFTTT
Launch Center Pro to Sonos, via IFTTT
Messing around with recipes, I hooked up my Fitbit scale to my Sonos, and had my weight spoken throughout the house whenever I stepped off the scale.
Quickly disconnected that recipe.
Quickly disconnected that recipe.
Cool! Thanks.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.