Instalación desde cero de domoticz, mqtt, influxdb, grafana y node red

Dividimos esta guía en varias partes

Material necesario

Para completar este tutorial necesitaremos:  

  • Raspberry Pi: Puede utilizarse cualquiera, pero si vas a comprar una por la diferencia de precio compra la 4.
  • Tarjeta MicroSD mínimo de 16Gb y clase 10.
  • Alimentación para Raspberry (puedes utilizar algún cargador -de calidad- de móvil).

Para más información sobre el material que vas a utilizar para flashear y demás entra en «Material necesario para poner en marcha domoticz«.

Software necesario

Win32Disk Imager

Para grabar la imágen linux en nuestra rapsberry necesitaremos el software Win32 Disk Imager que podéis bajarlo de este link -> Win32DiskImager o bien ir a la web https://sourceforge.net/projects/win32diskimager/

win32diskimage grabación sd

En caso de que usemos una SD que previamente habíamos utilizado para otro fin nos vendrá bien tener el siguiente programa -> https://www.sdcard.org/downloads/formatter/

Entramos en la web y bajamos hasta encontrar la versión de windows, pinchamos en ella, aceptamos condiciones y desacargamos:

SD Card formater

sd card formater software

Raspbian

Para este tutorial vamos a utilizar la imagen raspbian lite, no necesitamos entorno gráfico ya que queremos nuestra raspberry para que haga de servidor, no tendrá monitor conectado, por lo que ahorraremos recursos instalando un versión server en vez de desktop. Para descargar la última versión de raspbian vamos a su página web -> https://www.raspberrypi.org/downloads/raspbian/ y ahí seleccionaremos para descargar la versión lite:

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.

Preparación SD

Vamos a formatear nuestra tarjeta SD para que se borre cualquier fichero o partición que se creara en ella anteriormente. La dejaremos limpia y lista para instalar raspbian en ella…

Abrimos el SD card formater que hemos bajado previamente:

  1. Seleccionamos la unidad de nuestra tarjeta SD*
  2. Marcamos sobreescribir formato (tardará un poco más en hacer el borrado).
  3. Le damos un nombre a nuestra SD.
  4. Por último pulsaremos en Format.

* Es muy importante seleccionar la unidad correspondiente a nuestra SD, si tenemos dudas la sacamos y vemos así que ha desaparecido de las opciones la letra correspondiente a nuestra SD. Elegir una unidad equivocada supondría el borrado de algo que no queríamos borrar….

sd formater herramienta

Grabación SD

Una vez que hemos descargado la imagen de raspbian lite veremos que tenemos un fichero con la fecha de la imagen 2020-02-13-raspbian.zip (por ejemplo). Tendremos que descomprimir el fichero ZIP, que es el que contiene la imagen que vamos a grabar. 

Abrimos el win32diskimage y seleccionamos:

  1. Buscamos el fichero que contenía el ZIP.
  2. Seleccionamos la unidad que corresponde a nuestra SD.
  3. Le damos a Write (grabar).

Si una vez finalizada la instalación os aparece una ventana emergente preguntando si formateamos la tarjeta SD NO confirmamos.

Se han creado dos particiones y una no es reconocida por windows. Es normal, omitir ese paso CANCELANDO y palante 😉

Configuración de la SD para primer arranque

Para que podamos acceder a nuestra raspberry por consola es necesario que activemos está caracteristica, ya que es algo que por defecto viene desactivado. Para ello iremos a nuestra tarjeta SD con el explorador de archivos de windows y crearemos un fichero llamado ssh sin extensión y vacio…

Si no te aparecen las extensiones de los archivos para poder eliminar el .txt deberás activarlas en tu ordenador, para ello clica con el botón derecho del ratón en inicio y sigue los pasos de las imágenes:

Bajamos y activamos la opción de visualizar extensiones:

Volvemos a la carpeta de nuestra SD y quitamos la extensión del archivo SSH.

Con esto ya tendremos lista nuestra SD. Ahora, estando la raspberry apagada (sin alimentación), introduciremos en nuestra raspberry la SD… Una vez insertada la SD conectamos la raspberry al router mediante un cable y le damos alimentación.

Localizar la IP de la raspberry

Hay varias formas de poder encontrar en nuestra red la raspberry tras su primer arranque.

Aquí os enseñamos la APP Fing, disponible aquí. Tras instalarla os conectáis a vuestra red wifi y le dais al botón del círculo con la flecha.

Os aparecerá un listado de los dispositivos de vuestra red y debéis ir bajando hasta dar con el vuestro.

Bingo!! el nuestro es el 192.168.3.56! Localizado! 

fing_raspberry_domoticz

Acceder a nuestra raspberry por consola

Bien, ya tenemos localizada la IP de nuestra raspberry. Vamos a entrar a ella por primera vez… Para ello daremos un rato a la raspberry si acabamos de enchufarla. Puede tardar varios minutos en el primer arranque…

Abrimos el puTTY y ponemos la IP de nuestra raspberry, y el puerto 22, como podemos ver en la siguiente captura.

El usuario por defecto es pi y la contraseña (password) es raspberry.

Si vemos que no nos carga esperamos un rato. Si después de haber dejado unos minutos para su arranque intentamos acceder por puTTY de nuevo y sigue sin cargar, 

Vamos a cambiar la contraseña por defecto, para evitar que alguien no deseado pueda acceder a nuestra raspberry.

Para ello escribimos lo siguiente:

passwd

Nos pedirá la password actual que es raspberry y luego que pongamos dos veces el nuevo password. Si todo fue bien nos dirá que la ha cambiado.

