Problème avec du Template pour avoir la température maximum de la journée

D’accord, mais je suppose que ce n’est pas aussi simple si je venais simplement a supprimer les lignes précedentes ?

  - platform: template
    sensors:
      day_max_temp:
        friendly_name: "Max.temperature"
        unit_of_measurement: "°C"
        value_template: >
     #     {% set format = '%Y-%m-%dT%H:%M:%S+00:00' %}
     #   {% set start = now().replace(hour=0,minute=0,second=0, microsecond=0) %}
     #  {% set end = (start + timedelta(days=1)) | timestamp_custom(format, false) %}
     #     {% set start = start | timestamp_custom(format, false) %}
          {{ state_attr('weather.ville', 'forecast') | selectattr('datetime', '>=', start) | selectattr('datetime','<=', end) | map(attribute='temperature') | list | max }}

  - platform: template
    sensors:
      day_min_temp:
        friendly_name: "Min.temperature"
        unit_of_measurement: "°C"
        value_template: >
       #   {% set format = '%Y-%m-%dT%H:%M:%S+00:00' %}
       #  {% set start = now().replace(hour=0,minute=0,second=0, microsecond=0) %}
       #   {% set end = (start + timedelta(days=1)) | timestamp_custom(format, false) %}
       #  {% set start = start | timestamp_custom(format, false) %}
          {{ state_attr('weather.ville', 'forecast') | selectattr('datetime', '>=', start) | selectattr('datetime','<=', end) | map(attribute='templow') | list | max }}

il faut aussi remplacer la dernière ligne de ton sensor par 1 ligne de mon exemple, sinon les appels à ce que tu viens de commenter sont toujours là

Genial @Pulpy-Luke
et si je veut rajouter la valeur par default je met [0]

{{ state_attr('weather.XXXXXX','forecast')[0]
| map(attribute='temperature') | first }}
{{ state_attr('weather.XXXXXX','forecast')[0] | map(attribute='templow') | first }}

Il faut tester mais je suis pas sur que ça serve :

  1. cas avec {{ state_attr('weather.XXXXXX','forecast')| map(attribute='temperature') | first }}
  • state_attr('weather.XXXXXX','forecast') => tu récupéres toutes les sous valeurs de tous les forecast(en json)
  • map(attribute='temperature') => tu as un tableau de toutes les valeurs de temperature (dans l’ordre)
  • first => tu prends la première
  1. cas avec {{ state_attr('weather.XXXXXX','forecast')[0]| map(attribute='temperature') | first }}
  • state_attr('weather.XXXXXX','forecast')[0] => tu récupéres uniquement le forecast en position 0 (sous valeurs/json)
  • map(attribute='temperature') => tu récupéres la seule temperature existante
  • first => tu prends la première

Tu vois bien que le 2ème cas est optimisable : donc soit [0] soit first mais les 2 ça sert à rien

d’accord @Pulpy-Luke je comprend mieux merci encore :slight_smile:

Hello,

Je « déterre » le sujet suite au changement de la 2024.4.0. Forcast est déprécié… Comment récupérer les température maximum et minimum ?

Salut,

Ce qui est bien foutu avec HA c’est que tout est dans la doc
image

Oui j’ai vu mais je comprends pas comment faire. J’obtiens une liste sur laquelle il faudrait que je sorte le maximum mais je patauge :

L’exemple est assez complet, tu as un exemple de template

Salut,
faut créer un template avec la météo par jours et après la syntaxe est identique avec ton ancienne pour récupérer la température max, sauf qu’il faudras changer l’entité.

exemple de template par jours:

template:
  - trigger:
      - platform: state
        entity_id: weather.xxxx #ton entité météo france.
    action:
      - service: weather.get_forecasts
        data:
          type: daily
        target:
          entity_id: weather.xxxx
        response_variable: daily
    sensor:
      - name: Weather Forecast Jour xxxx
        unique_id: weather_forecast_jour_xxxx
        state: "{{ daily['weather.xxxx'].forecast[0].condition }}"
        attributes:
          forecast: "{{ daily['weather.xxxx'].forecast }}"
        availability:  "{{ states('weather.xxxx') not in ['unknown', 'unavailable', 'none'] }}"

Pour récupérer la température:

{{ state_attr('sensor.weather_forecast_jour_xxxx','forecast')[0].temperature | float(0) }}
1 « J'aime »

Top tout refonctionne merci !

1 « J'aime »

Une question débile pour toi mais excuse de te la poser… Je débute dans HA et depuis la nouvelle version 2024.4 j’ai aussi ce problème avec le forecast! J’ai perdu les températures MIN et MAX pour le lendemain…
Pour avoir la température MIN du lendemain j’avais déclaré une ENTREE capteur avec les options TEMPLATE suivantes
’ {{ state_attr(‹ weather.forecast_maison ›, ‹ forecast ›)[1].templow }} ’


Ma question est :
comment tu crées dans HA le template par jours? à partir de quel écran?
le xxxx est bien dans ton exemple la ville déclarée dans météo france…?
Merci
Cordialement

Bonjour,
Tu ne peu pas faire ce template météo par l’interface. T’es obliger de le faire en yaml, soit dans template.yaml si ta découper ta configuration. Soit dans le configuration.yaml.

Quands tu aura créer ce template météo , tu utilisera c’est entité dans t’es ancien template pour la temp min et max, a la place de l’entité weather.xxxx.

Le template fourni dans ce lien est a mettre dans le configuration.yaml.

Merci beaucoup!
Effectivement c’est impeccable… J’avais déjà oublié que le fichier configuration.yaml est vachement important :wink:

Bonjour,

je sais que je suis un peux HS mais comment fais tu pour avoir la condition en FR?
Je l’ai toujours en anglais et je n’arrive pas a la traduire :frowning:

Merci beaucoup

Bonjour,
faut passer par un template ou tu peut avec une macro aussi.
regarde ce lien: Translation of a weather entity - Configuration - Home Assistant Community

1 « J'aime »

Au top sa fonctionne direct dans le template!!
Facile et efficace.

merci :slight_smile:

Pour la traduction, il y a beaucoup plus simple, c’est peut-être passé inaperçu mais c’est apparu sur la version en mars dernier Translating states in your templates

Salut,
Ca fonctionne pas.

image

en effet sur des sensors « maison », ça ne fonctionne pas