Hacking Amazon Dash buttons made me kinda famous. OK, jokes aside, I got a winning spot in an Instructables competition some time ago and I hack the buttons ever since. If you want to learn how to use the buttons with a Raspberry Pi and Python – check this tutorial out. Nowadays, I integrate everything with NodeRED, and it was time to take care of the NodeRED and Amazon Dash buttons.
And the best thing? This is super easy!
NodeRED and Amazon Dash buttons
NodeRED is amazing! The custom nodes people come up with are plenty and it was only a matter of time before there was a node to take care of the Amazon Dash buttons. The installation is pretty straightforward. Before you head to the palette manager to look for the node, you have to install this dependency:
sudo apt-get install libpcap-dev
While in the terminal you can either run:npm install node-red-contrib-amazondash
or you can open the palette manager and look for the amazondash. A few moments later you should be able to use NodeRED and Amazon Dash buttons together. If you are new to NodeRED – check out this guide for beginners to get started.
Finding the buttons
Each node corresponds to a single dash button. To make it work, you have to do two things. First, register the Amazon Dash button on your WiFi. Open up the Amazon app, go to the devices and first go to the notifications settings and disable the Amazon Dash notifications.
If you are actually using any of the Amazon Dash buttons for the original purpose, change the country in the Amazon store (I suggest a burner email address as you can get email notifications too), this way you can disable the notifications only for the hacked buttons.
Follow the steps given by the app and cancel the setup at the product selection screen. Don’t worry, you are not going to order a truckload of nappies.
MAC address
Once the Amazon Dash buttons have access to your WiFi we can grab the mac addresses. In my case, it was super simple. I have a Fingbox which alerts me each time a new device joins the network.
I was able to quickly copy the MAC addresses and name the buttons for my personal reference. If you don’t have the Fingbox, you can try the same with the Fing app just note the scan of the network has to be timed well. You can also check the router DHCP tables or fire up the python script from the Doorbell tutorial. The new buttons will also display the MAC address if you put it in the AP mode (hold the button for 6 sec, then look for the SSID Amazon ConfigureMe) – a handy setup page showing not only the MAC address but the battery level too!
Make sure each node is configured with a correct MAC address spelt with uppercase characters:
AA:BB:CC:DD:EE:FF
There is one more thing we have to do before the NodeRED and Amazon Dash integration is complete. If you add a debug node you will notice that sometimes the node fires multiple times. That’s not good! Fortunately, this is very easy to solve – just add a rate-limiting node, asking to discard anything within 10 sec of issuing a request.
Once the button is pressed, you should see an undefined response received via debug node. You can use this to trigger any event.
Conclusion
It’s great that NodeRED and Amazon Dash button play nice together. Especially where there is no coding involved. I moved a lot of my Python scripts into NodeRED, now the Amazon Dash buttons join the suit. If you are interested how to use the buttons as toggles in NodeRED – watch this space – the tutorials are coming up soon.
If you want to know what else you can do with these buttons – here are the guides and articles related to Amazon Dash buttons: