Saltearse al contenido

Crear una cascada horaria de THHN_1

Este ejemplo responde una pregunta concreta de planta:

Pregunta real de plantaReal plant question

¿Cómo fue subiendo o bajando el sensor THHN_1 hora por hora, desde su valor inicial hasta el valor final?

FuenteSource
robotic.sensor_data
TiempoTime
hora · promedio horario
MétricaMetric
SUM(aporte)
RangoRange
24 horas hasta la lectura más reciente

Una cascada es útil cuando no solo quieres ver el nivel del sensor, sino explicar el recorrido: dónde aumentó, dónde disminuyó y en qué valor terminó.

Qué vamos a construir

La tabla original guarda una columna por sensor. Primero usaremos SQL Lab para obtener cuatro columnas más fáciles de graficar:

ColumnaSignificado
horaInicio de cada bloque horario.
sensorNombre legible del sensor: THHN_1.
valorPromedio de THHN_1 durante esa hora.
aporteCambio respecto de la hora anterior. En la primera fila es el valor inicial.

Gracias a esa última regla, la suma de todos los aportes conduce desde el valor inicial hasta el valor final.

1. Preparar los cambios en SQL Lab

  1. Abre SQL Lab.
  2. Elige la base Aurora MySQL (Data API) y el esquema robotic.
  3. Pega y ejecuta esta consulta:
SELECT
actual.hora,
'THHN_1' AS sensor,
actual.valor,
CASE
WHEN anterior.valor IS NULL THEN actual.valor
ELSE actual.valor - anterior.valor
END AS aporte
FROM (
SELECT
FROM_UNIXTIME(
FLOOR(UNIX_TIMESTAMP(`timestamp`) / 3600) * 3600
) AS hora,
AVG(`THHN_1`) AS valor
FROM `robotic`.`sensor_data`
WHERE `timestamp` >= (
SELECT DATE_SUB(MAX(`timestamp`), INTERVAL 24 HOUR)
FROM `robotic`.`sensor_data`
)
AND `THHN_1` IS NOT NULL
GROUP BY hora
) AS actual
LEFT JOIN (
SELECT
FROM_UNIXTIME(
FLOOR(UNIX_TIMESTAMP(`timestamp`) / 3600) * 3600
) AS hora,
AVG(`THHN_1`) AS valor
FROM `robotic`.`sensor_data`
WHERE `timestamp` >= (
SELECT DATE_SUB(MAX(`timestamp`), INTERVAL 24 HOUR)
FROM `robotic`.`sensor_data`
)
AND `THHN_1` IS NOT NULL
GROUP BY hora
) AS anterior
ON anterior.hora = DATE_SUB(actual.hora, INTERVAL 1 HOUR)
ORDER BY actual.hora;
SQL Lab con la consulta horaria de THHN_1 ejecutada y filas visibles
La consulta ya devolvió hora, sensor, valor y aporte; por eso está lista para convertirse en una fuente de gráfica.

2. Comprobar antes de graficar

No continúes hasta confirmar que:

  • hay una fila por cada hora esperada;
  • hora está en orden ascendente;
  • valor y aporte contienen números;
  • la primera fila usa su propio valor como aporte;
  • las filas siguientes calculan valor actual − valor anterior.

3. Guardar la fuente virtual

Desde los resultados de SQL Lab, guarda la consulta como un dataset virtual. Un nombre claro para este ejemplo es:

robotic.cascada_THHN_1

Esto conserva la preparación en SQL y deja la pantalla Explorar enfocada en la visualización.

4. Configurar la cascada

Abre el dataset guardado y selecciona Gráfico de cascada. Configura:

ControlValor
Eje Xhora
Granularidad temporalHora
MétricaSUM(aporte)
Límite de filas1000

Pulsa Actualizar gráfico y espera a que aparezcan las barras y el conteo de filas.

Gráfico de cascada de THHN_1 con aumentos verdes, disminuciones rojas y total final gris
Ejemplo terminado: cada barra explica el cambio de una hora y la última barra resume el valor final.

5. Leer el resultado en lenguaje humano

  • Verde: THHN_1 aumentó respecto de la hora anterior.
  • Rojo: THHN_1 disminuyó.
  • Altura de la barra: magnitud del cambio, no el valor absoluto de esa hora.
  • Gris al final: valor al que llegó el sensor después de acumular todos los cambios.

En la captura se observa una secuencia de aumentos y disminuciones, con cambios especialmente grandes alrededor del tramo de la tarde. Para obtener una cifra exacta de una hora, coloca el cursor sobre su barra; no la estimes solo por la altura.

Resultado esperadoExpected result

Puedes contar la historia completa de THHN_1: su punto de partida, cada variación horaria y el valor final, sin confundir los cambios con las lecturas absolutas.

Cuando el resultado esté validado, continúa con guardar la gráfica y añadirla a un panel.