External integration: Meteo France

What kind of triggers do you imagine?

Yes, it will be easier if you give me some examples.

I just thought I could trigger actions based on the next 24-hour forecast, but on second thought, it’s not really useful. So I’m withdrawing my request and sorry for the trouble!!

Don’t worry about bothering me… on the contrary, the more complete the requests are, the easier they are to add.

After that, I always have in mind adding devices in the weather integration…

@Chris75,

I had Claude work on this for you and here’s the result:

The next version of the Météo France integration takes advantage of a new feature in Gladys 5.1: an integration can now add its own triggers and actions in the scene editor. Here’s what’s coming.

:high_voltage: 5 new triggers

  • Imminent rain: the Météo France radar announces rain within the hour (filterable by intensity: light, moderate, heavy)
  • End of rain: the current rain stops
  • Frost forecast: the forecast for the next 24 hours drops to 0 °C or -5 °C
  • Extreme heat forecast: it rises to 30 °C or 35 °C
  • Strong wind forecast: gusts reach 60, 80 or 100 km/h

Each trigger provides a summary ready to send, for example « Moderate rain forecast: -2 °C expected tomorrow at 06:00. ». It also provides the numerical values (minutes before rain, temperature, peak time…) for your messages.

:puzzle_piece: 4 new actions

  • Get the forecast for a day (today → D+7): temperatures, sky, rain, wind, UV, sunrise and sunset
  • Get the rain for the next few hours (1 to 24 h): dry or not, total
  • Get the rain in the hour: the radar forecast, minute by minute
  • Get the alert: level, current phenomena, official bulletin

If you have ideas for other triggers, thresholds to adjust, use cases… Don’t hesitate! :slightly_smiling_face:

Great! Claude is really good!!
And indeed, I’m really satisfied with these new triggers/actions: the problem is that I can’t test them because I just noticed that in a scene, if no trigger is activated, then the variables are not filled?
As for possible improvements:

  • regarding levels: it would be great to have an adjustable threshold instead of fixed values? If that’s not possible, then add the following values:
    wind: 20, 40 frost: -10 temperature: 25°
  • new widget: hourly forecast for the next 24 hours
  • new widget: forecast for the next 15 days

For info, I couldn’t test it because it was late yesterday.
For my part, there’s one thing I don’t like too much because there’s no selector for choosing the house… but that would be a limitation on Gladys’s side. I need to investigate…

Regarding the points you mentioned @Chris75, I’ll take care of them over the weekend. I’ll keep you posted when I make progress.

@Chris75,

For triggers, this is normal: the variables of a trigger ({{triggerEvent.data.…}}) are only filled when it actually starts. When you launch the scene manually, there is no event, so they remain empty. This is how Gladys works for all triggers, not just for Météo France.

To retrieve data, add an action « Météo France · Get … » (forecast, rain, alert). Its results are filled even in manual launch. You retrieve them in the following actions by typing {{ in a text field, for example in « Send a message ».


For levels, I can do something, a list but that you can still manually modify the threshold you want.

For widgets, we have limitations in Gladys:

  • Each widget can only contain one main element: a chart, a list of cards, or an image. Up to 6 numerical values and a status block of a maximum of 10 lines can be added to it.
  • The list of cards shows a maximum of 8 lines, or 12 in grid view. It is therefore impossible to have 15 days, or 24 hours, with an icon per line.
  • The chart accepts 4 curves of 300 points, but without icons and with a single unit per chart.
  • Images must be in PNG, JPEG, or WebP. The Météo France icons are in SVG and should be converted to PNG at build time.

Personally, I am not at all a fan of adding hourly weather or 15-day forecasts in the integration widgets due to these limitations. I would prefer that it be directly in the widget integrated into Gladys.
I would make a dedicated PR for this, but I cannot promise that it will be in place before Pierre-Gilles’ vacation.
I would also make a PR so that weather integrations can expose devices.

Noted!

First tests:
Gladys widget


Variables returned:

Météo France data:

Unless I’m mistaken, there is a problem with the wind speed and gusts

Wind and gusts: it was indeed a bug

Météo France provides wind speed in m/s, and the integration read it as km/h. Your comparison shows it well: the 5 to 6 m/s forecast is about 20 km/h, and the 12 m/s gusts about 43 km/h, which matches what Météo France’s site displays.

The Gladys widget displayed the correct value (with the conversion, we can never have the same value as already explained because Météo France provides wind speed in m/s without decimals), because it performs the conversion itself. But everything else was skewed:

  • the « Get a day’s forecast » action provided wind and gusts about 3.6 times too low;
  • the « Strong wind announced » trigger could never be triggered.

Thanks in advance for your future test. A strange thing I couldn’t identify is why you have no value after gust!

Adjustable thresholds: done

For the Freezing, Heatwave, and Strong Wind triggers, the level list now includes « Custom Threshold ». You enter your value in the field just below: -10 °C for freezing, 25 °C for heat, 20 or 40 km/h for wind… A few rules:

  • integers only, in increments of 5 for wind;
  • always in °C and km/h;
  • leave this field blank with any other level than « Custom Threshold ».

Features of the next version

Triggers:

  • Ice announced: rain on a surface near or below 0 °C in the next 24 hours, with two levels, risk or likely;
  • Snow announced: in the next 24 hours, with the probability and rain-snow limit;
  • Thunderstorm announced: thunderstorm or hail in the next 12 hours;
  • High UV announced: UV index of the upcoming day (6, 8, 11, or custom threshold).

Actions:

  • Get frost risk: for the next morning, up to 10 a.m., based on the dew point and frost point, taking clouds and wind into account;
  • Get ice risk: same principle;
  • Get weather for an hour: for example, tomorrow at 8 a.m., with the temperature, feels like, rain, wind and its direction, and a summary ready to send.

Example « frost alert » scene: trigger every day at 6 p.m. → « Get frost risk » → « Continue only if » Level ≥ 1 → message with the Summary.

Here is my feedback:

  • the wind speed is now correct, but the « gust » variable is still not filled
  • custom thresholds work
  • I couldn’t test the triggers!
  • the « summary » variable returns nothing

It’s getting better… strange about the gusts because on my end I do have a value.
I’ll keep you posted when I find the cause.

Message received:
Screenshot 2026-09-29 130945

and on the Météo-France website: no rain forecast!

No, this is clearly not normal.

I just checked and actually, it’s normal.

Can you give me your complete scene because there is a mix of variables in your text?

For the imminent rain trigger, only the variables below are available

If you add multiple triggers and the other triggers haven’t emitted anything, for example strong wind, it’s normal to have empty variables. You need to separate the scenes.

Then, the comparison with the Meteo France website, I prefer to compare with the API query responses.
An effective comparison would be to give me the API return JSON, I already gave you the query format earlier and send it to me at the same time as the message you receive.

Ok, I just understood why it’s empty.

So do I need to create a scene per trigger?

Yes, that’s the best if you want to use the variables, otherwise you’ll have blanks.

I’m coming to the triggers I’ve tested in part:

  • imminent rain trigger: ok
  • thunderstorm trigger: ok
  • high heat trigger: not ok! I set the threshold to 20° but it never triggers even though it’s well above 20°

I haven’t tested the other triggers

Thanks for your feedback.
I’m looking into it as much as possible for the trigger that didn’t work.