Saltar al contenido
Todo Automatizado
Automatización Industrial

Cómo Crear un Dashboard de Producción en Tiempo Real con n8n y Grafana

Monta un dashboard de producción en tiempo real con n8n y Grafana paso a paso. Conecta tus datos de planta, automatiza alertas y visualiza KPIs industriales.

Carlos 18 min de lectura

Cómo Crear un Dashboard de Producción en Tiempo Real con n8n y Grafana

Tu planta genera miles de datos cada hora. Temperaturas, ciclos de máquina, piezas producidas, paradas no planificadas, consumos energéticos. El problema no es la falta de datos — es que nadie los ve hasta que alguien abre un Excel tres días después.

Un dashboard de producción en tiempo real con n8n y Grafana cambia las reglas del juego. En lugar de enterrar los datos en hojas de cálculo, los tienes en una pantalla que respira: KPIs actualizados al segundo, alertas automáticas cuando algo se sale de rango y un historial visual que te permite detectar tendencias antes de que se conviertan en problemas.

En este tutorial vas a montar un sistema completo. Desde la captura de datos en planta hasta el dashboard final en Grafana, pasando por n8n como motor de automatización que orquesta todo el flujo. Sin depender de plataformas caras ni de integradores que te cobran por cada cambio.

Por qué n8n y Grafana y no un SCADA tradicional

Antes de meternos en harina, la pregunta obvia: ¿por qué no usar directamente un SCADA con su propio dashboard?

Porque un SCADA te ata. Licencias caras, personalización limitada y un ecosistema cerrado donde cada cambio pasa por el integrador. Si quieres añadir un dato de tu ERP al dashboard de producción, prepara la cartera.

La combinación n8n + Grafana ofrece ventajas que un SCADA tradicional no puede igualar:

  • Coste cero en licencias: ambos son open source. Pagas solo tu servidor (un VPS de 10-15€/mes sobra para empezar).
  • Flexibilidad total: n8n conecta con más de 400 servicios. ¿Quieres meter datos del ERP, del CRM, del parte de producción en Google Sheets y del sensor IoT? Todo en el mismo flujo.
  • Personalización sin código: Grafana permite crear paneles arrastrando y soltando. n8n orquesta con nodos visuales. Tu equipo de producción puede modificar dashboards sin llamar a un programador.
  • Escalabilidad horizontal: empiezas con una línea de producción y escalas a toda la fábrica sin rehacer nada.
  • Alertas inteligentes: n8n puede enviar avisos por Telegram, email, WhatsApp o incluso llamar a una API cuando detecta anomalías. Grafana complementa con alertas nativas sobre umbrales.

Esto no significa que tires tu SCADA. El SCADA sigue controlando la máquina. Pero para visualización, análisis y decisiones de negocio, n8n + Grafana juegan en otra liga.

Arquitectura del sistema: cómo encajan las piezas

Antes de instalar nada, entiende la arquitectura. Así sabrás qué hace cada componente y por qué está ahí.

┌─────────────┐     ┌──────────────┐     ┌──────────────┐     ┌───────────┐
│  Fuentes de │────▶│     n8n      │────▶│  PostgreSQL  │────▶│  Grafana  │
│    datos    │     │ (orquestador)│     │  / InfluxDB  │     │(dashboard)│
└─────────────┘     └──────────────┘     └──────────────┘     └───────────┘
  PLC / SCADA          Transforma,          Almacena            Visualiza
  Sensores IoT         filtra, enruta       series de           KPIs en
  APIs / ERP           y programa           tiempo              tiempo real
  Google Sheets        la ingesta

Componentes principales

  1. Fuentes de datos: todo lo que genera información en tu planta. PLCs vía OPC-UA o Modbus, sensores IoT con MQTT, datos de tu ERP por API REST, hojas de cálculo con partes manuales.
  2. n8n (orquestador): recoge datos de todas las fuentes, los transforma al formato correcto, los enruta a la base de datos y dispara alertas cuando algo se sale de los límites.
  3. Base de datos (PostgreSQL o InfluxDB): almacena los datos en formato de series temporales. PostgreSQL funciona bien para empezar; InfluxDB es mejor si manejas millones de puntos por día.
  4. Grafana (visualización): lee la base de datos y pinta dashboards en tiempo real. Paneles con gráficos, gauges, tablas y mapas de calor.

