Cómo conectarte a Node-RED en GX
Node-RED se ejecuta en el propio dispositivo GX. En la red local, el navegador se conecta directamente a él; desde fuera de casa, lo hace mediante el portal VRM. Los flujos también pueden obtener datos de VRM por sí mismos y guardar archivos en la partición de datos del dispositivo.
- En la red localEl editor está en https://venus.local:1881; el dashboard se abre desde el panel «Dashboard 2.0» del editor (ruta /dashboard).
- Acceso remoto mediante VRMMenú Venus OS Large del portal VRM: editor, dashboard y Signal K; funciona despacio si la conexión es deficiente.
- Datos de VRMToken de acceso, VRM API y previsiones de producción: son la base de Dynamic ESS.
- Partición /dataFlujos, paletas y contexto; mantén siempre al menos 30 MB libres. Por debajo del 5% aparece la advertencia #46.
Dashboard: FlowFuse Dashboard 2.0
Un dashboard es una página del navegador con gráficos, indicadores y controles, como interruptores y deslizadores. Victron recomienda el paquete FlowFuse Dashboard 2.0, actualizado y en desarrollo activo.
- Instalación. En el editor: menú de la derecha → Manage palette → pestaña Install; busca e instala
@flowfuse/node-red-dashboard. El dispositivo GX debe tener una conexión a internet operativa. La paleta se instala en la partición de datos, por lo que se conserva tras actualizar Venus OS. - Estructura. Los nuevos nodos aparecen en la paleta de la izquierda. El dashboard tiene cuatro niveles: ui-base (dirección base, por defecto
/dashboard), ui-page (páginas), ui-group (grupos dentro de una página) y widgets: gráfico, indicador, botón e interruptor. - Datos de la instalación. Conecta un nodo de entrada Victron (por ejemplo, el estado de carga de la batería) a un widget, y un interruptor del dashboard a un nodo de salida, como un relé. Contenido de la paleta Victron: nodos Victron.
- Deploy y visualización. Tras desplegar los cambios (Deploy), puedes abrir el dashboard desde el panel «Dashboard 2.0» situado a la derecha del editor. En el menú Venus OS Large del portal VRM aparecerá un mosaico adicional para acceder a distancia.
- Relé desde el dashboard. Primero configura el relé en modo manual (Manual) en el menú GX o en VictronConnect. Para que el interruptor muestre también los cambios realizados desde otro lugar, como el menú GX, conecta el estado del relé también a la entrada del interruptor. Así lo hace el ejemplo «Relay switching» de la wiki de Victron.
- Frecuencia de recepción de datos. Los nodos de entrada Victron envían un mensaje cada vez que cambia el valor. Si la opción «only changes» no está marcada, también envían el valor actual cada 5 segundos; así, el gráfico recibe un punto aunque no haya cambios.
- Dashboard antiguo. El paquete
node-red-dashboardestá obsoleto y, según el manual, ya no debe utilizarse. - Alternativa: uibuilder.
node-red-contrib-uibuilderofrece un control total sobre el diseño, pero no incluye widgets listos para usar: debes crear la interfaz en HTML, CSS y JavaScript. Es más flexible, pero mucho más difícil que Dashboard 2.0.
El manual de Venus OS Large desaconseja el antiguo paquete node-red-dashboard, pero los flujos de ejemplo con dashboard de la wiki de node-red-contrib-victron —«Monitor disk usage», «Relay switching (from the dashboard)» y «Threshold control»— todavía lo requieren (nodos ui_chart, ui_switch, ui_slider y complementos del antiguo dashboard). Estos flujos deben adaptarse a los widgets de Dashboard 2.0 o debes instalar el paquete antiguo, en contra de la recomendación del manual.
Acceso remoto a través de VRM
Los tres paneles —el editor de flujos, el dashboard de Node-RED y el panel de administración de Signal K— también están disponibles de forma remota a través del portal VRM.
- Instalación en VRM. El dispositivo GX debe enviar datos al portal VRM. Cómo conectarlo: monitorización en VRM.
- Menú Venus OS Large. Inicia sesión en VRM, selecciona la instalación y haz clic en el menú Venus OS Large. Los mosaicos del editor y de Signal K aparecen al activar estas funciones en el GX; el del dashboard, una vez desplegado.
- Inicio de sesión. Node-RED solicita la misma contraseña que en el acceso local: desde Venus OS 3.50, es la contraseña del perfil de seguridad con el usuario admin (detalles).
- Puede funcionar lentamente. El manual advierte de que la velocidad depende de la calidad de la conexión.
- Solo a través de VRM. El manual de Victron describe el acceso remoto a Node-RED únicamente a través de VRM; no explica el reenvío de puertos en el router.
Datos de VRM en los flujos
Algunos flujos necesitan datos que no están disponibles en el propio dispositivo GX, como la previsión de producción de los paneles o la irradiancia solar. Se obtienen de la base de datos del portal VRM a través de la API de VRM.
- Token de acceso. En el portal VRM, añade un nuevo token en la sección Access tokens. Una vez generado, no podrás volver a consultarlo: guárdalo inmediatamente en un gestor de contraseñas.
- Nodo VRM API. Victron VRM API node facilita el uso de la API en los flujos. Descripción completa de la API: documentación de la API de VRM.
- Previsiones. Para obtenerlas, se utiliza la llamada stats con uno de los atributos de la tabla; el manual indica que puede haber más atributos útiles.
| ID | Atributo | Datos |
|---|---|---|
| 1220 | vrm_pv_charger_yield_fc | previsión de producción de los reguladores solares (MPPT) |
| 1221 | vrm_pv_inverter_yield_fc | previsión de producción de los inversores FV |
| 1173 | vrm_solar_irradiance_fc | previsión de irradiancia solar |
| 1172 | vrm_solar_irradiance | irradiancia solar |
Solución lista para usar: Dynamic ESS — obtiene de VRM la consigna óptima para ESS, calculada a partir de los precios dinámicos de la energía y de la previsión de producción de los paneles. Su flujo también es un buen ejemplo de uso de la API de VRM.
El token es la llave de tu cuenta. Trátalo como una contraseña: antes de compartir un flujo, por ejemplo en el foro Victron Community, comprueba que el token no esté escrito directamente en un nodo function, change o inject.
Almacenamiento: partición de datos /data
Las paletas, los flujos, las credenciales y el contexto guardado se almacenan en la partición de datos del dispositivo GX. Así se conservan tras actualizar Venus OS, pero el espacio es limitado y Node-RED y Signal K pueden llenar por completo la partición.
- Al menos 30 MB libres — en todo momento, según el manual de Venus OS Large.
- Advertencia #46. Cuando el espacio libre cae por debajo del 5%, el GX muestra #46 Data partition full. El valor exacto aparece en el menú Settings → General → Modifications.
- Consecuencias de una partición llena. Venus OS deja de funcionar correctamente y Node-RED o Signal K no arrancan: el sistema no está preparado para quedarse sin espacio.
- No guardes archivos grandes en /data. No almacenes allí fotos, vídeos ni registros de gran tamaño. Guarda estos datos fuera del GX —en una base de datos, en la nube, mediante MQTT o FTP— y accede a ellos mediante una URL.
- Solo las paletas necesarias. Cada paleta adicional ocupa espacio. Elimina las que no uses con el botón remove en Manage palette.
Si la partición ya está llena — sigue este orden, empezando por la medida menos drástica:
- Registros de Signal K. Si usas Signal K, el manual recomienda empezar por eliminar sus registros y comprobar después si está activada la opción «Keep only most recent data log files» en Signal K → Server → Settings (activada de fábrica).
- Flujos y paletas. Elimina los flujos y las paletas instaladas adicionalmente. Si el editor no arranca, el archivo
venus-data-20-node-red-reset.tgzen una memoria USB elimina todo el contenido de /data/home/nodered/ —todos los flujos y paletas— y permite empezar de cero. Haz antes una copia de seguridad:venus-data-00-backup-data-partition.tgzcopia toda la partición /data en la memoria USB (cómo funciona). - Restablecimiento de fábrica del GX — según el manual del dispositivo GX. El inconveniente es que debes volver a configurar todo el dispositivo.
También puedes supervisar el espacio ocupado de la partición mediante un flujo. La wiki de Victron incluye dos ejemplos: «Monitor disk usage» (gráfico en el antiguo dashboard; consulta la discrepancia indicada arriba) y «Using MQTT to monitor disk space», que requiere activar el servicio MQTT on LAN (Plaintext) en el menú del GX y muestra el espacio libre únicamente en la ventana debug.
Variables de contexto y memoria flash
Las variables de contexto (context, flow, global) permiten a los flujos recordar valores, como un contador o el último estado. De fábrica, se almacenan solo en la RAM del dispositivo GX: desaparecen tras un reinicio o un corte de alimentación.
Para que se conserven tras un reinicio, debes guardarlas en disco mediante el archivo settings-user.js (consulta archivos de configuración):
module.exports = {
contextStorage: {
default: {
module: "localfilesystem",
config: {
// guardar cada 5 minutos
flushInterval: 300
}
}
}
}
- No guardes con demasiada frecuencia. El manual advierte de que las escrituras frecuentes desgastan la memoria flash: el ejemplo guarda el contexto cada 300 s, es decir, cada 5 minutos.
- Solo datos pequeños. No almacenes datos grandes ni binarios en el contexto: se guarda en la misma partición /data, de capacidad limitada.
- Después del cambio, reinicia Node-RED (reinicio).
Archivos de configuración: cuándo modificarlos
La gran mayoría de las instalaciones con Node-RED no necesitan —ni deberían— modificar estos archivos. Venus OS Large está diseñado para que no sea necesario recurrir a la línea de comandos. Para editarlos, necesitas acceso root por SSH (manual de Victron).
| Archivo | Aplicaciones | Edición |
|---|---|---|
/usr/ | ajustes básicos, que se leen primero | nunca: las actualizaciones de Venus OS lo sobrescriben |
/data/ | complementa el primer archivo; se conserva tras la actualización | no: está reservado a Victron |
/data/ | tus ajustes: puertos, seguridad, editor, contextStorage; se conserva tras la actualización | sí, con precaución: un error de sintaxis impide el arranque de Node-RED y, tras una actualización, un ajuste puede dejar de funcionar |
flows.json | todos los flujos (lo mismo que la exportación desde el menú) | no manualmente: riesgo de daños |
flows_cred.json | credenciales cifradas de los flujos (usuarios y contraseñas) | no: una modificación manual puede impedir el descifrado |
.config.*.json | ajustes del propio Node-RED | no; la exportación de flujos no los incluye |
lib/ | biblioteca de subflujos y funciones | segura para usuarios avanzados |
- Un solo bloque. Los ajustes de estos archivos deben estar dentro del bloque
module.exports = {}. Los distintos ajustes —por ejemplo, el puerto 1880 y contextStorage— se introducen en el mismo bloque, separados por comas. - settings.js se ignora. El archivo /data/home/nodered/settings.js no se lee, aunque lo crees: solo se utiliza settings-user.js en el directorio .node-red.
- Imágenes en el dashboard. Para que Node-RED sirva, por ejemplo, el fondo del dashboard, añade
httpStatic: "/data/home/nodered/www"a settings-user.js, crea ese directorio, asigna su propiedad al usuario nodered (chown -R nodered:nodered) y coloca allí el archivo, por ejemplo, image.png. En el dashboard, usa una referencia relativa:background-image: url(/image.png);. Esto también ocupa espacio en /data: utiliza solo archivos pequeños.
Reinicio tras cambiar los ajustes. Lo más sencillo es hacerlo desde el menú GX: Venus OS Large Features → Node-RED; desactívalo y vuelve a activarlo. Desde la línea de comandos:
# detener
svc -d /service/node-red-venus
# iniciar
svc -u /service/node-red-venus
# reiniciar
svc -t /service/node-red-venus
Si algo deja de funcionar tras un cambio, inicia Node-RED en modo seguro: arranca sin ejecutar los flujos (modo seguro).
Seguridad y permisos
- Contraseña. Desde Venus OS 3.50, el acceso a Node-RED está protegido por la contraseña del perfil de seguridad (Settings → General → Security Profile), con el usuario admin; en versiones anteriores, por la contraseña de Remote Console. Más información: contraseña del editor.
- Conexión cifrada. El editor utiliza https en el puerto 1881. El certificado es autofirmado —de ahí la advertencia del navegador—, pero el usuario y la contraseña no se transmiten por la red en texto plano.
- Puerto 1880 solo cuando sea necesario. Algunos nodos solo se conectan mediante http. Para ellos puedes habilitar también el puerto 1880 en todas las interfaces desde settings-user.js y después reiniciar Node-RED:
Es http sin cifrado, a diferencia del puerto 1881, así que actívalo solo si algún nodo lo requiere.module.exports = { // también http en el puerto 1880 uiHost: "::" } - Error EACCES al guardar un archivo. Desde Venus OS 2.90, Node-RED se ejecuta como usuario nodered, no como root, por lo que los flujos solo pueden leer y escribir archivos de ese usuario, normalmente dentro de /data/home/nodered/. En lugar de otra ruta, utiliza, por ejemplo,
/data/home/nodered/storage.txt. - Token de VRM y contraseñas en los flujos. Las credenciales que los nodos guardan como datos de acceso se almacenan en el archivo cifrado flows_cred.json. No introduzcas el token ni la contraseña directamente en los nodos function, change o inject: quedarían en el archivo sin cifrar flows.json y en todas las exportaciones.
Exporta todos los flujos (menú → Export → all flows) y guarda el archivo flows.json. La exportación no incluye los ajustes de Node-RED de los archivos .config.*.json; el archivo venus-data-00-backup-data-partition.tgz en una memoria USB contiene una copia completa de la partición /data.
Equipos afectados
Cerbo GXCentro de control del sistema y pasarela al portal VRM.
Ekrano GXCentro GX con pantalla táctil integrada de 7″.Fuentes
- Venus OS Large image: Signal K and Node-RED — dashboard, archivos de configuración, VRM API, preguntas frecuentes, acceso mediante VRM, partición de datos llenavictronenergy.com · EN
- node-red-contrib-victron — Example Flows (relé desde el dashboard, espacio ocupado en disco, control por umbrales)github.com · EN
- VRM API — documentaciónvictronenergy.com · EN
- FlowFuse Dashboard 2.0 — Getting started (instalación, ruta /dashboard, creación)dashboard.flowfuse.com · EN