Nekmo / amazon-dash

Hack your Amazon Dash to run what you want.
MIT License
828 stars 67 forks source link

TypeError: 'errors' is an invalid keyword argument for this function #32

Closed kikemakina closed 6 years ago

kikemakina commented 6 years ago

Description

Me da una serie de errores si intento ejecutar cualquier comando, son estos: pi@HomeAssistant:~ $ amazon-dash --help Traceback (most recent call last): File "/usr/local/bin/amazon-dash", line 6, in from amazon_dash.management import execute_from_command_line File "/usr/local/lib/python2.7/dist-packages/amazon_dash/management.py", line 11, in from amazon_dash.listener import Listener, test_device File "/usr/local/lib/python2.7/dist-packages/amazon_dash/listener.py", line 8, 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

What I Did

No sé qué hacer Paste the command(s) you ran and the output. If there was a crash, please include the traceback here.

Nekmo commented 6 years ago

Buenas, creo que puede haberse realizado la instalación por wheel, y ha instalado un paquete incorrecto para scapy.

Ejecuta primero esto:

pip uninstall scapy-python3

Y luego lo siguiente:

pip install scapy

Estoy investigando lo ocurrido, perdona las molestias.

kikemakina commented 6 years ago

Tienes una raspberry para probar, ahora no tengo tiempo, mañana cargaré una copia de la sd y empezré de nuevo. Lo que me parece raro es que el servicio amazon-dash.service no lo pone en la ruta etc/systemd/system que es donde van por defecto

Nekmo commented 6 years ago

El error que tienes es el mismo que en este otro issue: https://github.com/Nekmo/amazon-dash/issues/31

Instalando la dependencia correcta debería solucionarse el problema. Creo que el fallo puede que esté en la instalación cuando pip selecciona wheel como método de instalación. Acabo de lanzar una nueva release que deshabilita wheel.

Tengo una RPI B+, pero con Archlinux, no Debian. En mi instalación no he tenido este problema, pero cada sistema es un mundo y es mejor que lo pruebes por ti mismo.

En el issue que hago referencia, quien creó el caso también usaba Raspbian, y esta solución arregló el problema.

Si pruebas la solución cuéntame qué tal te va.

Un saludo.

Nekmo commented 6 years ago

He probado la instalación en Hassbian, que es la misma distro que Raspbian pero algo modificada, y con la última versión de Amazon-dash funciona. Con los siguientes comandos debería funcionar si tienes la versión anterior:

sudo pip uninstall scapy-python3

Y después:

sudo pip install --ignore-installed scapy

Saludos.

kikemakina commented 6 years ago

Muchas gracias por las respuestas, finalmente acabo de cargar una copia nueva de raspbian y ha funcionado bien sin tener que hacer nada. Otra pregunta, yo quiero que al apretar el dash ejecute un input_boolean en homeassistant, qué tendría que poner en el apartado event? no me aclaro bien, de momento lo tengo así:

# amazon-dash.yml
# ---------------
settings:
  # On seconds. Minimum time that must pass between pulsations.
  delay: 10
devices:
   xx:54:xx:50:07:xx
      name: scottex
      homeassistant: 127.0.0.1
      event: 

Edito para decir que ahora he intentado activar el service, y me ha dado este error:

root@HomeAssistant:~# systemctl start amazon-dash
root@HomeAssistant:~# systemctl enable amazon-dash
Created symlink /etc/systemd/system/multi-user.target.wants/amazon-dash.service                  → /usr/lib/systemd/system/amazon-dash.service.
root@HomeAssistant:~# systemctl status amazon-dash
● amazon-dash.service - Amazon Dash service
   Loaded: loaded (/usr/lib/systemd/system/amazon-dash.service; enabled; vendor
   Active: activating (auto-restart) since Tue 2018-02-13 20:44:58 CET; 853ms ag
  Process: 2290 ExecStart=/usr/bin/env amazon-dash --config /etc/amazon-dash.yml
 Main PID: 2290 (code=exited, status=0/SUCCESS)
lines 1-5/5 (END)
Nekmo commented 6 years ago

Para ver el error, utiliza:

journalctl -r -u amazon-dash

Es posible que el problema esté en el archivo de configuración. Puedes probar la configuración con:

amazon-dash --config /etc/amazon-dash.yml check-config

El nombre del evento debes definirlo en Home Assistant y asociarlo con las acciones que quieres que se realicen.

Un saludo.

kikemakina commented 6 years ago

Bueno, te agradezco la atención prestada, pero no soy capaz de enlazarlo con el input_boolean de home assistant, así que lo dejo por imposible. Buscaré otras soluciones para poder usar el dash.

Nekmo commented 6 years ago

Con este programa también puedes ejecutar comandos o llamar a una url. Comprueba no obstante que el programa esté recibiendo el evento de pulsación. Para ello puedes usar el comando discovery.

Nekmo commented 6 years ago

Se cierra hilo debido a inactividad.