DEVELOPMENT BRANCH: The current branch is a development version. Go to the stable release by clicking on the master branch.
Hack your Amazon Dash to run what you want. Without welders. For the entire family.
This program written in Python runs in daemon mode waiting for someone in the same network to press a configured Amazon Dash button. It is not necessary to know programming to use this program. Amazon-Dash executes commands by command line, calls a url and more. This program works well on a Raspberry PI or on computers with few resources.
- Install Amazon Dash:
$ sudo pip install amazon-dash # and after:
$ sudo python -m amazon_dash.install
Also available on AUR. See other installation methods in the documentation.
- Use discovery mode to know the mac of your Dash (Run the program, and then press any button):
$ sudo amazon-dash discovery
- Edit config file (
/etc/amazon-dash.yml
):
# amazon-dash.yml
# ---------------
settings:
delay: 10
devices:
0C:47:C9:98:4A:12: # Command example
name: Hero
user: nekmo
cmd: spotify
AC:63:BE:75:1B:6F: # SSH example
name: Tassimo
cmd: door --open
ssh: 192.168.1.23:2222
AC:63:BE:67:B2:F1: # Url Webhook example
name: Kit Kat
url: 'http://domain.com/path/to/webhook'
method: post
content-type: json
body: '{"mac": "AC:63:BE:67:B2:F1", "action": "toggleLight"}'
confirmation: send-tg
40:B4:CD:67:A2:E1: # Home Assistant example
name: Fairy
homeassistant: hassio.local
event: toggle_kitchen_light
18:74:2E:87:01:F2: # OpenHAB example
name: Doritos
openhab: 192.168.1.140
item: open_door
state: "ON"
44:65:0D:75:A7:B2: # IFTTT example
name: Pompadour
ifttt: cdxxx-_gEJ3wdU04yyyzzz
event: pompadour_button
data: {"value1": "Pompadour button"}
confirmations:
send-tg:
service: telegram
token: '402642618:QwGDgiKE3LqdkNAtBkq0UEeBoDdpZYw8b4h'
to: 24291592
is_default: false
UPGRADE from previous versions
The following execution methods are supported with your Amazon Dash button with this program:
System command | Call url | Homeassistant |
OpenHAB | IFTTT |
Amazon-dash also allows you to send a confirmation after pressing a button. You will also receive a message in case of failure. Currently only Telegram is supported.
For more information see the documentation of the configuration file.
- Run the daemon:
If you use a Systemd system (Debian 8+, Fedora 15+, Ubuntu 15.04+, Arch Linux 2012+, OpenSUSE 12.1+, and more) execute:
$ sudo systemctl start amazon-dash
To run Amazon-dash at startup:
$ sudo systemctl enable amazon-dash
To run Amazon-dash manually look at the documentation.
- Avoid making a purchase by pressing the button
This program detects when your button connects to the network to execute actions, but does not prevent the ordering. The easiest way to avoid making a purchase is to reconfigure the button using the Amazon instructions (by pressing the button for 5 seconds) but skipping the last configuration step (do not choose which product you want to associate with the button). If Amazon does not know what product you want, they can not charge anything on your credit card.
There are two more methods in the documentation.
Using Amazon Dash within docker is easy! First, pull the Docker image:
$ docker pull nekmo/amazon-dash:latest
Then, create a container and run Amazon Dash itself:
$ docker run -it --network=host \
-v </full/path/path/to/amazon-dash.yml>:/config/amazon-dash.yml \
nekmo/amazon-dash:latest \
amazon-dash run --ignore-perms --root-allowed \
--config /config/amazon-dash.yml
Do you need ideas on how to use Amazon Dash? See what the community does with this project. Some examples:
See all the examples in the community.