En una instancia de Node-RED montada como edge que recoge datos por MQTT realizar la siguiente configuración:
En una BBDD SQLite guardar los datos de forma local y que se pueda hacer búsqueda de datos rápidamente y compara datos
Mandar los datos de series temporales de datos a una BBDD InfluxDB en cloud
Mandar los datos de tablas de forma periódica a una BBDD MySQL en cloud
Crear una tabla en SQLite llamada sondas donde se guardarán los datos de las sondas de temperatura. Mantener sólo los datos durante 30 días. Los campos son el nombre del dispositivo y las variables que guarde.
Mostrar en el dashboard en un mismo grupo 3 widgets text donde cada segundo actualice el timestamp (epoch time), la fecha usando el nodo node-red-contrib-date y el día y hora en formato, usando el nodo moment para transformarlo.
Leer el dato de la temperatura publicado en MQTT y hacer que cuando la temperatura esté fuera de un rango entre 18 y 22 grados, ponga el estado de confort en un elemento del dashboard y mande un email.
Hacer un dashboard para ver la temperatura de todas las Raspberry Pi publicada en MQTT y sus gráficas. Usar MQTT Explorer para explorar qué datos están publicados.
Opcionalmente hacer varias tabs/pestañas para mostrar: temperaturas, CPU y memoria agrupadas en cada pestaña.
En este caso uso un nodo change donde borro payload y pongo las propiedades msg.ui_control.seg1 y msg.ui_control.seg2 a los valores almacenados en las variables de contexto.
Por último no dejar que el valor MIN sea mayor que MAX, ni que MAX sea menor que min en el dashboard, para ello controlar el valor de MIN y MAX al cambiar con un nodo switch y tomar la decisión a hacer.
Poner un pin para encender los Reles, de forma que si no hay pin no se puede encender desde el dashboard. Simular una cerradura de forma que al poner el pin correcto se abre y luego a los 5 segundos se cierra.
Mostrar en el dashboard el estado de la cerradura.
Crear un flujo nuevo en el dashboard llamado pin de seguridad
Usando el nodo de OpenWeatherMap, hacer un dashboard con la temperatura, humedad y presión donde se actualice el dato en un gauge y se haga una gráfica que muestre los últimos 7 días.
Mandar el dato de la temperatura por MQTT al topic “cursomqtt/raspberrypixx/temperatura”.
Hacer un botón para que mande la predicción de los próximos 5 días al correo electrónico.
Este nodo simula una lámpara HUE en Node-RED con las llamadas a la API de HUE, pero se puede usar para otras cosas. Simula una bombilla inteligente y como pone en el description solo tiene unas funciones limitadas, emula una Philips Hue bridge. Ver http://192.168.1.12/api/name (192.168.1.12 es la IP de Node-RED en una Raspberry Pi) Al poner el node abre el puerto indicado mostrando http://192.168.1.12:8008/description.xml
Ver AccessToken en Application – Storage – Local Storage
El navegador guarda el token y luego cuando vuelves a acceder no pide la contraseña. Puedes ver los token en el fichero /home/pi/-node-red/.sessions.json
El acceso al Dashboard y rutas HTTP usa basic Auth:
Hacer la lógica para controlar el relé de forma cuando la temperatura sea inferior a 21 grados encienda el relé y lo pare cuando alcance los 23 grados. Cuando el relé se encienda o apague, mandar un correo.
Hacer un dashboard que muestra la temperatura del sensor DS18B20 con un gauge y el estado del relé con un texto.
Servidor ftp público para subir datos: enriquecrespo.com: 7021
Capturar datos de MQTT publicados en enriquecrespo.com:8883 y guarda los datos en un fichero local usando el nodo file en formato csv usando el nodo csv https://cookbook.nodered.org/basic/generate-csv. Poner un botón en el dashboard y al pulsarlo, mandar los datos del fichero csv con el cliente ftp al servidor y borrar los datos del fichero (inicializarlo).
Para mandar los datos se puede usar el servidor público ftp en enriquecrespo.com: 7021 o un servidor propio con node red o de otro tipo.