Prévision météo de la journée

Salut,

Jusqu’à présent, j’utilisais en partie AccuWeather pour récupérer les témpératures maximum de la journée via les sensors du type ‹ sensor.home_realfeel_temperature ›) }}°C et {{states(‹ sensor.home_realfeel_temperature_max_day_0 ›.

Mais avec le changement de politique, ces infos ne sont plus exploitables.
Savez-vous comment le faire via une autre intégration ?
Météofrance semble le donné


Mais je ne vois rien dans les attributs ou sensors.

Pourquoi pas la carte météo France (et l’integration officielle) :

Pour les min max, voir message dessous…

Avec une petite recherche on voit que @WarC0zes a déjà fourni une solution:

pour le jour en cour:

pour les forecast :

1 « J'aime »

Bonjour,
Pour ma part j’aime bien pirate weather et ses 109 entités ! :wink:

Merci pour le retour. Mais je galère à mettre en place le template. Le sensor n’apparait pas.

sensor:
  - name: "Météo France Température Max Jour"
    unique_id: meteo_france_temp_max_jour
    state: >
      {{ daily['weather.maison'].forecast[0].temperature | float(0) }}
    unit_of_measurement: "°C"
    device_class: temperature
    availability: >
      {{ states('weather.maison') not in ['unknown', 'unavailable', 'none'] }}

J’ai installé l’intégration Pirate Weather, mais je n’arrive pas à avoir les temp high et low.

# you can also get a sensor data
sensor:
  - platform: pirateweather
    api_key: kcOGKqKrh22ObRUkpdNdRyR4BUr5CKDe
    scan_interval: "00:15:00"
    monitored_conditions:
      - temperature
      - precip_probability
      - precip_type
      - humidity
      - cloud_cover
      - nearest_storm_distance
      - precip_intensity
      - wind_speed
      - apparent_temperature
      - temperature_high
      - temperature_low
      - apparent_temperature_high
      - apparent_temperature_low

Bonjour,
tu dois faire un template trigger en 1er.

template:
  - trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.maison
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour Maison
        unique_id: weather_forecast_jour_maison
        state: "{{ daily['weather.maison'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.maison'].forecast }}"
        availability:  "{{ states('weather.maison') not in ['unknown', 'unavailable', 'none'] }}"

Après tu fais un sensor template pour récupérer le temp max ou min.

template:
  - sensor: 
     - name: temp max
       unique_id: temp_max
       state:  "{{ state_attr('sensor.weather_forecast_jour_maison','forecast')[0].temperature | float(0) }}"
     - name: temp min
       unique_id: temp_min
       state:  "{{ state_attr('sensor.weather_forecast_jour_maison','forecast')[0].templow | float(0) }}"
    

J’utilise l’organisation via un dossier template, et des sous-fichiers par sensors, de même pour les automations.
J’ai donc un fichier template max_temp.yaml, comme cela :


Mais pas mal d’erreurs. Et cela me retourne :

Après modification, voici le fichier tempalte :

- trigger:
    - platform: event
      event_type: update_forecast
  sensor:
    - name: "Weather Forecast Jour Maison"
      unique_id: weather_forecast_jour_maison
      state: "{{ trigger.event.data.forecast[0].condition }}"
      attributes:
        forecast: "{{ trigger.event.data.forecast }}"
    - name: "Temp Max Maison"
      unique_id: temp_max_maison
      state: "{{ trigger.event.data.forecast[0].temperature | float(0) }}"
    - name: "Temp Min Maison"
      unique_id: temp_min_maison
      state: "{{ trigger.event.data.forecast[0].templow | float(0) }}"

Et l’automation :

- id: "173886513856"
  alias: "Récupération prévisions météo maison"
  description: "Met à jour le forecast météo toutes les heures et au démarrage"
  trigger:
    - platform: time_pattern
      hours: "/1"
    - platform: homeassistant
      event: start
  action:
    - service: weather.get_forecasts
      data:
        type: daily
      target:
        entity_id: weather.maison
      response_variable: meteo
    - event: update_forecast
      event_data:
        forecast: "{{ meteo['weather.maison'].forecast }}"

Les erreurs c’est a cause de VSCode, faut pas en tenir compte.
Mais comment tu utilises les fichiers YAML, avec packages ?

Euh, pourquoi une automatisation ?
je n’ai pas parlé d’automatisation :thinking:

tu dois faire comme telle :

  - trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.maison
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour Maison
        unique_id: weather_forecast_jour_maison
        state: "{{ daily['weather.maison'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.maison'].forecast }}"
        availability:  "{{ states('weather.maison') not in ['unknown', 'unavailable', 'none'] }}"

  - sensor: 
     - name: temp max
       unique_id: temp_max
       state:  "{{ state_attr('sensor.weather_forecast_jour_maison','forecast')[0].temperature | float(0) }}"
     - name: temp min
       unique_id: temp_min
       state:  "{{ state_attr('sensor.weather_forecast_jour_maison','forecast')[0].templow | float(0) }}"
    

Pour les fichiers YAML sans des sous répertoires, j’ai suivis le tuto : Répartir le fichier configuration.yaml en plusieurs fichiers
Ce qui fait que j’ai une architecture comme cela :


Je suis passé par une automation, car je n’ai pas réussis via le trigger.

Bonsoir @WarC0zes

Tu ma aidé il y a quelques jours pour cette même programmation, je voudrais également avoir les infos de températures min et max d’aujourdh’ui mais ca me remonte en “inconnu” :

# templates.yaml

# Ce bloc unique va se déclencher, récupérer les prévisions, et créer TOUS les capteurs météo d'un coup.
- trigger:
    - platform: time_pattern
      hours: "/1" # Se déclenche toutes les heures
    - platform: homeassistant
      event: start # Se déclenche au démarrage
  action:
    # On appelle le service pour obtenir les prévisions quotidiennes UNE SEULE FOIS.
    - service: weather.get_forecasts
      data:
        type: daily
      target:
        entity_id: weather.XXX
      # On stocke le résultat dans la variable "daily" qui sera disponible pour TOUS les capteurs ci-dessous.
      response_variable: daily

  sensor:
    # --- Capteur n°1 : Le capteur principal qui stocke toutes les prévisions ---
    - name: "Weather Forecast Jour Maison"
      unique_id: weather_forecast_jour_maison
      state: "{{ daily['weather.XXX'].forecast[0].condition }}" # L'état est la condition d'aujourd'hui
      attributes:
        forecast: "{{ daily['weather.XXX'].forecast }}" # L'attribut contient TOUTES les prévisions
      availability: "{{ states('weather.XXX') not in ['unknown', 'unavailable', 'none'] }}"

    # --- Capteur n°2 : Température MAXIMALE pour demain ---
    - name: "Température maximale demain"
      unique_id: temp_max_demain_XXX
      # On utilise la MÊME variable "daily" et la MÊME source "weather.sales"
      state: "{{ daily['weather.XXX'].forecast[1].temperature }}" # [1] = demain
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement
      icon: mdi:thermometer-chevron-up

    # --- Capteur n°3 : Température MINIMALE pour demain ---
    - name: "Température minimale demain"
      unique_id: temp_min_demain_XXX
      state: "{{ daily['weather.XXX'].forecast[1].templow }}" # [1] = demain
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement
      icon: mdi:thermometer-chevron-up


    # --- Capteur n°4 : Température MAXIMALE pour aujourd'hui ---
    - name: "Température maximale aujourd'hui"
      unique_id: temp_max_today_XXX
        state: "{{ daily['weather.XXX'].forecast[0].temperature }}" # [0] = today
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement
      icon: mdi:thermometer-chevron-up

    # --- Capteur n°5 : Température MINIMALE pour aujourd'hui ---
    - name: "Température minimale aujourd'hui"
      unique_id: temp_min_today_XXX
      state: "{{ daily['weather.XXX'].forecast[0].templow }}" # [0] = today
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement
      icon: mdi:thermometer-chevron-up

Est ce que j’ai fais quelque chose de mal ?

Edit : j’ai rien dis ca marche, il fallait attendre la MAJ toute les heures…

1 « J'aime »

Ce sujet a été automatiquement fermé après 60 jours. Aucune réponse n’est permise dorénavant.