Ce n’est pas moi qui cherche un système résilient. Moi si je ne suis pas chez moi, même si je ne reçois pas d’alertes, cela ne m’empêche pas de vivre.
Ouais c’est clair que là… on sort l’artillerie lourde. ![]()
Après y’a alerte et alerte. Perso je me sens plus tranquille si je sais que si un jus coupe la fibre à l’armoire ( et ça arrive) je serais averti si un présence est détectée ou si un fuite d’eau à lieu. Je peux avertir un voisin par exemple et éviter les soucis
Pour en revenir au sujet, le blueprint est une fausse piste dans mon cas car il utilise un Groupe et je reviens sur le même soucis à savoir la notification ne m’indique pas l’équipement qui pose soucis.
Je part donc sur la solution de @bastgau un sensor en template. Mais je pense que je ne suis pas assez aguerrit avec HA pour coder ce template. Je galère avec chat GPT
Chat GPT a un train de retard sur qqc de si récent que HA.
A moins de faire un script en full python (et encore, il galèrera avec l’API de HA), il ne t’aidera pas des masses.
Bon sinon je hard code tous les triggers et je me notifie avec le nom du trigger. Par rapport à mes compétences actuels je pense que c’est le plus simple… Même si ça me semble pas top ![]()
A toi de voir si tu veux un truc fonctionnel ou si tu veux apprendre quelque choses !
1000% en phase avec @bastgau !
Compter sur chatgtp, c’est mort… Il arrive à faire quelques trucs mais quand ça devient sérieux il est à la ramasse.
Et si en plus tu n’es pas en mesure de vérifier ce qu’il propose, ça risque d’être surprenant
Il est clair que je veux monter en compétence mais je ne sais juste pas par où prendre le problème.
Pour voir si j’ai au moins l’idée: il faut que je fasse un tableau qui parcours une liste de mes équipements et qui, pour chaque itération, s’il trouve un off, positionne le friendly name par exemple dans l’attribut de ce template sensor.
Si c’est ça il faut que j’apprenne en détail ce qu’est un template (pas de soucis je vais parcourir la doc et les forums).
Ps: ok j’arrête avec Chat GPT ![]()
Bon j’arrive a avancer sur le Jinja.
J’ai appris à déclarer un tableau avec mes équipements et je boucle bien pour tester mes conditions off si le ping et down et unknow si l’entité est désactivée ( je veux aussi être alertée):
{% set equipements = {
'Adoucisseur': states('binary_sensor.adoucisseur_ping'),
'Broadlink': states('binary_sensor.broadlink_ping'),
'C3PO': states('binary_sensor.c3po_ping'),
'Caméra Garage': states('binary_sensor.camgarage_ping'),
'Déco Garage': states('binary_sensor.decogarage_ping'),
'Déco GM': states('binary_sensor.decogm_ping'),
'Déco Salon': states('binary_sensor.decosalon_ping'),
'Doorbird': states('binary_sensor.doorbird_ping'),
'Ecodevice': states('binary_sensor.ecodevice_ping'),
'Hub Harmony': states('binary_sensor.hubharmony_ping'),
'Imprimante 3D': states('binary_sensor.imprimante3d_ping'),
'NAS': states('binary_sensor.nas_ping'),
'Netatmo Welcome': states('binary_sensor.netamowelcome_ping'),
'Station Netatmo': states('binary_sensor.stationnetatmo_ping'),
'192.168.3.109': states('binary_sensor.192_168_3_109'),
'Purificateur Xiaomi': states('binary_sensor.purificateurxiaomi_ping'),
'R2D2': states('binary_sensor.r2d2_ping'),
'Somfy Link': states('binary_sensor.somfylink_ping'),
'TV Salon': states('binary_sensor.tvsalon_ping')
} %}
{% set equipements_hors_ligne = [] %}
{% for name, state in equipements.items() %}
{% if state == 'off' or state == 'unknown' %}
{% set equipements_hors_ligne = equipements_hors_ligne + [name] %}
{{ equipements_hors_ligne }}
{% endif %}
{% endfor %}
Je n’arrive pas par contre à mettre le résultat dans une variable pour me permettre d’afficher dans ma future notification la liste des équipements en défaut.
Il faut aussi que je rajouter des " , " entre chaque tour de boucle. Je pense qu’avec loop.last, je peux le faire ou sinon sur la variable finale si je met :
| join(', ')
ça devrai le faire non ?
bref est ce quelqu’un peut m’aider à gérer la variable d’affichage?
Merci
Salut,
Dans ta boucle il faut passer par un namespace, sinon ça perds les infos
{%- set ns = namespace(equipements_hors_ligne =[]) -%}
{% for name, state in equipements.items() %}
{% if state == 'off' or state == 'unknown' %}
{% set ns.equipements_hors_ligne = ns.equipements_hors_ligne + [name] %}
{% endif %}
{% endfor %}
{{ ns.equipements_hors_ligne }}
Et du coup ton tableau est dispo à la fin après la boucle.
Tu as des exemples ici :
Dans les 1er messages, sans passer par la boucle (mais du coup pas de test on/off)
Là un exemple de sensor
HAA j’y étais presque !
Merci @Pulpy-Luke pour la correction du code, je pense que je n’aurais jamais trouvé le « ns ».
J’ai fais une automatisation toute simple qui me notifie lors du changement d’état, et puisque la boucle ne test que les off et unknow, je ne suis alerté qu’en cas de problème ! Un grand merci ![]()
Pour l’exemple 1 quand tu dis "pas de test on/off "c’est parce que la condition se positionne sur le niveau de batterie (et donc un état numérique) ?
Pour le deuxième lien, j’ai essayé de copier le code et ça ne fonctionne pas mais je vais regarder plus en détail.
Je vais surement annoncer un évidence mais le Jinja rends HA tellement puissant !
Aller vers ça n’était pas prévu tout de suite mais en fait c’est cool !
du coup merci aussi a @bastgau car oui j’ai appris des choses et je pense que je vais m’amuser un peu plus avec ça.
Pas tout à faire, ça se base sur les noms (regex) et ça affiche tout
C’est surtout utile pour les cartes ![]()
Essaye ça
{{ expand(states.binary_sensor)| selectattr('state', 'search', 'off|unavail|unknown')
| selectattr('entity_id', 'search', '(.*)_ping')
| map(attribute='entity_id')
| list }}
Bons jeux
ok je pige le code mais clairement je n’aurais pas pris ce chemin.
Merci à toi. Je vais me faire un séance code avec l’outils de dev. ![]()
Il faut éviter cela dans un template de sensor ou binary_sensor … Cela reste à l’écoute de toutes les entités du domaine binary_sensor.
Je me demande si on peut pas faire un truc avec les tags.
Bon visiblement oui …
{% set lights_on = false %}
{% for entity in label_entities("light") %}
{% if is_state(entity, 'on') %}
{% set lights_on = true %}
{% break %}
{% endif %}
{% endfor %}
{{ lights_on }}
(mon exemple est complètement HS)
Oui effectivement c’est pas forcément idéal niveau perf. Ceci dit ça vaudrait le coup de regarder en détails.
Après il y a d’autres moyens : les entités d’une intégration, d’une pièce.
La différence c’est quand même l’aspect automatique que l’on perds avec les labels.
Et quitte à être obligé de maintenir une action systèmatique à chaque nouvelle entité, autant gérer un groupe directement, la liste sera statique