Servidor IoT doméstico – Instalando Node-RED
¿Qué es Node-RED?
Node-RED es un proyecto de software desarrollado inicialmente por IBM, que de manera visual permite programar para comunicar dispositivos con otros programas o servicios web, de cara a facilitar el crecimiento y expansión del Internet de las Cosas.
Los programas se crean como flujos y dentro de ellos incluiremos de manera visual los nodos que son los que permiten la comunicación tanto de entrada como salida con los dispositivos, servicios u otros programas o bases de datos. Hay nodos para prácticamente todo lo que se nos ocurra y al ser un software de código abierto, se desarrollan continuamente nodos para cubrir nuevas necesidades o dispositivos.
Node-RED dashboard o UI es una colección de nodos que permite crear paneles web para poder interactuar con nuestros dispositivos o poder mostrar información que recuperamos desde ellos, accediendo mediante un navegador web desde un PC, tablet o teléfono móvil.
Instalando Node-RED en Raspbian
Para instalar Node-RED en nuestro servidor debemos conectarnos por ssh y ejecutar este comando:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Con él indicamos que descargue y actualice Node-RED y nodeJS, que es necesario para su funcionamiento.
Nos mostrará los siguientes mensajes, pidiendo que confirmemos con y la instalación:

Comenzará la instalación y nos irá indicando los pasos que va completando:

En una Raspberry 3 la instalación dura unos 10 minutos y nos aparecerán unos mensajes indicando que ha sido correcta:

Para arrancar Node-RED debemos introducir el comando node-red-start
Para acceder a Node-RED debemos utilizar un navegador web y accederemos a la dirección http://192.168.1.200:1880
La dirección corresponderá, a la IP que cuando configuramos la Raspberry le asignamos, en nuestro caso 192.168.1.200, y :1880 indica el puerto por el que atiende Node-RED. Si no recordamos que dirección IP habíamos asignado, podemos consultarla desde Raspbian con el comando ifconfig
Si todo ha ido bien, se nos mostrará el interfaz de usuario de Node-RED

y ya podemos empezar a programar flujos.
Habilitar el inicio automático de Node-RED
Para habilitar que el servicio Node-RED arranque de manera automática cada vez que reiniciemos nuestra Raspberry, introduciremos el siguiente comando desde la terminal ssh:
sudo systemctl enable nodered.service
Protegiendo el acceso a Node-RED
Es muy recomendable proteger el acceso al interfaz web de Node-RED para evitar que cualquiera en nuestra red pueda modificar la programación de nuestros flujos. Para proteger el acceso debemos seguir una serie de pasos:
Instalar node-red-admin ejecutando el comando sudo npm install -g node-red-admin
Una vez instalado, con el comando node-red-admin hash-pw
generaremos el hash de la contraseña. El comando nos pedirá que introduzcamos la contraseña que queremos utilizar y nos devolverá una cadena que debemos copiar para introducirla en el siguiente paso.
Editaremos desde la terminal ssh el fichero /home/pi/.node-red/settings.js
(todos los ficheros de configuración de Node-RED se almacenan en el directorio .node-red del home del usuario que utilicemos, normalmente será el usuario pi) y modificaremos las siguientes líneas quitando las // de delante de cada una de ellas para habilitarlas y copiando en el parámetro password la cadena obtenida en el paso anterior :
// Securing Node-RED
// -----------------
// To password protect the Node-RED editor and admin API, the following
// property can be used. See http://nodered.org/docs/security.html for details.
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "",
permissions: "*"
}]
},
Guardaremos el fichero modificado y reiniciaremos Node-RED con el comando node-red-restart
A partir de ahora cuando vayamos a acceder a Node-RED, se nos solicitará usuario y contraseña:
