Changement dans integration de météo France

Mon problème

Bonjour, je viens de mettre à jour Home assistant et j’ai un soucis avec météo France.
je pouvais lire la valeur des prévisions via cette variable : attributes.forecast[0].temperature

Cela ne semble plus possible avec la nouvelle version de HA, pourtant les valeurs sont bien, là mais impossible d’y acceder.

Dans state la plupart des infos ne sont pas dispo :

Une idée ?

Ma configuration


HA version 2024.4.4


Bonjour,
regarde sur ce post 2023.9 forecast meteo france, contournement pour les cartes - #34 par WarC0zes

Faut passer par un template maintenant pour récuperer le forecast dans une entité.

3 « J'aime »

Bonjour, je viens de faire la mise à jour de mon fichier de config. Et ca marche, enfin presque…
En fait si je modifie configuration.yaml avec ce code, tout marche correctement.
Par contre si je met ce code dans template.yaml, j’ai un message d’erreur.

dans configuration.yaml j’ai bien cette ligne : template: !include template.yaml
Comment faut il définir ce code dans ce fichier ? J’ai tenté de virer le « template: » quand je suis dans template.yaml mais toujours avec une erreur

Montre le message d’erreur que ta ?

dans le configuration.yaml:

template:
  - trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.xxxxx
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour XXXX
        unique_id: weather_forecast_jour_XXXXX
        state: "{{ daily['weather.xxxxx'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.xxxxx'].forecast }}"

Si tu veut utiliser un fichier template.yaml.

dans ton configuration.yaml, tu ajoute la ligne template: !include template.yaml
Tu créer un fichier template.yaml dans /config/

Dans le template.yaml, tu ecrit telle quelle:

  - trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.xxxxx
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour XXXX
        unique_id: weather_forecast_jour_XXXXX
        state: "{{ daily['weather.xxxxx'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.xxxxx'].forecast }}"

En fait j’ai déjà des templates définis dans ce fichier, et ca marche bien. Ces templates n’ont pas de trigger définis.
Dans template.yaml j’ai directement le champ sensor :

sensor:
  - name: "Puissance PAC"
    unit_of_measurement: "W"
    state: >
      {% set Pchauffe = states('sensor.owon_pc321_power_l1') | int %}
      {% set Peau = states('sensor.owon_pc321_power_l2') | int %}
      {{ (Pchauffe - Peau) }}
  - name: "Energie PAC jour"
    unit_of_measurement: "kWh"
    state: >
      {% set Echauffe = states('sensor.energie_jour_pac_eau') | float %}
      {% set Eeau = states('sensor.energie_chauffe_eau') | float %}
      {{ (Echauffe - Eeau) }}

Si je rajoutes les lignes pour le forecast comme tu les as écrites, j’ai une erreur de verif du yaml :
Configuration errors
Error loading /config/configuration.yaml: while parsing a block mapping
in « /config/template.yaml », line 1, column 3
expected , but found ‹  ›
in « /config/template.yaml », line 6, column 5

c’est - sensor:.

la structure:

# Example configuration.yaml entry with two sections
template:
  # Define state-based template entities
  - sensor:
      ...
  - binary_sensor:
      ...

  # Define trigger-based template entities
  - trigger:
      ...
    sensor:
      ...
    binary_sensor:
      ...

Oui je viens de le voir !
mais j’ai toujours un soucis.
Ca marche bien tant que je ne met pas les lignes trigger, toujours le meme message d’erreur :

- sensor:
  - name: "Puissance PAC"
    unit_of_measurement: "W"
    state: >
      {% set Pchauffe = states('sensor.owon_pc321_power_l1') | int %}
      {% set Peau = states('sensor.owon_pc321_power_l2') | int %}
      {{ (Pchauffe - Peau) }}
  - name: "Energie PAC jour"
    unit_of_measurement: "kWh"
    state: >
      {% set Echauffe = states('sensor.energie_jour_pac_eau') | float %}
      {% set Eeau = states('sensor.energie_chauffe_eau') | float %}
      {{ (Echauffe - Eeau) }}
- trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.biviers
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour biviers
        unique_id: weather_forecast_jour_biviers
        state: "{{ daily['weather.biviers'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.biviersx'].forecast }}"
- trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: hourly
        target:
          entity_id: weather.biviers
        response_variable: hourly
    sensor:
      - name: Weather Forecast Heure biviers
        unique_id: weather_forecast_heure_biviers
        state: "{{ hourly['weather.biviers'].forecast[0].condition }}"
        attributes:
          forecast: "{{ hourly['weather.biviers'].forecast }}"

attention au espaces!

exemple:

  - sensor:
      - name: "Transmission Down Speed"
        unit_of_measurement: "kB/s"
        state: "{{ states('sensor.transmission_down_speed')|float * 1024 }}"
        availability: "{{ is_number(states('sensor.transmission_down_speed')) }}"

      - name: "Transmission Up Speed"
        unit_of_measurement: "kB/s"
        state: "{{ states('sensor.transmission_up_speed')|float * 1024 }}"
        availability: "{{ is_number(states('sensor.transmission_up_speed')) }}"

  - trigger:
      - platform: time_pattern
        hours: /1
      - platform: homeassistant
        event: start
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.biviers
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour biviers
        unique_id: weather_forecast_jour_biviers
        state: "{{ daily['weather.biviers'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.biviersx'].forecast }}"

je crois que j’ai trouvé, probleme d’indentation avec action et trigger

un grand merci, j’ai tout compris !

1 « J'aime »