La clave está en n8n como pegamento. Sin él, tendrías que programar un script para cada fuente de datos, gestionar cron jobs, manejar errores y reintentos manualmente. n8n hace todo eso con nodos visuales y una interfaz que cualquier técnico puede entender.

Qué necesitas antes de empezar

Vamos al grano. Para seguir este tutorial necesitas:

  • Un servidor con Docker instalado: puede ser un VPS (Hetzner, OVH, DigitalOcean — desde 5€/mes), una Raspberry Pi 4 en planta o tu propio servidor local. Mínimo 2 GB de RAM y 20 GB de disco.
  • Docker y Docker Compose: para levantar todo el stack en contenedores. Si no lo tienes, instálalo siguiendo la guía oficial.
  • Acceso a tus datos de producción: al menos una fuente. Puede ser un sensor MQTT, una API REST de tu SCADA, un Google Sheet con partes de producción o incluso un archivo CSV que se actualiza periódicamente.
  • Conocimientos básicos de n8n: si nunca has usado n8n, te recomiendo leer primero nuestra guía de primeros pasos con n8n.

No necesitas saber programar. Todo lo que vas a hacer es configurar nodos en n8n y paneles en Grafana.

Paso 1: Levantar el stack con Docker Compose

Vamos a montar n8n, PostgreSQL y Grafana en un solo archivo docker-compose.yml. Copia esto en tu servidor:

version: "3.8"

services:
  postgres:
    image: postgres:16
    container_name: prod-postgres
    environment:
      POSTGRES_USER: produccion
      POSTGRES_PASSWORD: tu_password_seguro
      POSTGRES_DB: produccion_db
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    restart: unless-stopped

  n8n:
    image: n8nio/n8n:latest
    container_name: prod-n8n
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=produccion_db
      - DB_POSTGRESDB_USER=produccion
      - DB_POSTGRESDB_PASSWORD=tu_password_seguro
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=tu_password_n8n
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    container_name: prod-grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=tu_password_grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    depends_on:
      - postgres
    restart: unless-stopped

volumes:
  postgres_data:
  n8n_data:
  grafana_data:

Levanta todo con:

docker compose up -d

En menos de un minuto tendrás los tres servicios corriendo. Verifica con docker compose ps que los tres contenedores están en estado running.

Accede a cada servicio:

  • n8n: http://tu-servidor:5678
  • Grafana: http://tu-servidor:3000
  • PostgreSQL: puerto 5432 (no tiene interfaz web, se accede por n8n o un cliente SQL)

Paso 2: Crear la tabla de datos de producción

Antes de que n8n empiece a inyectar datos, necesitas la estructura en PostgreSQL. Abre n8n, crea un workflow nuevo y añade un nodo Postgres con esta query:

CREATE TABLE IF NOT EXISTS produccion_datos (
    id SERIAL PRIMARY KEY,
    timestamp TIMESTAMPTZ DEFAULT NOW(),
    linea VARCHAR(50) NOT NULL,
    maquina VARCHAR(100) NOT NULL,
    metrica VARCHAR(100) NOT NULL,
    valor NUMERIC(12,4) NOT NULL,
    unidad VARCHAR(20),
    turno VARCHAR(10)
);

CREATE INDEX idx_produccion_timestamp ON produccion_datos (timestamp DESC);
CREATE INDEX idx_produccion_linea ON produccion_datos (linea, maquina);
CREATE INDEX idx_produccion_metrica ON produccion_datos (metrica, timestamp DESC);

Esta estructura es intencionalmente flexible. La columna metrica te permite almacenar cualquier tipo de dato (temperatura, velocidad, piezas, OEE) sin modificar la tabla. Los índices aceleran las consultas que Grafana hará miles de veces al día.

Ejecuta el nodo una vez y ya tienes tu tabla lista.

Tabla complementaria para paradas

Las paradas de producción merecen su propia tabla porque tienen estructura diferente — inicio, fin, duración y causa:

CREATE TABLE IF NOT EXISTS produccion_paradas (
    id SERIAL PRIMARY KEY,
    inicio TIMESTAMPTZ NOT NULL,
    fin TIMESTAMPTZ,
    duracion_min NUMERIC(8,2),
    linea VARCHAR(50) NOT NULL,
    maquina VARCHAR(100),
    tipo VARCHAR(30) NOT NULL, -- 'planificada', 'averia', 'cambio_formato', 'falta_material'
    causa TEXT,
    resuelta BOOLEAN DEFAULT FALSE
);

Paso 3: Configurar n8n para capturar datos de producción

