[Article] Vos entités sous surveillance

Bonjour,

J’ai fait une recherche sur Search results for 'unavailable' - Home Assistant Community il y a pas mal de sujet, mais même avec la traduction google, j’ai un peu de mal à tout comprendre …
Je progresse lentement.

Tout doit être bon maintenant.

En effet, merci et bonne journée

Merci beaucoup @Argonaute ça fonctionne parfaitement.
Je cherchait une solution simple, la voilà.
Bonne journée.

1 « J'aime »

Super merci @Argonaute …c’est génial …
une petit précision pour les bleus comme moi, j’ai cherché 3 heures avant de trouver.
J’avais un probleme avec {{entities}} … à chaque fois que j’enregistrais, il s’effaçait .
. parce que je le faisais pas au bon endroit !!!


.
.
.
il faud faire la modif avec l’edition yaml avec les 3 petits points au niveaux de" appeler le service" …

.
.

Voilà …
@+

Oh désolé, effectivement.

Dans l’article, tu as du passer à côté de la précision suivante :

Il est conseillé de passe le champ en mode YAML (cliquer sur les 3 points à droite du champ pour le menu) comme ci-dessous, et vérifier que le message est le même que ci-dessous.

Heu non , tu n’as pas a étre désolé , … , c’est plutôt a mois de l’étre !!
, … j’ai lu 3x même , sauf que pour moi les 3 point c’est a droite mais en haut !!! :roll_eyes:
N’empêche que j’étais en rogne ( contre moi) de mettre autant de temps a trouver …
Comme qui dis l’autre … c’est le métier qui rentre …
( même si je suis à 1000 lieux d’en faire mon métier) :smiley:

1 « J'aime »

Salut,

Merci pour le tutoriel mais j’ai une question. En effet la solution proposée est d’envoyer une notification et de mon coté je souhaiterais avoir une page de maintenance qui me liste tous les sensors indisponibles. En effet une fois la notification fermée on n’a plus le capteur indisponible et pas forcément le temps de traiter le pb directement. Pour le moment j’ai utilisé la carte « entity-filter » en affichant le capteur si son état est « indisponible », mais cela oblige de lister manuellement tous les capteurs. Est-ce qu’il y aurait moyen de rendre ca plus simple? Par exemple dès qu’un capteur passe en indisponible il est affiché dans une carte sur le dashboard.

Merci

Salut,
Oui ce serait à priori possible, mais je n’ai pas testé.
Il faudrait essayer de reprendre le code du code jinja2 contenu dans le blueprint, légèrement l’adapter et le mettre dans une carte markdown.

@herveaurel

Si c’est pas déjà fait, je pense que tu pourrai améliorer tes automatisations, et d’utiliser la notion de context.id dans tes actions de ton service notify, voir la doc officielle :
image

1 « J'aime »

Il faut que je teste ca !
J’ai une soif infinie d’apprendre.
Merci.

1 « J'aime »

En soit, ton automatisation fonctionne mais en suivant la logique de leur doc, c’est pas déconnant :slight_smile:

Including an id in the action allows us to identify this script run and not accidentally trigger for other notification actions

1 « J'aime »

Salut

@Adrien_1 J’utilise ça pour afficher les équipements indisponibles :

type: markdown
content: |
  {%- set ns = namespace(sensors=[])  -%}
  {%- for state in states.sensor
      | selectattr('attributes.device_class', 'defined')
      | selectattr('state', '==', 'unavailable')  -%}
      {%- set ns.sensors = ns.sensors + [dict(name = state.name, state = state.attributes.device_class)] -%}
  {%- endfor -%}
  {%- for state in states.binary_sensor
      | selectattr('attributes.device_class', 'defined')
      | selectattr('state', '==', 'Undefined')  -%}
      {%- set ns.sensors = ns.sensors + [dict(name = state.name, state = state.attributes.device_class)] -%}
  {%- endfor -%}
  {%- set unav = ns.sensors | sort(attribute='state') -%}
  {%- set ns = namespace(unav='') -%}
  {%- for state in unav -%}
      {%- set ns.unav = ns.unav + (state.name ~ ' (' ~ state.state ~ ')' ~ "\n")  -%}
  {%- endfor -%}
  {%- if ns.unav -%}
    {{ ns.unav }}
  {%- else -%}
    {{ 'none' }}
  {%- endif -%}
title: Equipements indisponibles

Salut @Adrien_1

Bon j’ai testé. Si tu utilises la méthode 1 du tuto (utilisation des labels), il est bien possible de créer très facilement une carte qui te donne les indisponibilités des devices et qui se met à jour quand tu la consultes.

Voila le résultat si il y a des entités indisponibles (et sans les ‹ s › quand il n’y en a qu’une):
image

Et si il n’y en a pas :
image

Pour cela, il faut aller dans le dashboard en édition et créer une markdown card

Copier le code jinja2 suivant dans le champs contenu :

{% set selector = 'check' %}
{% set result = namespace(entities=[]) %}
{% set entity_list = label_entities(selector)%}

{% for item in entity_list %}
  {% for state in states | selectattr('state','match', 'unavailable') | selectattr('entity_id', 'match', item)%}
    {% set result.entities = result.entities + [state.name] %}
  {% endfor %}
{% endfor %}

{% if result.entities | length == 0 %}
  **Aucun device indisponible.**
{% else %}
  {% if result.entities | length == 1 %}
    **Device indisponible :**
  {% else %}
    **Devices indisponibles :**
  {% endif %}
  {{ '\r\n - ' ~ result.entities|unique|join('\r\n - ')}}
{% endif %}


Change le label dans la première ligne si tu en utilises un autre (check utilisé dans le code).

Pourrais tu tester cela et me dire si cela convient ? Si oui, je rajouterai un petit chapitre dans l’article.
Merci d’avance.

Salut,

Au top, ca fonctionne. C’est exactement ce que je cherchais. Merci beaucoup pour le tuto :slight_smile:

1 « J'aime »