The Amazon Dash Button as I am sure you know is a small connected device with a single button on it. Amazon intends for a customer to purchase a device for a specific brand of household daily use goods and set it up to order a specific product when the button is pressed. This is an interesting idea, but I can find any other ways of ordering things off of Amazon and do not need a physical button for that. The Amazon Dash Button connects to your homes Wi-Fi and essentially lives in sleep mode until you push the button, then it wakes up connects and sends the command. Now we are certainly not going to be using our Dash Buttons to place orders from Amazon so let’s look at what else we can do with them.
Amazon claims that Dash Buttons are good for 2000 button presses which is a good thing because the battery is not really meant to be user replaceable. I say it is not really meant to be user replaceable because while it can be done, chances are you are going to break your Dash Button while trying to do so. This is a move by Amazon that I cannot really say I am happy with, although if we were using them the way Amazon intended I guess this would not be an issue as they cost you $5 but you get a $5 credit the first time you use the button essentially making it free.
Now Amazon threw us a little bit of a curve-ball. Amazon quickly caught on to the fact that people were hacking Dash Buttons, so they came out with the IoT Dash Button which instead of connecting to a product connected to AWS. From AWS you could get it into IFTTT or have it perform various other tasks. I love that Amazon embraced the hardware hacking community with the release of the IoT Dash Button, however, I do not like the price when you compare it to the regular Dash Button, but if you do not have a Raspberry Pi or do not want to have one running all the time then the IoT Dash Button might just be for you.
At some point, you may need to make a choice between getting regular Amazon Dash Buttons and more expensive IoT Dash Button. This should be an easy one to figure out by simply answering the question of whether you have a Raspberry Pi you want to use. I am running both regular Dash Buttons and IoT Dash Buttons and see no noticeable difference in the length of time from button press to action so we cannot use that as a deciding factor. In fact, the only advantage that the IoT Dash Button has is that it is so easy to set up. So really the decision is completely up to you they can both accomplish the same goal and if you are already using a Raspberry Pi for something like Pi-hole then it is simple.
Let’s start off with the easy one, shall we? How do we get the IoT Dash Button into our automation? For the purposes of this article we will be discussing how to get your Dash Button into IFTTT and from there you will be on your way. To make use of your IoT Dash Button follow the below steps:
IoT Dash Button Setup
- Create an AWS Account (during account set up you will need to provide a credit card but fear, not everything you are going to be doing will be in the free tier)
- Download the AWS IoT Button app for Android or iOS
- From the AWS IoT App Scan the barcode on your IoT Dash Button Box (or manually enter the serial number)
- Press and hold the button on your IoT Dash Button for six seconds until the blue light flashes
- Choose Trigger IFTTT Maker (nodejs) from the Set Button Actions Page
- Insert your IFTTT Maker API Key (you get this from IFTTT under the Webhook Settings, it is the string of random charters at the end of the URL)
- Press OK
- Press Set Action
- From a computer log into your IFTTT Account
- Create a New Applet
- Select Webhook
- Select Receive a Web Request
- Enter a simple Event Name and write this down you are going to need it later!
- Choose the action you want to happen such as send an SMS or Toggle a Light in SmartThings
- Turn on Receive Notification When this Applet Runs (you will shut this off after we test it but I find it helpful in the beginning)
- Save your Applet
- From a computer log into the AWS Console
- Select Lambda from the Menu
- Select Edit next to the Lambda function created by the AWS IoT Button app
- Look at like 29 and 30 of the code and enter the Event Name you created in IFTTT
- Save the Code and Press your IoT Dash Button it should now do what you told it to do in IFTTT
Now for the regular Dash Button, we have to use a Raspberry Pi so it is a bit more of an advanced setup process but nothing that we can not accomplish. Assuming you have a Raspberry Pi running and know how to use it a little bit simply follow the steps below and you will be up and running in no time.
- From Terminal run pip install -U amazon_dash
- From terminal again run sudo python -m amazon_dash.install
Setting Up Your Dash Button
- From the Amazon Shopping App on your phone select Your Dash Buttons from the Menu
- Select Settings
- Select Set Up A New Device
- Select Dash Button
- Select Agree & Get Started
- Press and hold the button on your Dash Button for six seconds until the blue LED is flashing
- Select Connect
- Select Continue to connect the Dash Button to your Wi-Fi
- Exit Setup (do not select a product)
Finding the Mac Address of your Dash Button
- From Terminal on your Raspberry Pi run sudo amazon-dash discovery
- Press the button on your Dash Button and wait for the Mac Address to be displayed with Amazon Device Displayed next to it
- Take note of the Mac Address
Setting Up Your Config File
- From Terminal on your Raspberry Pi run sudo nano /etc/amazon-dash.yml
- Uncomment (by removing the # for each line) the IFTTT section
- Enter the Mac Address of your Dash Button on the First Line
- Enter a Name for your Dash Button next to name:
- Enter your IFTTT Maker Api Key next to ifttt:
- Enter an event name next to event: (this will need to be used when setting up the IFTTT Applet
- Enter the name of your button again after “value1: in the data section
- Press CTRL – X to save and exit
- From Terminal on your Raspberry Pi run sudo systemctl start amazon-dash
- Test your button
- If everything works set Amazon_Dash to run at boot by entering sudo systemctl enable amazon-dash in Terminal on your Raspberry Pi
Dash Buttons in any form are easy enough to work into your smart home using IFTTT. This should give you everything you need to do whatever you can think of with a single action button. In my home, however, I take this one step further and integrate into SmartThings using a Virtual Switch. The Dash Button triggers IFTTT which then changes the state of a Virtual Switch in SmartThings and then triggers automation built in Webcore. How you do this is largely going to depend on your use and your ecosystem. But once you are in IFTTT the world is your oyster.
I like the Amazon Dash Buttons as an inexpensive way to add single button control of a device. I predominantly use them in my two-year-old son’s room where I want to be able to turn off lights while we are getting him to bed but I do not want him to have the ability to turn them on. He can sit and press those buttons all night and they will not do anything other than depleting the battery.
Anyone using Amazon Dash Buttons in your home automation? Let me know how in the comments below.
I am passionate about the IoT and connected devices. Using connectivity to automate our lives will empower civilization to achieve greatness.