Bonjour,
Sur la base de cette discussion: Intégration Pollens HS, clap de fin pour le RNSA - #10 par WarC0zes
Je suis en train de revoir mes automations d'alerte pollens et j'ai maintenant ce code qui fonctionne quasiment:
Code
{%- set result = namespace(msg=[]) %}
{%- set liste_pollens = {
'herbacees': ['Armoise', 'Chénopodes', 'Ambroisie', 'Ortie'],
'arbres': ['Noisetier', 'Orme', 'Aulne', 'Peuplier', 'Chêne', 'Platane', 'Bouleau', 'Cyprès'],
'graminees': ['Poaceae ']
} %}
{%- set level_map = {'low': 'bas', 'moderate': 'moyen', 'high': 'élevé', 'very high': 'très fort'} %}
{%- for pollens, liste in liste_pollens.items() %}
{%- set sensor = 'sensor.kleenex_pollen_radar_pornichet_' + pollens %}
{%- set details = state_attr(sensor, 'details') %}
{%- set ic = "🌿" if state_attr(sensor, 'icon') != "mdi:tree" else "🌳" %}
{%- set temp_msg = [] %}
{%- for item_name in liste %}
{%- set item = details | selectattr('name', 'eq', item_name) | first %}
{%- if item and item.value > 0 %}
{%- if loop.first %}
{%- set result.msg = result.msg + [ pollens ] %}
{%- endif %}
{%- set niveau = level_map.get(item.level | default('N/A'), 'aucun') %}
{%- set temp_msg = temp_msg + [ic ~ item.name ~ ' ' ~ item.value ~ ' (' ~ niveau ~ ')'] %}
{%- set result.msg = result.msg + temp_msg %}
{%- endif %}
{%- endfor %}
{%- endfor %}
{{ result.msg | join('\n') }}
En effet pour les graminées qui n'ont qu'une seule entrée dans le détails
Je n'arrive pas à récupérer la valeur et j'ai cette alerte :
Si j'enleve le code les graminees tout est ok... si je force item.value >=0 pour voire l'affichage:
Graminees absentes ^^
une idée de comment faire ? quoi changer dans ce code ?
Merci!!!!
Edit: J'ai trouvé !!!! il y a un #{[|^@!! d'espace dans le nom de la graminee !!!