Actualización de la raspberry

Ejecutamos el siguiente comando desde puTTY:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install python3.7 libpython3.7 python3.7-dev nano htop -y

Instalación de domoticz

Una vez actualizado el sistema lanzamos el siguiente comando para la instalación de domoticz:

curl -sSL install.domoticz.com | sudo bash

Aceptamos sin más.

Vamos con el tabulador hasta https y lo desmarcamos, luego vamos a OK y seguimos:

Dejaremos el puerto 80 para http.

No modificamos el directorio, simplemente OK:

Empezará a descargar los componentes necesarios y realizará la instalación:

Una vez finalizado nos saldrá este mensaje, le damos a OK:

Abrimos en el navegador la página y veremos nuestro domoticz ya funcionando:

Instalación de MQTT

Ejecutamos el siguiente comando

sudo apt-get install mosquitto mosquitto-clients -y

Ahora ejecutamos el siguiente comando para crear la configuración mínima

sudo nano  /etc/mosquitto/conf.d/default.conf

Tenemos que dejar estas dos líneas:

listener 1883
allow_anonymous true

Quedando así:

Pulsamos crtl+x para salir

Ejecutamos los siguientes comandos:

sudo systemctl daemon-reload

sudo systemctl enable mosquitto

sudo systemctl start mosquitto

Instalación de Influxdb

Ejecutamos el siguiente comando (está guía está hecha para versión buster):

wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

Continuamos con estos comandos:

sudo apt update -y
sudo apt install influxdb -y
sudo systemctl unmask influxdb
sudo systemctl enable influxdb
sudo chmod +x /usr/lib/influxdb/scripts/influxd-systemd-start.sh

Editamos el fichero de configuración

sudo nano /etc/influxdb/influxdb.conf

Buscamos auth-enable, le quitamos la # que le precede y grabamos los cambios

Tras realizar los cambios tenemos que reiniciar el servicio

sudo systemctl daemon-reload
sudo systemctl stop influxdb
sudo systemctl start influxdb

Ahora creamos la base de datos que vamos a llamar DOMOTUTO, para ello entramos en la consola de influxdb ejecutando el siguiente comando:

influx

Si todo va bien nos mostrará el mensaje de que está conectado al Shell de influx:

Ahora escribimos y ejecutamos lo siguiente

CREATE DATABASE DOMOTUTO

A tener en cuenta sobre influxdb

@arfoga del grupo de Telegram «Domoticz a lo spain» nos advierte de que ante un reinicio de la Raspberry puede pasar que influx no se inicie. El problema suele ser que influx tiene un tiempo determinado para lanzar la base de datos, creo que son 10 segundos, si en esos 10 segundos no se lanza, porque es demasiado extensa, es como si entrara en un bucle y no se lanza, dejando de grabar datos.

Por ello, para evitar problemas hay que modificar en el siguiente archivo desde putty:

sudo nano /etc/systemd/system/multi-user.target.wants/influxdb.service

Y luego hay que hay que almuhadillar la linea:

 #Type=forkingts/influxdb.service

Es un parche. Se supone que en versiones futuras no debería pasar.

Instalación de Grafana

Seguimos las indicaciones de https://grafana.com/tutorials/install-grafana-on-raspberry-pi/

Ejecutamos el siguiente comando:

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

Continuamos con los siguientes comandos:

sudo apt update
sudo apt install -y grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

Si todo ha ido bien abrimos el navegador y conectamos a nuestra raspberry con puerto 3000, en mi caso http://192.168.1.33:3000

Nos pedirá usuario y contraseña por defecto es admin / admin

Ahora vamos a añadir nuestro influxdb como nuestro datasource

Bajamos al final de la misma página y especificamos el nombre de nuestra base de datos, en el ejemplo la habíamos llamado DOMOTUTO

Si todo ha ido bien tenemos nos dirá que ha podido conectar bien:

Para probar que funciona vamos a añadir en domoticz el hardware que monitorea el estado de la raspberry y hacer que mande la temperatura de la CPU:

Añadimos todos los devices que nos ha creado:

Tras ello se habrá puesto la fecha en azul:

Vamos a Grafana a crear un grafico para ver la temperatura de la raspberry que está siendo enviada desde domoticz a influxdb:

Pinchamos en select y seleccionamos Temperatura:

Funcionando!!

Instalación de Node Red

Para la instalación de node-red en nuestra raspberry ejecutaremos el siguiente comando

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Vamos contestando a lo que nos vaya preguntando:

La siguiente pregunta también conestamos que si, la instalación de nodos específicos de raspberry (se siente, no hay pantallazo):

Nos irá mostrando el avance de la instalación.

Una vez finalizada ejecutamos los siguientes comandos:

sudo systemctl enable nodered.service
sudo systemctl start nodered.service

Imagen limpia de lo instalado anteriormente para cargar en una SD

Si prefieres descargar una imagen limpia de todo lo instalado anteriormente para simplemente cargarla en una tarjeta SD y ponerla a andar, solo debes acceder al siguiente enlace: «Domoticz con mqtt, grafana, influxdb y node red listo para usar«.

Recordaros que la imagen NO tendrá instalado Watchdog.

Recomendación

Recomendamos que a parte de lo anterior instaléis Watchdog en vuestro sistema.

Watchdog es un mecanismo de seguridad que provoca un reset del sistema en caso de que éste se haya bloqueado. 

Para ello, debéis seguir las instrucciones del siguiente tutorial «Instalar Watchdog en domoticz«.

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!