[Tutorial] Recibir notificación 2 días antes de un día rojo Tempo (previsiones + días restantes, sin clave API)

Hola a todos,

Me llamo Jean-Pierre y soy parte del equipo de Calendario Tempo, un sitio que publica el color Tempo del día, predicciones hasta 15 días y una API JSON gratuita. Lo digo desde el principio para que quede claro: es nuestra API la que utilizo en este tutorial.

¿Por qué este tutorial?

Para hoy y mañana, Gladys ya gestiona muy bien Tempo con la integración nativa (widget y acción « Condición sobre EDF-Tempo »). Manténganla, hace el trabajo.

Lo que falta es ver más allá de mañana. El color oficial solo se publica el día anterior hacia las 11 h, lo que deja poco tiempo para organizarse (lavadoras, calentadores de agua, carga del coche, precalentamiento…). La idea aquí:

  • recibir un mensaje cuando un día rojo es probable en J+2;
  • recibir cada lunes el número de días rojos y blancos restantes en la temporada.

Todo con la acción « Hacer una solicitud HTTP », sin Node-RED, sin MQTT y sin clave API.

Requisitos previos

  • Gladys 5 (las acciones utilizadas existen en la 5.1).
  • Un servicio de mensajería configurado (Telegram, ntfy…) si quieres recibir los mensajes en otro lugar que no sea la conversación de Gladys.
  • Eso es todo: la solicitud sale del servidor Gladys, no hay nada que instalar.

Pequeño recordatorio sobre el funcionamiento de las escenas: las acciones de un mismo bloque se ejecutan en paralelo. Coloque cada acción en un nuevo bloque, una debajo de la otra, para que la solicitud esté terminada antes de la condición.


Escena 1: alerta « día rojo probable en 2 días »

1. Cree la escena, por ejemplo « Tempo: alerta J+2 ».

2. Disparador: « Disparo programado », Todos los días, 18:00.

3. Bloque 1: acción « Hacer una solicitud HTTP »

  • Método: GET
  • URL: https://www.calendrier-tempo.fr/api/predictions
  • Ningún encabezado

Haga clic en « Probar ». La respuesta se muestra y Gladys crea automáticamente las variables a partir del JSON. Este paso es indispensable para poder elegir las variables a continuación.

La respuesta se parece a esto (extracto):

{
  "status": "ok",
  "predictions": [
    { "date": "2026-10-07", "couleur_predite": "BLEU", "probabilite_rouge": 0.0, "horizon": "J0", "confirmed": true },
    { "date": "2026-10-08", "couleur_predite": "BLEU", "probabilite_rouge": 0.0, "horizon": "J-1", "confirmed": true },
    { "date": "2026-10-09", "couleur_predite": "BLEU", "probabilite_bleu": 0.987, "probabilite_blanc": 0.013, "probabilite_rouge": 0.0, "horizon": "J-2", "confirmed": false }
  ]
}

La lista comienza hoy: [0] = hoy, [1] = mañana, [2] = pasado mañana, y así sucesivamente hasta J+15. Las probabilidades van de 0 a 1. Cuando el color oficial es conocido, confirmed pasa a true.

4. Bloque 2: acción « Condición sobre variables »

  • Variable: data.predictions.[2].probabilite_rouge
  • Operador: mayor o igual
  • Valor: 0.5

Con un valor más bajo (0.3, por ejemplo), será notificado con más frecuencia, con más falsas alarmas. Usted ajusta.

5. Bloque 3 (opcional): acción « Definir una variable »