Aquí es donde n8n demuestra su potencia. Vamos a crear workflows que capturen datos de diferentes fuentes y los inyecten en PostgreSQL de forma automática.

Workflow 1: Captura de datos vía MQTT (sensores IoT)

Si tus sensores publican datos por MQTT (algo habitual con ESP32, Raspberry Pi o pasarelas IoT industriales), este workflow los recoge en tiempo real:

  1. Nodo MQTT Trigger: conéctalo a tu broker MQTT (Mosquitto, HiveMQ, EMQX). Suscríbete al topic planta/+/+/datos donde los comodines representan línea y máquina.
  2. Nodo Function (transformación): parsea el mensaje MQTT y extrae los campos relevantes.
// Parsear topic MQTT: planta/linea1/compresor01/datos
const parts = $input.item.json.topic.split('/');
const payload = JSON.parse($input.item.json.message);

return {
  json: {
    linea: parts[1],
    maquina: parts[2],
    metrica: payload.metrica || 'temperatura',
    valor: parseFloat(payload.valor),
    unidad: payload.unidad || '°C',
    turno: calcularTurno() // función auxiliar
  }
};

function calcularTurno() {
  const hora = new Date().getHours();
  if (hora >= 6 && hora < 14) return 'mañana';
  if (hora >= 14 && hora < 22) return 'tarde';
  return 'noche';
}
  1. Nodo Postgres: inserta el dato transformado en la tabla produccion_datos.
INSERT INTO produccion_datos (linea, maquina, metrica, valor, unidad, turno)
VALUES ($1, $2, $3, $4, $5, $6)

Activa el workflow y cada vez que un sensor publique un mensaje MQTT, n8n lo procesará y almacenará automáticamente.

Workflow 2: Captura periódica desde API REST (SCADA/MES)

Si tu SCADA expone una API REST (la mayoría de los modernos lo hacen — Ignition, WinCC OA, AVEVA), puedes configurar un polling periódico:

  1. Nodo Cron/Schedule Trigger: cada 30 segundos o cada minuto, según la resolución que necesites.
  2. Nodo HTTP Request: llama a la API de tu SCADA.
GET https://tu-scada.local/api/v1/variables?grupo=produccion
Headers: Authorization: Bearer {{$env.SCADA_TOKEN}}
  1. Nodo Function: transforma la respuesta al formato de tu tabla.
  2. Nodo Postgres: inserta los datos.

Workflow 3: Ingesta manual desde Google Sheets

Para datos que aún se registran manualmente (partes de producción en papel digitalizados, controles de calidad), puedes usar Google Sheets como puente:

  1. Nodo Schedule Trigger: cada 5 minutos.
  2. Nodo Google Sheets: lee las filas nuevas del parte de producción.
  3. Nodo Function: filtra las filas ya procesadas (usa una columna “procesado” como flag).
  4. Nodo Postgres: inserta y marca como procesado.

Este enfoque híbrido es pragmático. No tienes que digitalizar toda la planta de golpe — empiezas con lo que ya tienes y vas migrando fuentes a medida que los resultados justifican la inversión.

Paso 4: Conectar Grafana con PostgreSQL

Con los datos fluyendo a PostgreSQL, toca darles forma visual en Grafana.

