Recevoir une notification lorsqu'une alerte météo est en cours

Pour info, la doc pour le templating de sensor commençant par un chiffre :

A chaque fois je me fais avoir :grin:

1 « J'aime »

J’aurais appris quelque chose aujourd’hui :+1:

Bonjour,
Ayant pris le code de Makai recopié dans le fichier automations.yaml avec l’adaptation à mon département via le sensor.45_weather_alert de l’application Météo France. le log me donne les erreurs et warning suivant:

2025-04-21 11:13:52.254 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: 'dict object' has no attribute 'from_state' when rendering '{{ trigger.from_state.state != 'vert' }}'


2025-04-21 11:13:52.257 WARNING (MainThread) [homeassistant.helpers.script] Error in 'choose[1]' evaluation: In 'template' condition: UndefinedError: 'dict object' has no attribute 'from_state'

Je ne suis pas un pro de HA et j’ai du mal à imaginer la solution pour remédier à ces erreurs.
Merci pour l’aide
Audio

Bonjour @Herbs ,
je vais t’embêter :sweat_smile:
le template que tu m’avais fait, fonctionne bien, mais j’aurais voulu quand il y a plusieurs types d’alerte qu’elle soit séparé par un espace ou virgule. Dans l’état, c’est collé et pas super visuellement.

{% if states.sensor['11_weather_alert'] is not none %}
{% if states('sensor.11_weather_alert') != 'Vert' %}
{%- for attr, value in states.sensor['11_weather_alert'].attributes.items() -%}
{%- if value in ['Jaune', 'Orange', 'Rouge'] -%}
{{ "\uE026" }} {{ attr }}
{%- endif %}
{%- endfor %}
{% else %}
{{ "\uE12C" }} Aucune alerte
{% endif %}
{% endif %}

J’ai demandé à chatgpt, mais il me sort que des conneries qui ne fonctionne pas :rofl:

juste un {{ "," }} {{ attr }} ca ne va pas ?

1 « J'aime »

Il aurait toujours la virgule.
Peut être ça mais je n’ai qu’une alerte donc pas testé !

{% if states.sensor['56_weather_alert'] is not none %}
{% if states('sensor.56_weather_alert') != 'Vert' %}
{% set sep = ''  %}
{%- for attr, value in states.sensor['56_weather_alert'].attributes.items() -%}
{%- if value in ['Jaune', 'Orange', 'Rouge'] -%}
{{ "\uE026" }}{{ sep }} {{ attr }}
{%- endif %}
{% set sep = ", "  %}
{%- endfor %}
{% else %}
{{ "\uE12C" }} Aucune alerte
{% endif %}
{% endif %}

Bob

bien vu, ça l’air bon. Je verrai quand j’aurai plusieurs types d’alerte.

Mais @Bob, a compris que si qu’une alerte, aucun intérêt à mettre la virgule. Utile quand il y en a plusieurs.

Je ferai des tests demain, car j’ai plusieurs alerte demain.

viens en bretagne !!! :wink:

Toujours une virgule en trop :hugs:
Bob

1 « J'aime »

lol, demain j’en ai 3 .

Oui, il faudrait une virgule que quand il y a plusieurs alertes, quand une seule pas de virgule :wink:

Donc mon code doit fonctionner non, premier passage {% set sep = ‹  › %}, ensuite {% set sep = ', ’ %}
Enfin en positionnant le sep en début de ligne :wink:
C’est agité demain @WarC0zes :rofl:
Bob

je testerai demain ( je n’ai qu’une alerte), ou si @bentou peu tester voir le resultat avec ton code.

c’est pas glop …

1 « J'aime »

Il t’en manque un bout!


EDIT: ma copie de code était incomplète ,j’ai corrigé
Bob

si j’ai bien copié…

j’avais bien copié :disappointed_relieved:

{% if states.sensor['56_weather_alert'] is not none %}
{% if states('sensor.56_weather_alert') != 'Vert' %}
{% set sep = ''  %}
{%- for attr, value in states.sensor['56_weather_alert'].attributes.items() -%}
{%- if value in ['Jaune', 'Orange', 'Rouge'] -%}{{ "\uE026" }}{{ sep }} {{ attr }}{%- endif %}{% set sep = ", "  %}{%- endfor %}
{% else %}
{{ "\uE12C" }} Aucune alerte
{% endif %}
{% endif %}

Sans retour dans le for peut être mais {% set sep = ", " %} ne semble pas être prit encompte !
Bob


ne prenez que ce qu’il y a au-dessus de la ligne -----

Remplace

{% set sep = ", "  %}

Par

{% set sep ="\u002C" "\u0020"  %} 

Bob

le {{ "\uE026" }} c’est une icône à afficher sous OpenHASP.
image

Pas utile pour faire des tests :wink: