Script SH para obtener los datos de ping, velocidad de subida y velocidad de bajada y almacenarlos en sensores virtuales de domoticz

Dividimos esta guía en varias partes

Mediante plugin

Tenemos disponible en github un plugin para poder obtener los datos de ping, velocidad de subida y velocidad de bajada y almacenarlos en sensores virtuales de domoticz.

https://github.com/Xorfor/Domoticz-Speedtest-Plugin

Software necesario

Putty

El programa puTTY lo utilizaremos para conectar con nuestra raspberry por consola. Lo podéis descargar de aquí https://www.putty.org/

download putty
download putty

Lo más seguro es que vuestro PC, si es moderno, sea de 64 bits. En caso de duda bajar la versión de 32, o bien probar y si la de 64 bits no os funciona ya os bajáis la de 32 bits.

Instalamos el plugin

Abrimos puTTY y lanzamos lo siguiente. Recuerda que para pegar texto en la consola podremos hacerlo clicando con el botón derecho del ratón:

cd /home/pi/domoticz/plugins

A continuación, lanzamos esto:

sudo apt-get install speedtest-cli -y

Paramos el sistema introduciendo lo siguiente:

sudo systemctl stop domoticz

Iniciamos el sistema:

sudo systemctl start domoticz

Cargamos el plugin

Vamos a domoticz > Setup > Settings. Tendremos que bajar para encontrar la opción que necesitamos.

Clicamos sobre Aceptar nuevos dispositivos y subimos para Guardar los cambios.

Vamos a domoticz > Setup > Hardware y añadimos un nuevo hardware de tipo «Speedtest» con las siguientes características:

Introducimos el Polling time que nos interese. Os recomendamos no dejarlo en 1 minuto. Pensad que hará una prueba cada vez que actualice los dispositivos y podría afectar a la red en ese preciso instante.

Clicamos sobre añadir y veremos que se nos cargan tres dispositivos nuevos, que actualizarán en la frecuencia que hayamos marcado previamente.

Mediante script SH

@damian_rguez del grupo «Domoticz a lo spain» de telegram nos explica cómo obtener los datos de ping, velocidad de subida y velocidad de bajada y almacenarlos en sensores virtuales de domoticz.

Software necesario

WinSCP

En primer lugar necesitaremos descargar e instalar WinSCP para entrar en los directorios de nuestra raspberry desde el ordenador.

Para descargarlo e instalarlo clica aquí.

Putty

El programa puTTY lo utilizaremos para conectar con nuestra raspberry por consola. Lo podéis descargar de aquí https://www.putty.org/

download putty
download putty

Lo más seguro es que vuestro PC, si es moderno, sea de 64 bits. En caso de duda bajar la versión de 32, o bien probar y si la de 64 bits no os funciona ya os bajáis la de 32 bits.

Script conectividad.sh

Vamos a necesitar un script (un archivo .py para la instalación). Deberéis descargar la carpeta zip del siguiente enlace, descomprimirla y quedaros con el archivo: «conectividad.sh«.

Lo podéis descargar de aquí. Lo tendréis que descomprimir y tendréis el archivo sh.

Creación de user y pass con BASE64

Antes de nada, necesitamos crear un usuario codificado. Si ya lo tienes del tutorial: «Uso de Google Home con Domoticz mediante IFTTT (requiere suscripción mensual)» puedes pasar al paso siguiente «Creamos los dummys en domoticz«.

El user y pass no puede ser cualquiera al azar, seguimos las siguientes indicaciones para escogerlo.

Imaginamos:

User: userext
Pass: contraseña

Vamos a la siguiente web: https://www.base64encode.org/ y siguiendo nuestro ejemplo seria:

Hay que buscar un resultado que no tenga ningún =

Así que tienes que jugar con un usuario que no produzca un base64 con =

Ejemplo:
«Prueba» valdría, no tiene = al final.

Ahora hay que buscarte un password que no genere un == en el base64. Vamos a probar con «contraseña» como ejemplo de posible pass

Como puedes ver, utilizar «contraseña» como pass x ejemplo no valdría, porque tiene un = en el resultado.

Vamos a probar con «claves» como contraseña

«claves» por ejemplo sí valdría. No genera =

Entonces finalmente nos quedamos con:

User: Prueba
Pass: claves

Mucho cuidado, aquí es muy importante que respetemos el uso de mayúsculas y minúsculas. El programa las reconoce.

