So, the Internet of Things is a thing that’s mostly just a security nightmare, but there do exist some services that I find actually helpful. For instance, I put an Ambient Weather station on our roof and hooked it up to Weather Underground and that lets me get ad-free weather forecasts. Lots of people have one or two such services that are helpful for them.
And then there’s IFTTT, which is a service that lets you wire services together. Common uses are package tracking (“when my package arrives at the destination, send a text message to my phone”) or weather alerts (“when tomorrow’s forecast calls for rain, remind me to take an umbrella to work”). This is super nifty and helpful, and lots of people use it to make their lives a little bit more convenient. I wanted to create an alert based on comparing the temperature from my weather station to the temperature inside our house.
You can’t do that. You can compare a measurement to a constant (“when the outside temperature falls below 72 degrees…”) but not to another measurement. Technically, that would wind up being harder to implement and consuming storage space that would probably scale in costly ways, so I understand why IFTTT hasn’t done it yet. However, it’s pretty straightforward to do as a one-off program. But, I thought, if I have this desire, I can’t be the only one. I bet there are other people who’d like to compare a measurement from one service against a measurement from another service and then fire off an action based on the three possible outcomes (less than, greater than, equal to — see, your elementary school math does have applicability in life).
It turns out that IFTTT is pleased to offer a straightforward API to let you integrate your own service with theirs. The first stumbling block I hit was that my service would need to be an OAuth 2.0 provider. It shouldn’t be a surprise that being an OAuth provider involves a lot of infrastructure; it’s not having that infrastructure that makes being an OAuth client so attractive.
So now, with no clear path to monetization and this huge pile of complicated work in front of me, I’m thinking that no, I don’t actually need to write this service. I can just write a simple program that will poll for the information I actually care about and send me an email when the conditions are right. Trying to solve the problem for everybody just isn’t worth the expense (because dedicated servers with static IP addresses and domain names and databases with same are all readily had but they aren’t free and they cost way more than the Raspberry Pi that I’ve already got).