Bonjour,
dans l’optique de l’hivernage de ma piscine, je cherche un moyen de récupérer l’heure de la température minimale prévue dans les 24 prochaines heures afin de m’en servir comme heure pivot dans le blueprint gestion de la filtration piscine avancé.
J’ai fait des test avec les intégrations Météo-France et Meteorologisk institutt (Met.no) mais je n’ai réussi à avoir un résultat probant.
En vous remerciant par avance de l’aide que vous pourrez m’apporter.
Cordialement
Tu dois crée un sensor qui te permet de récupérer les previsions.par heure (comme celui que tu dois certainement avoir pour les previsions par jours
Tu dois apres faire un helper template de type number. Il scan les températures minimale des x prochaines heure prevue par meteo france et ne garde que la plus basse.
Bonjour,
Le problème c’est que je ne trouve où récupérer l’information. j’ai bien des entités :
et les prévisions heure par heure :
mais je ne sais pas où trouver l’attribut adéquat dans aucune des deux intégrations:
Cordialement,
Il faut installer l’intégration API Météo France et créer un ‘sensor’ de prévision horaires.
Ensuite, dans les attributs tu as les prévisions toutes les 3 heures.
Il ne reste plus qu’à parser les températures futures et en déduire la plus froide …
C’est apparu quand il y a eu des changements des entité weather.
Il faut faire un template :
- trigger:
- platform: state
entity_id: weather.maville
- platform: time_pattern
hours: "/1"
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.maville
response_variable: hourly
sensor:
- name: Weather Forecast heure maville
unique_id: weather_forecast_heure_maville
state: "{{ now().isoformat() }}"
attributes:
forecast: "{{ hourly['weather.maville'].forecast }}"
availability: "{{ states('weather.maville') not in ['unknown', 'unavailable', 'none'] }}"
Bonjour,
J’ai suivi vos conseils qui m’ont permis d’avancer. Je vous en remercie tous les deux.
J’ai crée un fichier nommé meteo_hourly_sensors.yaml dans mon fichier packages où j’ai insérer le trigger suivant ainsi qu’un sensor récupérant les données sur 24 heures:
template:
- trigger:
- platform: state
entity_id: weather.mios
- platform: time_pattern
hours: "/1"
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.mios
response_variable: hourly
sensor:
# --- Capteur n°1 : Le capteur de stockage des attributs ---
- name: "Forecast Météo-France Horaire"
unique_id: forecast_meteo_france_hourly
state: "{{ now().isoformat() }}"
attributes:
forecast: "{{ hourly['weather.mios'].forecast }}"
availability: "{{ hourly['weather.mios'] is defined }}"
jusqu’ici tout va bien, le sensor récupère bien les données sur 24 heures:
C’est après que cela se complique. Avec l’aide de l’IA, j’ai essayé de créer deux autres capteurs qui récupère les données nécessaires, à savoir la température minimale et l’heure de celle-ci, toujours dans le même fichier:
# ====================================================================
# Capteur n°2 : Température Minimale dans les 24h
# ====================================================================
- name: "Température minimale 24h (Météo-France)"
unique_id: temp_min_24h_meteo_france
unit_of_measurement: "°C"
device_class: temperature
state: >
{% set all_forecast = state_attr('sensor.forecast_meteo_france_hourly', 'forecast') %}
{% if all_forecast %}
{# 1. Filtre les entrées futures par rapport à l'heure actuelle (ce filtre est facultatif car la liste est triée) #}
{# 2. SÉLECTIONNE les 24 premières entrées pour obtenir les prochaines 24h #}
{% set next_24h_temps = all_forecast[:24] | map(attribute='temperature') | list %}
{{ next_24h_temps | min | round(1) }}
{% else %}
unknown
{% endif %}
# L'availability est correcte car elle dépend du capteur de stockage.
availability: "{{ states('sensor.forecast_meteo_france_hourly') not in ['unknown', 'unavailable', 'none'] }}"
# ====================================================================
# Capteur n°3 : Heure de la Température Minimale dans les 24h
# ====================================================================
- name: "Heure minimale 24h formatée (Météo-France)"
unique_id: heure_temp_min_24h_meteo_france_formatee
state: >
{% set all_forecast = state_attr('sensor.forecast_meteo_france_hourly', 'forecast') %}
{% if all_forecast %}
{% set next_24h_forecast = all_forecast[:24] %}
{% set temps = next_24h_forecast | map(attribute='temperature') | list %}
{% set min_temp = temps | min %}
{# Trouve l'entrée qui correspond à la température minimale trouvée #}
{% set min_entry = next_24h_forecast | selectattr('temperature', 'eq', min_temp) | first %}
{# Convertit l'horodatage en heure:minute #}
{{ as_datetime(min_entry.datetime).astimezone(now().tzinfo).strftime('%H:%M') }}
{% else %}
unknown
{% endif %}
device_class: timestamp
availability: "{{ states('sensor.forecast_meteo_france_hourly') not in ['unknown', 'unavailable', 'none'] }}"
Malheureusement, les deux capteurs restent toujours en unavailable:
Auriez-vous une idée de l’erreur ?
En vous remerciant par avance,
Cordialement
Bonjour,
tu as du mettre les template sensor, dans la partie sensor du trigger template.
template:
- trigger:
***
action:
***
sensor:
***
alors qu’il faut les mettres dans la partie - sensor template
template:
- trigger:
***
action:
***
sensor:
***
- sensor:
# ====================================================================
# Capteur n°2 : Température Minimale dans les 24h
# ====================================================================
- name: "Température minimale 24h (Météo-France)"
unique_id: temp_min_24h_meteo_france
unit_of_measurement: "°C"
device_class: temperature
state: >
{% set all_forecast = state_attr('sensor.forecast_meteo_france_hourly', 'forecast') %}
{% if all_forecast %}
{# 1. Filtre les entrées futures par rapport à l'heure actuelle (ce filtre est facultatif car la liste est triée) #}
{# 2. SÉLECTIONNE les 24 premières entrées pour obtenir les prochaines 24h #}
{% set next_24h_temps = all_forecast[:24] | map(attribute='temperature') | list %}
{{ next_24h_temps | min | round(1) }}
{% else %}
unknown
{% endif %}
# L'availability est correcte car elle dépend du capteur de stockage.
availability: "{{ states('sensor.forecast_meteo_france_hourly') not in ['unknown', 'unavailable', 'none'] }}"
# ====================================================================
# Capteur n°3 : Heure de la Température Minimale dans les 24h
# ====================================================================
- name: "Heure minimale 24h formatée (Météo-France)"
unique_id: heure_temp_min_24h_meteo_france_formatee
state: >
{% set all_forecast = state_attr('sensor.forecast_meteo_france_hourly', 'forecast') %}
{% if all_forecast %}
{% set next_24h_forecast = all_forecast[:24] %}
{% set temps = next_24h_forecast | map(attribute='temperature') | list %}
{% set min_temp = temps | min %}
{# Trouve l'entrée qui correspond à la température minimale trouvée #}
{% set min_entry = next_24h_forecast | selectattr('temperature', 'eq', min_temp) | first %}
{# Convertit l'horodatage en heure:minute #}
{{ as_datetime(min_entry.datetime).astimezone(now().tzinfo).strftime('%H:%M') }}
{% else %}
unknown
{% endif %}
device_class: timestamp
availability: "{{ states('sensor.forecast_meteo_france_hourly') not in ['unknown', 'unavailable', 'none'] }}"
tester chez moi, ca fonctionne dans modèle :
une lecture de la doc pourra t’aider :
Bonjour,
Merci pour cette précision.
J’ai donc modifié mon fichier meteo_hourly_sensors.yaml comme tu me l’as expliqué:
template:
- trigger:
- platform: state
entity_id: weather.mios
- platform: time_pattern
hours: "/1"
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.mios
response_variable: hourly
sensor:
# --- Capteur n°1 : Le capteur de stockage des attributs ---
- name: "Forecast Météo-France Horaire"
unique_id: forecast_meteo_france_hourly
state: "{{ now().isoformat() }}"
attributes:
forecast: "{{ hourly['weather.mios'].forecast }}"
availability: "{{ hourly['weather.mios'] is defined }}"
- sensor:
# ====================================================================
# Capteur n°2 : Température Minimale dans les 24h
# ====================================================================
- name: "Température minimale 24h (Météo-France)"
unique_id: temp_min_24h_meteo_france
unit_of_measurement: "°C"
device_class: temperature
state: >
{% set all_forecast = state_attr('sensor.forecast_meteo_france_horaire', 'forecast') %}
{% if all_forecast %}
{% set next_24h_temps = all_forecast[:24] | map(attribute='temperature') | list %}
{{ next_24h_temps | min | round(1) }}
{% else %}
unknown
{% endif %}
availability: "{{ states('sensor.forecast_meteo_france_horaire') not in ['unknown', 'unavailable', 'none'] }}"
# ====================================================================
# Capteur n°3 : Heure de la Température Minimale dans les 24h
# ====================================================================
- name: "Heure minimale 24h formatée (Météo-France)"
unique_id: heure_temp_min_24h_meteo_france_formatee
state: >
{% set all_forecast = state_attr('sensor.forecast_meteo_france_horaire', 'forecast') %}
{% if all_forecast %}
{% set next_24h_forecast = all_forecast[:24] %}
{% set temps = next_24h_forecast | map(attribute='temperature') | list %}
{% set min_temp = temps | min %}
{% set min_entry = next_24h_forecast | selectattr('temperature', 'eq', min_temp) | first %}
{{ as_datetime(min_entry.datetime).astimezone(now().tzinfo).strftime('%H:%M') }}
{% else %}
unknown
{% endif %}
device_class: timestamp
availability: "{{ states('sensor.forecast_meteo_france_horaire') not in ['unknown', 'unavailable', 'none'] }}"
étrangement, lorsque j’applique le code dans l’éditeur du modèle, les résultats ont l’air cohérent comme les tiens:
Cela correspond aux données heure par heure;
Par contre, lorsque je regarde les attributs dans l’état actuel de l’entité :
L’entité horaire est en état inconnue.
J’ai encore dû rater quelque chose….
Cordialement,
je pense que c’est un souci avec le device_class. Test sans la ligne device_class dans ton sensor template.
SensorDeviceClass.TIMESTAMP Timestamp. Requires native_value to return a Python datetime.datetime object, with time zone information, or None.
un device class timestamp, doit retourner un état comme tel : 2025-12-03T18:00:00+00:00
Bonjour,
Effectivement, l’erreur venait bien de là. Tout est rentré dans l’ordre après le retrait de device_class: timestamp
Merci beaucoup à tous pour l’aide apporté.
En vous souhaitant une bonne journée.
Cordialement,
Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.