Para mostrar un porcentaje legible en lugar de 0.62:

  • Nombre: riesgo
  • Tipo: Calculada
  • Valor: round( + la variable data.predictions.[2].probabilite_rouge (escriba {{ para elegirla) + * 100)

6. Bloque 4: acción « Enviar un mensaje »

Escriba {{ para insertar las variables. Por ejemplo:

:red_circle: Tempo: día rojo probable el [data.predictions.[2].date] (riesgo [riesgo] %). Buen momento para avanzar en lavar y calentar agua.

Para probar de inmediato (en octubre, todo es azul): reemplace temporalmente probabilite_rouge por probabilite_bleu en la condición, ejecute la escena manualmente, verifique el mensaje, luego vuelva a poner probabilite_rouge.

Variantes:

  • Vigilar J+2 a J+4 de una vez: en el mismo bloque « Condición sobre variables », agregue condiciones con « + OU » en [3] y [4]. Ajuste entonces el texto del mensaje (« en los próximos días »), ya que solo muestra una fecha.
  • Ser notificado de los días blancos: mismo principio con probabilite_blanc.

Escena 2: la víspera y el día J, la integración nativa es suficiente

Una vez que se publique el color oficial, utilice la « Condición sobre EDF-Tempo » de Gladys (Mañana, Día rojo) seguida, por ejemplo, de « Apagar los enchufes » para un calefactor o un calentador de agua. La documentación oficial de Gladys lo explica muy bien, no lo copio.


Escena 3: el stock de días restantes cada lunes

1. Disparador: « Disparo programado », Cada semana, lunes, 08:00.

2. Bloque 1: « Hacer una solicitud HTTP », GET en https://www.calendrier-tempo.fr/api/remaining, luego « Probar ».

{
  "status": "ok",
  "remaining": { "ROUGE": 22, "BLANC": 43, "BLEU": 262 },
  "totals": { "ROUGE": 22, "BLANC": 43, "BLEU": 300 },
  "season_start": "2026-09-01",
  "season_end": "2027-08-31"
}

3. Bloque 2: « Enviar un mensaje », por ejemplo:

Tempo: quedan [data.remaining.ROUGE] días rojos y [data.remaining.BLANC] días blancos esta temporada.


Bueno saber

  • Son predicciones: solo el color publicado por EDF tiene validez. Cuanto más lejana sea la fecha, mayor será la incertidumbre, por eso paso por la probabilidad en lugar de un color seco.
  • Las respuestas están en caché 2 minutos en nuestro lado: una o dos solicitudes por día son más que suficientes.
  • Los colores oficiales que retransmitimos (/api/today, /api/tomorrow) provienen de api-couleur-tempo.fr. Las predicciones y el conteo de días se calculan de nuestro lado.
  • Gratis, sin inscripción ni clave. Todos los campos están descritos aquí: documentación de la API Tempo
  • Los días rojos solo pueden caer entre el 1 de noviembre y el 31 de marzo: es el buen momento para poner en marcha la escena.

Si prueba y algo falla, dígamelo aquí, corregiré el tutorial. Y si le falta un campo para Gladys, estaré encantado.

Jean-Pierre, del equipo Calendario Tempo

¡Bienvenido @JeanPierre_Tempo a Gladys y gracias por el tutorial!

De mi parte, para el pronóstico, uso https://open-dpe.fr/assets/tempo_days_lite.json con recuperación dos veces al día:

[
  {
    "date": "2026-10-09",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-10",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-11",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-12",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-13",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-14",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-15",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-16",
    "couleur": "bleu",
    "probability": 1
  },
  {
    "date": "2026-10-17",
    "couleur": "bleu",
    "probability": 1
  }
]

Luego verifico si al menos una de las probabilidades es diferente de 1 para enviarme un mensaje todos los días con todas las probabilidades.

Y para los días restantes, estoy en https://www.api-couleur-tempo.fr/api/stats

{
  "periode": "2026-2027",
  "bissextile": false,
  "dernierJourInclus": "2026-10-08",
  "joursBleusConsommes": 38,
  "joursBlancsConsommes": 0,
  "joursRougesConsommes": 0,
  "joursBleusRestants": 262,
  "joursBlancsRestants": 43,
  "joursRougesRestants": 22
}

Voy a probar el tuyo en paralelo :slight_smile:

¡Gracias @mutmut por la bienvenida, y qué bien que estés probando en paralelo!

Buena idea vigilar las probabilidades. Nuestra /api/predictions también da la probabilidad de cada color, hasta J+15. Y todas nuestras predicciones pasadas son públicas, errores incluidos, en la página de historial de predicciones, práctico para comparar este invierno.

No dudes en preguntar si tienes preguntas o comentarios.

Jean-Pierre, del equipo Calendrier Tempo