Añadir el datasource

  1. Entra en Grafana (http://tu-servidor:3000).
  2. Ve a Connections → Data Sources → Add data source.
  3. Selecciona PostgreSQL.
  4. Configura la conexión:
    • Host: postgres:5432 (si están en la misma red Docker) o localhost:5432.
    • Database: produccion_db.
    • User: produccion.
    • Password: tu contraseña.
    • TLS/SSL Mode: disable (en red interna; habilítalo si el acceso es remoto).
  5. Haz clic en Save & Test. Debe mostrar “Database Connection OK”.

Crear el dashboard principal

Ahora viene la parte divertida. Ve a Dashboards → New Dashboard y empieza a añadir paneles.

Panel 1: Producción en tiempo real (gráfico de líneas)

Añade un panel con esta query:

SELECT
  timestamp AS time,
  valor,
  linea || ' - ' || maquina AS metric
FROM produccion_datos
WHERE metrica = 'piezas_hora'
  AND timestamp > NOW() - INTERVAL '8 hours'
ORDER BY timestamp ASC

Configura:

  • Visualization: Time series.
  • Refresh: cada 10 segundos.
  • Y-axis label: “Piezas/hora”.

Este panel te muestra la velocidad de producción de cada máquina en las últimas 8 horas. Un vistazo y sabes si alguna línea está por debajo de su rendimiento esperado.

Panel 2: OEE en vivo (gauge)

El OEE (Overall Equipment Effectiveness) es el KPI rey de producción. Calcula disponibilidad × rendimiento × calidad:

WITH datos AS (
  SELECT
    linea,
    -- Disponibilidad: tiempo productivo / tiempo planificado
    (1 - COALESCE(
      (SELECT SUM(duracion_min) FROM produccion_paradas
       WHERE produccion_paradas.linea = pd.linea
       AND inicio > NOW() - INTERVAL '8 hours'
       AND tipo != 'planificada')
    , 0) / 480.0) AS disponibilidad,
    -- Rendimiento: producción real / producción teórica
    (SELECT AVG(valor) FROM produccion_datos
     WHERE metrica = 'piezas_hora'
     AND produccion_datos.linea = pd.linea
     AND timestamp > NOW() - INTERVAL '8 hours')
    / NULLIF((SELECT MAX(valor) FROM produccion_datos
     WHERE metrica = 'capacidad_nominal'
     AND produccion_datos.linea = pd.linea), 0) AS rendimiento,
    -- Calidad: piezas buenas / piezas totales
    (SELECT AVG(valor) FROM produccion_datos
     WHERE metrica = 'ratio_calidad'
     AND produccion_datos.linea = pd.linea
     AND timestamp > NOW() - INTERVAL '8 hours') / 100.0 AS calidad
  FROM produccion_datos pd
  WHERE timestamp > NOW() - INTERVAL '8 hours'
  GROUP BY linea
)
SELECT
  linea,
  ROUND((disponibilidad * rendimiento * calidad) * 100, 1) AS oee
FROM datos

Configura el gauge con umbrales de color:

  • Verde: > 85% (clase mundial).
  • Amarillo: 60-85% (aceptable, margen de mejora).
  • Rojo: < 60% (problema serio).

Panel 3: Paradas activas (tabla)

Un panel de tabla que muestra las paradas en curso y las más recientes:

SELECT
  inicio,
  COALESCE(fin, NOW()) AS fin,
  ROUND(EXTRACT(EPOCH FROM (COALESCE(fin, NOW()) - inicio)) / 60, 1) AS minutos,
  linea,
  maquina,
  tipo,
  causa,
  CASE WHEN fin IS NULL THEN '🔴 Activa' ELSE '✅ Resuelta' END AS estado
FROM produccion_paradas
WHERE inicio > NOW() - INTERVAL '24 hours'
ORDER BY inicio DESC
LIMIT 20

Las paradas activas (sin fin) aparecen primero y en rojo. Tu equipo de mantenimiento ve de un vistazo qué máquinas están paradas y por qué.

Panel 4: Tendencia de temperatura (gráfico con alertas)

SELECT
  timestamp AS time,
  valor AS temperatura,
  maquina AS metric
FROM produccion_datos
WHERE metrica = 'temperatura'
  AND timestamp > NOW() - INTERVAL '4 hours'
ORDER BY timestamp ASC

Añade líneas de umbral en Grafana:

  • Línea amarilla a 75°C (precaución).
  • Línea roja a 90°C (alarma).

Si la temperatura cruza el umbral, Grafana puede disparar una alerta. Pero la alerta inteligente la gestionas desde n8n — sigue leyendo.

Paso 5: Alertas automáticas con n8n

Visualizar datos está muy bien. Pero el valor real viene cuando el sistema te avisa antes de que tengas que mirar la pantalla.

Workflow de alerta: temperatura fuera de rango

  1. Nodo Schedule Trigger: cada 60 segundos.
  2. Nodo Postgres: consulta las últimas lecturas de temperatura.
SELECT linea, maquina, valor AS temperatura, timestamp
FROM produccion_datos
WHERE metrica = 'temperatura'
  AND timestamp > NOW() - INTERVAL '2 minutes'
  AND valor > 80
ORDER BY valor DESC
  1. Nodo IF: si hay resultados, procede. Si no, no hace nada.
  2. Nodo Telegram (o email/WhatsApp): envía el aviso.
⚠️ ALERTA TEMPERATURA

Máquina: {{$json.maquina}}
Línea: {{$json.linea}}
Temperatura: {{$json.temperatura}}°C
Hora: {{$json.timestamp}}

Revisar inmediatamente.
  1. Nodo Postgres (log): registra la alerta para evitar duplicados en los próximos 15 minutos.

Workflow de alerta: OEE por debajo del objetivo

Mismo patrón pero con la query de OEE. Si una línea cae por debajo del 65% durante más de 30 minutos, n8n avisa al jefe de producción. Puedes añadir lógica de escalado: si en 60 minutos no se resuelve, avisa al director de planta.

Workflow de resumen de turno

Al final de cada turno (a las 14:00, 22:00 y 06:00), un workflow recopila los KPIs del turno y envía un informe:

📊 RESUMEN TURNO MAÑANA (06:00-14:00)

Línea 1: 1.247 piezas | OEE 87.3% | 0 paradas
Línea 2: 983 piezas | OEE 72.1% | 1 parada (23 min - cambio formato)
Línea 3: 1.102 piezas | OEE 81.5% | 0 paradas

Total: 3.332 piezas | OEE medio: 80.3%

Este resumen sustituye las reuniones de cambio de turno de 20 minutos. El responsable del turno siguiente sabe exactamente cómo dejó la planta su predecesor.

Optimizar el rendimiento del dashboard

Con datos fluyendo cada pocos segundos, el rendimiento importa. Unos ajustes para que tu dashboard no se arrastre:

Retención de datos

No necesitas datos con resolución de segundos de hace seis meses. Configura un workflow en n8n que agregue datos antiguos:

-- Agregar datos de más de 7 días a promedios horarios
INSERT INTO produccion_datos_historico (timestamp, linea, maquina, metrica, valor_avg, valor_min, valor_max)
SELECT
  date_trunc('hour', timestamp),
  linea, maquina, metrica,
  AVG(valor), MIN(valor), MAX(valor)
FROM produccion_datos
WHERE timestamp < NOW() - INTERVAL '7 days'
GROUP BY date_trunc('hour', timestamp), linea, maquina, metrica;

-- Eliminar datos granulares ya agregados
DELETE FROM produccion_datos WHERE timestamp < NOW() - INTERVAL '7 days';

Programa este workflow para ejecutarse cada noche a las 03:00.

Variables de Grafana para filtrar

Añade variables al dashboard para que los operarios puedan filtrar por línea, máquina o turno sin crear paneles duplicados:

  1. Ve a Dashboard Settings → Variables.
  2. Añade variable linea con query: SELECT DISTINCT linea FROM produccion_datos WHERE timestamp > NOW() - INTERVAL '24 hours'.
  3. Añade variable turno con valores: mañana, tarde, noche.
  4. En cada panel, modifica la query añadiendo AND linea = '$linea' y AND turno = '$turno'.

Ahora el jefe de la Línea 2 ve solo sus datos sin distracciones, mientras que el director de planta mantiene la vista global.

Refresh inteligente

No pongas todos los paneles en refresh de 5 segundos. Diferencia:

  • Datos críticos (temperatura, alertas activas): refresh cada 10 segundos.
  • KPIs acumulados (OEE, piezas totales): refresh cada 60 segundos.
  • Historial y tendencias: refresh cada 5 minutos.

Esto reduce la carga sobre PostgreSQL y evita que el dashboard parpadee constantemente.

Caso práctico: dashboard para una línea de envasado

Para aterrizar todo esto, veamos un ejemplo real. Imagina una línea de envasado de aceite con tres máquinas: llenadora, etiquetadora y encajadora.

Datos que capturamos

FuenteMétricaFrecuenciaMétodo de captura
PLC llenadora (Modbus TCP)Botellas/hora, temperatura aceite, nivel depósitoCada 10 segn8n → HTTP a gateway Modbus
Sensor IoT etiquetadora (MQTT)Etiquetas aplicadas, errores de lecturaEventon8n → MQTT Trigger
PLC encajadora (OPC-UA)Cajas/hora, peso cajaCada 30 segn8n → nodo OPC-UA community
Google Sheets (parte manual)Mermas, incidencias calidadCada 5 minn8n → Google Sheets

Dashboard resultante

El dashboard final tiene seis paneles organizados en dos filas:

Fila superior (KPIs instantáneos):

  • Gauge OEE de la línea (actualizado cada minuto).
  • Stat panel: botellas producidas hoy vs objetivo.
  • Stat panel: paradas acumuladas hoy (minutos).

Fila inferior (detalle):

  • Gráfico de líneas: velocidad de cada máquina (últimas 4 horas).
  • Gráfico de barras: distribución de paradas por tipo (últimas 24 horas).
  • Tabla: últimas 10 alertas o eventos relevantes.

El resultado es un dashboard que el operario de línea entiende en tres segundos y que el director de planta consulta en su móvil desde casa a las 22:00 para verificar que el turno de noche arrancó bien.

Seguridad: proteger tu dashboard de producción

Estás exponiendo datos de producción en una interfaz web. Unas medidas básicas pero imprescindibles:

  • No expongas Grafana a internet sin VPN o Tailscale. Si necesitas acceso remoto, usa una VPN o servicios como Tailscale que crean una red privada segura. Nunca pongas el puerto 3000 directamente expuesto en un servidor público.
  • Roles y permisos en Grafana: crea usuarios con rol “Viewer” para los operarios y “Editor” solo para responsables de turno. El admin es para ti.
  • Credenciales seguras: cambia las contraseñas por defecto del docker-compose.yml antes de poner nada en producción. Usa un gestor de contraseñas.
  • Red segregada: si es posible, mantén los dispositivos OT (PLCs, sensores) en una VLAN separada. n8n actúa como pasarela entre la red OT y la red IT donde vive Grafana.

Si quieres profundizar en seguridad OT, tenemos una guía completa de ciberseguridad industrial que cubre este tema en detalle.

Errores frecuentes y cómo evitarlos

Después de montar varios dashboards industriales, estos son los fallos que veo repetirse:

1. Demasiados paneles, poca información útil. Un dashboard con 30 paneles no es útil — es ruido. Empieza con 4-6 paneles que respondan las preguntas que tu equipo se hace cada día: ¿estamos cumpliendo el objetivo? ¿Hay alguna máquina parada? ¿Cómo va la calidad?

2. No definir qué es “tiempo real” para tu caso. ¿Necesitas datos cada segundo o cada minuto? Para la mayoría de procesos industriales, un dato cada 30 segundos es más que suficiente. Actualizar cada segundo genera carga innecesaria sin aportar valor.

3. Ignorar la retención de datos. Sin una política de agregación, tu base de datos crecerá sin control. En seis meses tendrás millones de filas y queries que tardan 10 segundos. Implementa la agregación desde el primer día.

4. No involucrar al equipo de producción. El mejor dashboard es inútil si nadie lo mira. Involucra a los jefes de turno y operarios desde el diseño: ¿qué quieren ver? ¿Qué les ayudaría a tomar mejores decisiones? Un dashboard diseñado con el equipo se usa; uno diseñado sin ellos se ignora.

5. Olvidar las alertas. Un dashboard sin alertas es un cuadro bonito que solo funciona si alguien lo está mirando. Configura las alertas desde el principio — son las que realmente evitan problemas.

Siguientes pasos: escalar tu sistema

Una vez que tengas el dashboard funcionando para una línea, las posibilidades se multiplican:

  • Añadir más líneas: duplica los workflows de n8n para cada línea nueva. Los paneles de Grafana se adaptan automáticamente con las variables.
  • Integrar con tu ERP: conecta n8n a SAP, Odoo o Navision para cruzar datos de producción con pedidos y costes. El dato de “piezas/hora” cobra otro sentido cuando lo acompañas del coste por pieza.
  • Machine Learning: exporta los datos históricos para entrenar modelos de mantenimiento predictivo. Grafana soporta datasources de ML que pueden superponer predicciones sobre datos reales.
  • Pantallas en planta: monta un monitor grande en cada línea con el dashboard de Grafana en modo kiosk. Los operarios ven sus KPIs sin tocar un ordenador.

Conclusión

Montar un dashboard de producción en tiempo real con n8n y Grafana no requiere presupuestos enormes ni equipos de desarrollo. Con un servidor, Docker y un par de tardes de configuración, tienes un sistema que empresas con departamentos de IT de 20 personas envidiarían.

Lo importante no es la tecnología — es la decisión de dejar de mirar Excel a las tres de la tarde y empezar a ver tu planta en directo. Los datos ya están ahí. Solo necesitan una pantalla donde mostrarse.

¿Necesitas ayuda para montar tu dashboard de producción industrial? En automatizatodo.com diseñamos e implementamos soluciones de monitorización adaptadas a cada planta. Contacta con nosotros y te mostramos un demo con tus propios datos.

#n8n #grafana #dashboard producción #tiempo real #industria 4.0 #OEE #monitorización industrial

Sigue leyendo