Hola, el script en Python que habia publicado no termina de funcionar bien, así que después de entender como funciona el Dash Button he decidido crear otro pero en Bash, creo que es mas facil de interpretar y no es necesario librerias o dependencias.
El anterior estaba basado en
este por si alguien le interesa.
El boton Amazonico funciona de la siguiente manera, solo se conecta a la Wifi cuando es pulsado, así evita gastar batería innecesariamente, con esto se me ocurre lanzar un ping infinito a la espera que nos conteste... si nos contesta lanzara la URL que mas nos interese de nuestra querida eedomus.
Una de las pegas sera asignarle un IP Fija al Dash Button, no es complicado casi cualquier router de hoy en dia tiene un apartado para eso.
Empezamos!
Crear directorio y script:
cd /
mkdir sh
nano /sh/dash_button.sh
Pegamos el siguiente codigo:
#!/bin/sh
#Configuration
Dash_Button_1="x.x.x.x"
Dash_Button_1_URL="https://api.eedomus.com/set?api_user=xxxxx&api_secret=xxxxxxxxxxxxxxxx&action=periph.value&periph_id=xxxxx&value=xx"
while true;
do
echo "."
ping -c1 $Dash_Button_1 > /dev/null
if [ $? -eq 0 ];then
echo "Dash Button 1, Pulsado!"
curl $Dash_Button_1_URL
sleep 35
fi
done
Ahora le daremos permisos de ejecucion:
chmod 755 /sh/dash_button.sh
Valores a modificar, debéis cambiar el valor de las variables:
Dash_Button_1 Aqui teclearemos la IP que le asignemos al Dash Button
Dash_Button_1_URL La URL de la accion a realizar.
Mas cosas a tener en cuenta! en el script he añadido el comando sleep, tras lanzar la URL con la accion esperara 35 segundos en volver a lanzar un ping, estos segundos son los que tarda en apagarse el Dash Button, en mi caso tarda esto pq he realizado un drop a todo el trafico saliente y este es el tiempo que tarda en realizar un timeout la botonera al no alcanzar los servidores de Amazon, sin cortar el trafico son 8 segundos aprox.
Ahora nos vamos asegurar que el script este corriendo siempre, para ello el script.
nano /sh/autorun.sh
Pegaremos el siguiente codigo:
ps -e | grep dash_button.sh
if [ $? = 0 ]; then
echo "Running!"
else
/sh/dash_button.sh &
fi
Permisos de ejecucion:
chmod 755 /sh/autorun.sh
Ahora haremos una comprobacion cada 5 min.
crontab -e
Añadimos lo siguiente:
*/5 * * * * /sh/autorun.sh
Continuara...