Bonjour à tous,
Je vous partage ce tutoriel fait par Flapoly, pour récupérer les prévisions de pluie dans l’heure directement de l’api Météo France, pour tous ceux qui n’ont pas de couverture par l’intégration Météo France.
opened 09:22AM - 16 Sep 24 UTC
### Feedback
If you are using the home assistant « Météo France » https://www… .home-assistant.io/integrations/meteo_france integration, you may be part of the unlucky locations that do not have the 1 hour rain forecast reported by the integration. This is due to a historical setting used by this integration (setting “rain_product_available”) that looks no more accurate. Several persons have requested to have this integration updated to remove the check on this setting, but there is very low listening from integration maintainers on this request.
By default the 1 hour rain forecast is stored as part of a sensor named “`sensor.<city>_next_rain`”. That one is refreshed every 5mn.
So the proposal of this note is to guide you to provide a workaround and to create a sensor named “`sensor.<city>_next_rain_custom`” until Météo France integration Maintainers handle the improvement request.
### **Step 1) Ensure 1 hour forecast is really available.**
You have to ensure the hourly rain forecast is available on the “official” https://meteofrance.com/ web portal. Select your city and check there are accurate values for “Pluie dans l’heure” widget. If that one is not available, that means 1 hour rain forecast is not available for your location and no need to move ahead with this thread. But hopefully this is available now for almost most French cities…

