how to hack an amazon dash button to make a $5 home automation remote

How to Hack an Amazon Dash Button to Make a $5 Home Automation Remote

In Home Automation by JodyLeave a Comment

Like the idea of a remote that ties into your home automation system but don’t want to drop $35 on a remote like the Z-Wave Minimote?

Well, the Amazon Dash button may be your ticket to ride.

I’ll walk you through the tinkering that I did with the Amazon Dash and some alternatives to what I did that may suit your setup.

How Can Amazon Sell Dash Buttons for so Cheap?

First, let’s take a minute for an aside on the Amazon Dash button.  The short answer to why the Dash buttons are so cheap is that they are subsidized.

People doing teardowns of the Dash button electronics estimate that the little WiFi buttons cost significantly more than Amazon charges for them.  Think of it like hotdogs at Costco or doorbusters on Black Friday.  Amazon wants you to stick the little buttons all over your house to make ordering from them easier than a trip to the store.

Amazon Dash Button TideIn short, they’re counting on making the money back in the long run on the average consumer.  For them, the fraction of the population that will hijack the WiFi messages sent by the buttons to control their home automation system are so small that it’s not worth raising the prices for them.

So, we benefit from being the small slice of the population that will exploit their plan!

I should probably let you know that you can pay $20 for an IOT Dash Button from Amazon and it’s designed to make integrating with Amazon Web Services and other IOT devices easy.

How does the Amazon Dash button Work?

When you buy a Dash button, you log into Amazon and register a single button to a particular product that you order all the time.  Each button generates a unique message, and you tell Amazon which product to order for you when the button is pressed.

After the registration, when you push the button, it sends a message to Amazon’s servers that they translate into an order for that product.  Then, you’ll have the chance to confirm or cancel the order with the Amazon app.

How to Turn a Dash Button into a Home Automation Remote

For our purposes, we’re going to listen for a message from the button the same way that Amazon’s servers do.  But, instead of ordering more laundry detergent, you can trigger a good night routine that locks the doors and turns the lights off.

The really important part is that we don’t want Amazon ordering products every time the button is pushed.  So, we have to go part-way through the registration process for the button, but not actually select a product to be ordered when the button is pressed.  That way, when the network messages from your button get to Amazon, they won’t know what to do with it and will just ignore them.

You’ll need this to get started:

  • Amazon Dash button – you can pick out any one you want, it doesn’t matter
  • AND Software to watch for network traffic from the button and then trigger your automation
  • WITH a computer to run it that stays on all the time
  • AND EITHER A home automation system with a network API to trigger routines
  • OR an IFTTT account and devices that can integrate with it

That may seem a bit daunting at first, but it’s really not as bad as it sounds.  I’ll walk you through the details.

How to Set up Your Amazon Dash Button with IFTTT

First, you’ll need to set up the software that you want to monitor for the button network traffic.  Since I was tinkering on my Windows machine, I used DashRunner.  It offers integration with:

And whatever else has an exposed network API, really.

There are other software options for those running *nix also.  Check out the section below for those.

Since you need the device on all the time, something like a Raspberry Pi would be great for a permanent installation to cut down on the power usage.

After installing Dash Runner, just open it up and click ‘Add Button.’  From there, the software walks you through the installation process to set the button up and then scan for network messages from it while you press the button.

amazon dash button setup step 1
amazon dash button setup step 3
amazon dash button setup step 2 fail
amazon dash button dashrunner trigger setup

For me, this was the trickiest part.  I had a heck of a time getting my Dash to be picked up by Dash Runner.  But, after monkeying around with the timing of pressing the button and scanning for it in the application, I was able to get it set up.

amazon dash button setup step 2 fail

I saw a lot of these!

From there, it’s just a matter of setting up the trigger to whatever device you want to control.  I used the IFTTT Maker channel to trigger a good night routine on my SmartThings system.

ifttt maker channel setupifttt Maker http request setup for dashrunner

It’s a bit circuitous, but Dash Runner sends a post to the SmartThings cloud which then talks to your hub to control your local devices.

ifttt activity setup for ismartalarm

Other software options to monitor your amazon dash button

If you don’t have a media server running Windows, you may want to look into running an equivalent application on a Raspberry Pi or Arduino.  They’ll be more stable running 24/7 and won’t use as much energy.

There are a few javascript applications leveraging the pcap library on Github you could use.  Here are a couple of popular ones you can test the waters with:

https://github.com/maddox/dasher

https://github.com/hortinstein/node-dash-button

If this info was helpful, say thanks by sharing it!

I hope I saved you a few minutes. Drop a line in the comments and let us know how you plan to use your Dash buttons.

Leave a Comment