Con esto, nos vamos a domoticz de nuevo y siguiendo con el ejemplo, crearíamos un usuario llamado Prueba con password claves. 

Creamos los dummys en domoticz

Necesitmaos crear 3 custom sensor y un switch. Se crean siguiendo en la siguiente ruta:

Domoticz > Tools > Hardware

Crearemos tres tipos de custom sensor:

Nos vamos a:

Setup > Devices

Y vemos qué IDX tiene cada uno. Los vamos a necesitar a continuación.

Ahora vamos a:

Switches

Y clicamos sobre los EDIT del switch que acabamos de crear:

Cambiamos el tipo de switch a Push on Button:

Y añadimos lo siguiente en la linea On Action:

script://conectividad.sh

Editamos el script

Abrimos el archivo SH que nos acabamos de descargar con un editor de textos, por ejemplo notepad++.

Debemos rellenar los datos de host, idx y usuario, y clave. Ojo aquí, utilizamos el usuario y la clave codificados!! 

Otro aspecto a tener en cuenta es que tanto el host, en el que pondréis IP:PUERTO, como el user y el pass deben ir entre comillas, como a continuación:

  • host: 192.168.8.150:90
  • user (del ejemplo anterior, extraído de codificar Prueba): UHJ1ZWJh
  • pass
  • (del ejemplo anterior, extraído de codificar claves): Y2xhdmVz

Instalamos speedtest

Abrimos puTTY y paramos el sistema introduciendo lo siguiente. Recuerda que para pegar texto en la consola podremos hacerlo clicando con el botón derecho del ratón:

sudo systemctl stop domoticz

Ahora lanzamos esto:

cd /home/pi/domoticz/scripts

A continuación, lanzamos esto:

sudo pip install speedtest-cli

Si te da error, introduce:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install python-pip

sudo easy_install speedtest-cli

Configuración en Winscp

Abrimos WinSCP y creamos una carpeta llamada scripts bajo la carpeta pi en caso de no tenerla:

/home/pi/domoticz/scripts

Copiamos y pegamos el script conectividad.sh dentro de ese mismo directorio, con el mismo nombre.

Clicamos sobre propiedades del script y cambiamos su configuración y copiamos la de la siguiente imagen:

Es posible que la carpeta te pida permisos, en ese caso marca tal y como te aparece en la siguiente imagen:

Configuración en Putty

Vamos a comprobar que lo que hemos hecho en el paso anterior se ha guardado correctamente. Volvemos a la sesión en puTTY y lanzamos la siguiente linea:

cd /home/pi/domoticz/scripts

Ahora introducimos:

 ls -lh

Tendría que aparecer una línea con conectividad.sh

Ahora lanzamos lo siguiente:

sudo crontab -e

Si te aparece lo siguiente pulsa 1 e Intro:

Y nos saldrá la siguiente pantalla:

Bajamos al final del fichero y pegamos el comando que os dejamos a continuación. Recordar que si la seleccionáis aquí, la copiáis con control + C y vais a puTTY, haciendo click derecho hará el paste:

* */8 * * * /home/pi/domoticz/scripts/conectividad.sh >/dev/null 2>&1

Para guardar, redactamos

Ctrl + x y save confirmando el guardado con ENTER

¿Por qué este comando? Define cuándo se va a ejecutar según las siguientes directrices.

Fíjate, en la siguiente imagen ves el significado de los asteriscos.

El * */8 quiere decir siempre cada 8. Pero cada 8 qué? Pues la respuesta es…. depende. En este caso son horas porque está en la segunda posición. 

Por si quieres probar otros servicios y necesitas calcular la frecuencia tienes esta web: https://crontab.guru/

Iniciamos domoticz de nuevo:

sudo systemctl start domoticz

Comprobación del funcionamiento

Ahora probamos si funciona el invento. Para ello volvemos al directorio principal si todavía estamos en scripts introduciendo el siguiente comando:

cd

Introducimos lo siguiente:

sudo systemctl daemon-reload

Nos vamos a domoticz y clicamos sobre nuestro switch tipo push on:

Los 3 custom sensor deberían actualizarse:

Personalización de los iconos

Podemos personalizar los iconos siguiendo las directrices de este tutorial: «Cómo añadir iconos personalizados a los dummys interruptores y sensores (custom sensors) de domoticz«.

Te dejamos aquí tres custom sensors para ellos:

Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.

Clica aquí para entrar en él

Cualquier duda, sugerencia o comentario será bien recibida en la web!