### Step 2) Retrieve your city details (lat & lon)
You have to use Météo France API to get parameters for your city (in fact the longitude and latitude). Météo France API makes this task easy but using this web request:
`https://webservice.meteofrance.com/places?q=<CodePostal>&token=__Wj7dVSTjV9YGu1guveLyDq0g7S7TfTjaHBTPTpO0kj8__`
Replace the `<CodePostal>` by yours like city postal code (sample for Evian 74500)
Sample: `https://webservice.meteofrance.com/places?q=74500&token=__Wj7dVSTjV9YGu1guveLyDq0g7S7TfTjaHBTPTpO0kj8__`
and copy this URL to web browner (Edge, Chrome, …). Note: in this specific case Microsoft Edge rendering is much better and will allow you to directly target the correct values for “lat” and “lon”
```
{
"insee": "74119",
"name": "Évian-les-Bains",
"lat": 46.4004,
"lon": 6.5906,
"country": "FR",
"admin": "Rhône-Alpes",
"admin2": "74",
"postCode": "74500"
},
```
### Step 3) Confirm 1 hour rain forecast is working
Replace the `<lat>` and `<lon>` of the following url with the 2 values of “lat” and “lon”, you have collected in the previous step
`https://webservice.meteofrance.com/v3/rain?lat=<lat>lon=<lon>&token=__Wj7dVSTjV9YGu1guveLyDq0g7S7TfTjaHBTPTpO0kj8__`
in my sample:
`https://webservice.meteofrance.com/v3/rain?lat=46.4004&lon=6.5906&token=__Wj7dVSTjV9YGu1guveLyDq0g7S7TfTjaHBTPTpO0kj8__`
then copy this URL to web browner (Edge, Chrome, …). Note: in this specific case Microsoft Edge rendering is much better
you should get out output like:
```
"update_time": "2024-09-16T08:05:00.000Z",
[ . . . ]
"forecast": [
{
"time": "2024-09-16T08:20:00.000Z",
"rain_intensity": 1,
"rain_intensity_description": "Temps sec"
},
{
"time": "2024-09-16T08:25:00.000Z",
"rain_intensity": 1,
"rain_intensity_description": "Temps sec"
[ . . . ]
```
### Step 4) Create the` sensor.<city>_next_rain_custom`
You have now to edit home assistant configuration.yaml, and add the 2 following sections related to rest_command and template
Caution: Replace **ALL** the `<city>` by you location/town, and the `<lat>` and `<lon>` by the ones retrieved on previous step
Save the configuration file, check configuration and force a reload of home assistant (all details on howto perform these activities are available on other posts).
```
#
#
rest_command:
#
# Meteo France - <city> Previsions de pluie a 1 heure
<city>_next_rain_rest:
url: https://webservice.meteofrance.com/v3/rain?lat=<lat>&lon=<lon>&token=__Wj7dVSTjV9YGu1guveLyDq0g7S7TfTjaHBTPTpO0kj8__
method: GET
Template:
#
# MeteoFrance - <city>_next_rain
- trigger:
- platform: time_pattern
minutes: /5
- platform: homeassistant
event: start
action:
- service: rest_command.<city>_next_rain_rest
response_variable: next_rain_response
sensor:
- name: <City> Next rain Custom
unique_id: <city>_next_rain_custom
state: "{{ next_rain_response['status'] }}"
attributes:
last_evaluation: "{{ now().isoformat() }}"
forecast_time_ref: >
{%- set cancontinue = 0 -%}
{%- if next_rain_response['status'] == 200 -%}
{%- if next_rain_response['content'].update_time is defined -%}
{%- set cancontinue = 1 -%}
{%- endif -%}
{%- endif -%}
{%- if cancontinue == 1 -%}
{{ next_rain_response['content'].update_time }}
{%- else -%}
{%- if state_attr('sensor.<city>_next_rain_custom','forecast_time_ref') is none -%}
{{ now().isoformat() }}
{%- else -%}
{{ state_attr('sensor.<city>_next_rain_custom','forecast_time_ref') }}
{%- endif -%}
{%- endif -%}
1_hour_forecast: >
{# expected output: "{'5 min': 'Temps sec', '10 min': 'Pluie modérée',}" #}
{%- set cancontinue = 0 -%}
{%- if next_rain_response['status'] == 200 -%}
{%- if next_rain_response['content'].update_time is defined -%}
{%- set cancontinue = 1 -%}
{%- endif -%}
{%- endif -%}
{%- if cancontinue == 1 -%}
{%- set dref = as_datetime(next_rain_response['content'].update_time) -%}
{%- set forecasts = next_rain_response['content'].properties.forecast -%}
{%- if forecasts | count > 0 -%}
{%- set dref = as_datetime(forecasts[0].time) -%}
{%- endif -%}
{
{%- for forecast in (forecasts) -%}
{%- set d = as_datetime(forecast.time) -%}
{%- set dd = d - dref -%}
'{{ (dd.seconds / 60) | int }} min': '{{ forecast.rain_intensity_description }}',
{%- endfor -%}
}
{%- else -%}
{%- if state_attr('sensor.<city>_next_rain_custom','1_hour_forecast') is none -%}
{}
{%- else -%}
{{ state_attr('sensor.<city>_next_rain_custom','1_hour_forecast') }}
{%- endif -%}
{%- endif -%}
```
Check the values updated on this new sensor (every 5mn) by using the developer tools -> state and selecting the sensor “`sensor.<city>_next_rain_custom`”. The expected output should be similar to the following:
```
last_evaluation: "2024-09-16T10:35:00.261339+02:00"
forecast_time_ref: "2024-09-16T08:20:00.000Z"
1_hour_forecast:
0 min: Temps sec
5 min: Temps sec
10 min: Temps sec
15 min: Temps sec
20 min: Temps sec
25 min: Temps sec
35 min: Temps sec
45 min: Temps sec
55 min: Temps sec
```
### Step 5) Update Meteo France lovelace with s`ensor.<city>_next_rain_custom`
You can now update your Météo France Lovelace ( https://github.com/hacf-fr/lovelace-meteofrance-weather-card ) with this new sensor.
Using “show code editor” yaml editor – Of course replace `<city>` by your town/location.
```
[...]
one_hour_forecast: true
rainForecastEntity: sensor.<city>_next_rain_custom
[...]
```

PS: This screenshot is taken from the dev branch of this lovelace
https://github.com/hacf-fr/lovelace-meteofrance-weather-card/tree/dev
### Step 6) Check for update on Meteo France integration
Sooner or later the Meteo France integration should correct the missing `<city>_next_rain sensor`. So check on regular basis update on this integration and when you’ll get an official `<city>_next_rain`, jus discard all the above 😉.
### URL
https://www.home-assistant.io/integrations/meteo_france/
### Version
2024.9.1
### Additional information
_No response_
Depuis 3 ans que je suis sur HA, enfin, je peux avoir les prévisions de pluie qui n’a jamais été couvert par l’intégration Météo France.
Je pense que beaucoup d’utilisateur vont être content
Un grand merci a Flapoly, pour les explications
6 « J'aime »
Merci !
Peut-être t’as déjà recherché pourquoi l’intégration ne marche pas chez toi ? Car ça marche p.e. à Paris. C’est curieux si la source est là
Salut,
je suis du sud ( aude 11 ), c’est zone n’étais pas couverte. Mais depuis quelque temps, j’ai les prévisions pluie disponible sur le site Météo-France, mais pas dans l’intégration Météo-France.
Flapoly explique le problème :
vous faites peut-être partie des malchanceux qui n’ont pas la prévision de pluie à 1 heure rapportée par l’intégration. Cela est dû à un paramètre historique utilisé par cette intégration (paramètre « rain_product_available ») qui ne semble pas plus précis. Plusieurs personnes ont demandé à ce que cette intégration soit mise à jour pour supprimer la vérification de ce paramètre, mais il y a très peu d’écoute de la part des mainteneurs de l’intégration sur cette demande.
Par défaut, la prévision de pluie à 1 heure est stockée dans le cadre d’un capteur nommé « sensor.<city>_next_rain
». Celui-ci est rafraîchi toutes les 5 minutes.
La proposition de cette note est donc de vous guider pour fournir une solution de contournement et de créer un capteur nommé « sensor.<city>_next_rain_custom
» en attendant que les mainteneurs de l’intégration Météo France traitent la demande d’amélioration.
Peut-être que ça te parle, voir si un dev motivé pourrait faire un PR, pour l’intégration MF.
EDIT:
une issue est ouverte :
opened 07:23PM - 10 Sep 24 UTC
integration: meteo_france
### The problem
-Météo France attribute "rain_product_available" is obsolete … and no more mainatined by MeteoFrance. All french cities do have valid 1 hour rain forecast even if rain_product_available=0 !
Test in https://github.com/home-assistant/core/tree/dev/homeassistant/components/meteo_france/__init__.py line 79 should be removed
if coordinator_forecast.data.position.get("rain_product_available") == 1
### What version of Home Assistant Core has the issue?
core-2024.9.1
### What was the last working version of Home Assistant Core?
at least core-2023.x.x
### What type of installation are you running?
Home Assistant Core
### Integration causing the issue
_No response_
### Link to integration documentation on our website
https://www.home-assistant.io/integrations/meteo_france/
[meteo_france documentation](https://www.home-assistant.io/integrations/meteo_france)
[meteo_france source](https://github.com/home-assistant/core/tree/dev/homeassistant/components/meteo_france)
### Diagnostics information
_No response_
### Example YAML snippet
_No response_
### Anything in the logs that might be useful for us?
_No response_
### Additional information
Already reported similar issue
https://github.com/home-assistant/core/issues/90397
Salut
A quoi sa sert les prévisions a 1h dans l’Aude ? Il pleut 5 fois par ans
3 « J'aime »
Slt.
C’est pas trop le nombre de fois qui est important, mais là durée
Merci @WarC0zes
Faudrait que je regarde un peu plus leurs API, il n’autorise pas certaine région ou pays Européens, alors qu’il récupère les données de l’Europe
Je vais voir si/quand j’ai du temps. Je ne sais pas si enlever une contrôle est la solution, je dois me renseigner en détail
EDIT: si c’est si simple comme écrti, pourquoi il n’y avait pas un PR pour le fixer ?
je ne sais pas et je ne suis pas dev
1 « J'aime »
BBE
Septembre 23, 2024, 11:01
8
C’est probablement ce qui arrête un bon nombre d’entre nous.
Réussir à « bidouiller » un contournement dans HA à base de template etc, c’est une chose lorsqu’on a compris comment ça marche.
Mais « mettre les mains dans le cambouis » et proposer un PR, c’est une étape différente…
2 « J'aime »
Le soucis n’est probablement pas dans l’intégration mais dans l’api utilisé
L’api est pal mal mise-a-jour… j’ai pas du temps pour faire mieux que çe peitit analyse pour le moment. Peut-être mieux en Octobre
hacf-fr/meteofrance-api: Python client for Météo-France API. | Client python pour l’API Météo-France (github.com)
2 « J'aime »
Il ne faut pas déconner, il pleut des fois ( surtout au printemps et automne ). C’est sûr que ce n’est pas la Bretagne
On en parle de l’inondation dans l’Aude le vendredi 2 octobre 2020
1 « J'aime »
bastgau
Septembre 27, 2024, 4:26
11
Il n’a plus plu depuis ce jour là
bastgau
Septembre 27, 2024, 4:39
12
Je ne pense pas que ce soit un bogue de l’intégration, c’est la version de l’API utilisée qui renvoie une information erronée.
Il y a une PR #127665 pour HA.core afin de remedier ce problème.
1 « J'aime »
Bonjour @Flapoly
merci pour le PR
@vingerha , tu n’as plus besoin de trouver du temps pour le problème
Par contre la PR ne semble pas passer tous les tests
Cela ne semble cependant pas bloquant.
re-bonjour !
Après avoir cherché pendant une heure parce que mon sensor ne voulait pas s’afficher, j’ai compris que dans le code à coller dans config.yaml, il ne faut pas mettre de majuscule à « Template ». ^^
Le principal c’est que ça marche et bizarrement, maintenant j’ai toutes les options qui s’affichent (cf ma discussion dans la weather-card). Tant mieux.
Du coup je viens dire un grand merci à @Flapoly pour cet ajout, et un autre grand merci à @WarC0zes de m’avoir guidé vers cette discussion !
Bon, le hic c’est que chez moi le ciel est nuageux mais pas de pluie: meteo france me dit qu’il pleut… mais dans « pluie dans l’heure » juste en dessous il me dit que la pluie faible ne sera là que dans 50min.
Et pour le coup, un point pour weather.forecast qui me détecte bien quelques éclaircies, donc plus proche de la réalité.
En même temps météo france n’avait pas anticipé les méga-intempéries des bouches-du-Rhône hier: un problème d’algoritmes pour certains, un manque d’effectif pour d’autres (sources: journaux régionnaux), chacun défend sa paroisse.
steveHA:
Bon, le hic c’est que chez moi le ciel est nuageux mais pas de pluie: meteo france me dit qu’il pleut… mais dans « pluie dans l’heure » juste en dessous il me dit que la pluie faible ne sera là que dans 50min.
Et pour le coup, un point pour weather.forecast qui me détecte bien quelques éclaircies, donc plus proche de la réalité.
En même temps météo france n’avait pas anticipé les méga-intempéries des bouches-du-Rhône hier: un problème d’algoritmes pour certains, un manque d’effectif pour d’autres (sources: journaux régionnaux), chacun défend sa paroisse.
Oula, il ne faut pas se fier à météo france hein !
c’est approximatif, on dira
rien de mieux qu’un baromètre
Pour la météo « en cours » ça va finir par un capteur de température + capteur de pluie sur le balcon.
Il y a 15 jour j’ai commandé un capteur de pluie solaire à 15€ sur ali-express (en forme de tournesol au cas où ça intéresse quelqu’un), pas encore installé par manque de temps, si ça fait le taf ça finira comme ça.