Usage¶
To see the available help run:
$ amazon-dash --help
Example:
Usage: amazon-dash [OPTIONS] COMMAND [ARGS]...
Options:
--info set logging to info
--warning set logging to warning
--quiet set logging to ERROR
--debug set logging to DEBUG
--verbose set logging to COMM
--help Show this message and exit.
Commands:
run* Run server
check-config Validate the configuration file.
discovery Discover Amazon Dash device on network.
test-device Test a configured device without press...
To see the help of a command:
$ amazon-dash <command> --help
For example:
$ amazon-dash run --help
Usage: amazon-dash run [OPTIONS]
Run server
Options:
--config PATH Path to config file.
--root-allowed Allow execute commands on config file as root
--ignore-perms Do not check the permissions of the configuration file. Use
this option at your own risk in secure environments (like
Docker).
--help Show this message and exit.
Discovery mode¶
Use discovery mode to know the mac of your Dash (Run the program, and then press the button):
$ sudo amazon-dash discovery
Daemon mode¶
In daemon mode, it waits for a button to be pressed to execute the associated command. The program will remain running
until the user closes it. Amazon-dash creates a service (daemon) file on your system to be able to run the program
easily. The file is copied to your system when you run python -m amazon_dash.install
.
Systemd¶
Most modern Linux systems use Systemd by default. Some exceptions are Slackware and Gentoo. To run amazon-dash using Systemd:
$ sudo systemctl start amazon-dash
To check if it has been executed correctly:
$ sudo systemctl status amazon-dash
Hint
Run $ sudo amazon-dash check-config --config /etc/amazon-dash.yml
to verify that the configuration is correct
before running amazon-dash
To restart amazon-dash after modifying the configuration file to apply the changes:
$ sudo systemctl restart amazon-dash
To see the log:
$ sudo journalctl -r -u amazon-dash
To run Amazon-dash at startup:
$ sudo systemctl enable amazon-dash
Manually¶
If your system does not have Systemd or you want to run it manually:
sudo amazon-dash run[ --root-allowed][ --ignore-perms][ --config amazon-dash.yml]
By default, amazon-dash
will use the amazon-dash.yml
file in the current directory with
sudo amazon-dash run
. However, you can set the path to the file (for example, /etc/amazon-dash.yml
) with
--config
parameter. Please note that --config
must be after run
.
If you run Amazon-dash using root (necessary to sniff network traffic) is required to protect the configuration file **for security reasons):
sudo chmod 600 amazon-dash.yml
sudo chown root:root amazon-dash.yml
If you use Docker you can disable this security measure. using --ignore-perms
. It is not recommended to use
this option if you are running Amazon-dash on your machine. It could be used to scale privileges.
The default level logging is INFO
but you can change it using the --warning
, --quiet
, --debug
and
--verbose
options. To see on screen every time a button is pressed you need to set the --debug
option.
By default it is forbidden to execute commands as root in your configuration file. This is a security measure to
avoid escalation privileges. If you are going to run amazon-dash as root it is highly recommended to define a
user by each cmd config device. You can disable this security measure using --root-allowed
.
Check config¶
If you have edited the configuration file you can check that the file is ok before starting the program:
$ sudo amazon-dash check-config --config /etc/amazon-dash.yml
Test device¶
Sometimes you may want to test the execution of a device without pressing the associated button. This is useful for testing and debugging:
$ sudo amazon-dash test-device <device mac address>[ --root-allowed][ --config <config file>]
For example:
$ sudo amazon-dash test-device 00:11:22:33:44:55 --config /etc/amazon-dash.yml