And for the ones using OpenHabian 1.4 there seems to be a configuration error (?) in the python config. Just in case you get the following error
[07:09:38] openhabian@openHABianPi:~$ sudo amazon-dash run
Welcome to Amazon-dash v1.0.0 using Python 2.7.13
Listening for events. Amazon-dash will execute the events associated with the registered buttons.
Traceback (most recent call last):
_ File “/usr/local/bin/amazon-dash”, line 6, in _
_ catch(cli)()_
_ File “/usr/local/lib/python2.7/dist-packages/amazon_dash/exceptions.py”, line 91, in wrap_
_ return fn(*args, **kwargs)_
_ File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 722, in call_
_ return self.main(*args, **kwargs)_
_ File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 697, in main_
_ rv = self.invoke(ctx)_
_ File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 1066, in invoke_
_ return process_result(sub_ctx.command.invoke(sub_ctx))
_ File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 895, in invoke_
_ return ctx.invoke(self.callback, **ctx.params)_
_ File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 535, in invoke_
_ return callback(*args, **kwargs)_
_ File “/usr/local/lib/python2.7/dist-packages/amazon_dash/management.py”, line 99, in run_
_ from amazon_dash.listener import Listener_
_ File “/usr/local/lib/python2.7/dist-packages/amazon_dash/listener.py”, line 9, in _
_ from amazon_dash.scan import scan_devices_
_ File “/usr/local/lib/python2.7/dist-packages/amazon_dash/scan.py”, line 6, in _
_ from scapy.all import *_
_ File “/usr/local/lib/python2.7/dist-packages/scapy/all.py”, line 10, in _
_ from .config import *_
_ File “/usr/local/lib/python2.7/dist-packages/scapy/config.py”, line 11, in _
_ from .data import *_
_ File “/usr/local/lib/python2.7/dist-packages/scapy/data.py”, line 184, in _
_ TCP_SERVICES,UDP_SERVICES=load_services("/etc/services")_
_ File “/usr/local/lib/python2.7/dist-packages/scapy/data.py”, line 109, in load_services_
_ f=open(filename, errors=‘ignore’)_
TypeError: ‘errors’ is an invalid keyword argument for this function
You probably have the wrong scapy version. Please check with
pip freeze
The output could look like this (note “scapy-python3” although I am using python 2.7):
amazon-dash==1.0.0
certifi==2018.1.18
chardet==3.0.4
click==6.7
click-default-group==1.2
cryptography==1.7.1
dnspython==1.15.0
enum34==1.1.6
functools32==3.2.3.post2
idna==2.6
ipaddress==1.0.17
jsonschema==2.6.0
keyring==10.1
keyrings.alt==1.3
pyasn1==0.1.9
PyBluez==0.18
pycrypto==2.6.1
pygobject==3.22.0
pyxdg==0.25
PyYAML==3.12
requests==2.18.4
RPi.GPIO==0.6.3
scapy-python3==0.23
SecretStorage==2.3.1
six==1.10.0
subprocess32==3.2.7
tzupdate==1.2.0
urllib3==1.22
The solution: Uninstall scapy-python3
sudo pip uninstall scapy-python3
The output looks like this:
Uninstalling scapy-python3-0.23:
[…] long list of files […]
Proceed (y/n)? y
_ Successfully uninstalled scapy-python3-0.23_
And then reinstall the correct scapy version:
sudo pip install scapy
The output looks like this:
Collecting scapy
_ Downloading scapy-2.3.3.tgz (1.4MB)_
_ 100% |████████████████████████████████| 1.4MB 75kB/s_
Building wheels for collected packages: scapy
_ Running setup.py bdist_wheel for scapy … done_
_ Stored in directory: /root/.cache/pip/wheels/bd/cf/05/d5abc9b4434f39ffe231517dfb8dab96241fef6a99459051f9_
Successfully built scapy
Installing collected packages: scapy
Successfully installed scapy-2.3.3
Now you are ready to go