Avis / Retour d'expériences pour une vue de monitoring / santé

Bonjour,

Je vais me lancer dans la création de ma page de monitoring global.

Rien de figé pour le moment, mais au premiers abords, j’imagine la solution suivante.

Une vision synthétique de l’état (joignable) par type d’appareils / entités (lumières, volets, raspberrys, capteurs…), qui en gros m’informe sur la santé par type (exemple 18 lumières ok, 1 ko), puis en suite je descend d’un cran, et je consulte pour un type chaque valeur unitairement. Pour certains devices, j’afficherais surement des infos complémentaires, par exemple, pour un raspberry, certainement la température, disque…, pour d’autres peut être l’état de la pile.

Visuellement je pense que cela pourrait être sous forme d’une fold-entity-row qui donne la vision générale, puis en dessous un bouton par entité.

L’idée générale, c’est de partir du niveau le plus haut pour savoir si tout est ok, et de pouvoir zoomer pour avoir de plus en plus de détails lorsque souhaité.

Pour ceux qui auraient déjà mis cela en place, quelle à été votre approche sur le sujet?

Ps: Pour y arriver, je pense que je vais devoir créer quelques sensors, comme par exemple pour faire un ping pour les appareils qui seraient à tester sur le réseau, ou pour cerrtains capteurs par exemple vérifier si j’ai eu une valeur dans les 5 dernières minute, ou encore certaines entités qui deviennent « indisponible », à voir comment cette information est récupérable.

2 « J'aime »

J’ai l’impression que le sujet ne passionne pas trop :). Ou alors que je suis le seul a avoir des pannes dont je souhaite être alerté au plus tot:).

J’ai un peu avancé sur le sujet, en listant au sein d’un dashboard une première version de ce que je veux monitorer à la maille la plus fine (a part pour le réseau, je ne teste rien pour le moment donc tout est vert! :slight_smile: ):

.

J’ai fait les différents listings avec auto-entities.

Prochaines étapes:

  • Déterminer pour chaque entité (enfin, peut être directement pour chaque device, mais je ne sais pas bien si on peux les manipuler si facilement), si elle est bien joignable ou non.

Pour les appareils wifi / lan, je peux facilement faire cela avec un sensor qui ping l’ip (la pour le moment j’ai fait cela avec l’intégration ubiquiti unifi car mon réseau est sous unifi, mais j’ai l’impression que les résultats ne sont pas bons).

Pour le reste, je pense que la seule façon valable c’est en vérifiant le « last_changed ». Mais si jamais par exemple la valeur ne change pas, cela ne veux pa dire que l’appareil n’est pas joignable. Pensez-vous a une autre solution?

  • Trouver une façon de regrouper mes différents blocs avec une vision macro avant de voir tout le détail (cf mon autre post)
    En gros, ça:

  • Enrichir les cartes avec les infos de santé pertinentes à vérifier (exemple batterie faible, disque dur rempli…). Puis pourquoi pas dans un second temps, des infos moins essentielles (ex: mise à jour dispo)

Ps: Si je dois passer par des nouveaux sensors, plutôt que de les créer manuellement sans lien d’appartenance aux entités monitorées (au moins une 100aine…), avec du coup un namming bien particulier… Y a t’il moyen de rajouter cela aux entités et / ou devices existants? Peut genre as t’on possibilité de gérer une nouvel attribut à une entité non créée manuellement via un template (si je ne me trompe pas, customize permet juste de modifier de l’existant, pas de le compléter).

Bonne journée.

3 « J'aime »

idem je suis sur le mien aussi pour faire un dashbaord sur la partie réseau, container, docker, équipement interne, debit, bande passante etc etc …

J’avance petit à petit sur le sujet, voici un premier jet:

monitoring

Pour ce faire, j’ai créé:
-1 binary sensor par entité à monitorer (avec parfois des attributs complémentaires, comme l’ip ou la batterie), + 1 binary sensor de « ping » pour chaque device réseau
-1 groupe par catégorie + 1 qui regroupe les groupes
-2 sensors par catégorie qui regroupent les ok, puis les ko + 2 pour les totaux

Pour mon bouton de départ, j’affiche juste les infos des sensors globaux:
image

Pour mes boutons de catégorie, j’affiche le nombre de Ok et le nombre de Ko si il y en a :
image

Dans mes boutons d’affichage des sensor, j’affiche l’icone en rouge ou en vert si il est joignable, et en complément les attributs additionnels si il y en a:
De base (sans attribut supplémentaire):
image
Pour le réseau, l’ip:
image
Pour les devices a pile, le statut de la pile:
image

Dans mon image de l’écran principal, je rajouterai des stats complémentaires de santé, la pour le moment j’ai surtout axé la partie « est ce que mes appareils sont bien accessibles ».

Pour déterminer que les appareils sont accessibles, je fais les tests suivants:
Appareils réseau: ping toutes les 10 secondes
Appareils RFXCOM: je vérifie j’ai une valeur depuis moins de 5 minutes (pour le moment uniquement sur la température, je vais étendre à l’humidité car je constate des faux négatifs)
Appareils sur base de réponse de curl ainsi que pour les Aqara: je vérifie que j’ai bien une valeur numérique >= 0

==> Pour accélérer / faciliter les déclarations dans les fichiers de config, je me suis fait un fichier excel avec les concaténations qui vont bien.


Comme ça, copier/coller, je supprime les - " - et voilà! (pour les cartes on peux faire la même chose avec decluttering, et lovelace_gen, mais je ne crois pas qu’il soit possible de le faire pour de la déclaration de config).

Je vais probablement revoir légèrement le visuel, et peaufiner les « Ko » (exemple, pour un appareil avec un pile < 10%, le considérer comme Ko), mais ça prends forme!

1 « J'aime »

Whaouh ! C’est chouette !
Comment tu fait tes tests pour mettre à jour tes binary et tes sensors ? Avec des automations ou nodered ou … ?
Merci !

Avec des templates, je viens de comprendre ton Excel :slight_smile:
Tu peux donner un exemple pour rfxcom et aqara stp ?
Merci !

Hello,

Comme tu l’as surement compris, pas d’automation, c’est directement la valeur dans le template qui gère.
Voici quelques exemples:


- platform: template
  sensors:
    monitor_aqara_detecteur_haut:
      friendly_name: 'Detecteur Haut'
      value_template: > 
        {{ states.sensor.battery_detecteur_haut.state|int >= 0 }}
      attribute_templates:
        entity_checked: 'sensor.battery_detecteur_haut'
        battery: '{{ states.sensor.battery_detecteur_bas.state }}'
				
- platform: template
  sensors:
    monitor_jeedom_light_mezzanine:
      friendly_name: 'Mezzanine'
      value_template: > 
        {{ states.sensor.mezzanine_brightness.state|int >= 0 }}
      attribute_templates:
        entity_checked: 'sensor.mezzanine_brightness'
		
- platform: template
  sensors:
    monitor_rfxcom_anthony:
      friendly_name: 'Anthony'
      value_template: > 
        {{ ((as_timestamp(now()) - as_timestamp(states.sensor.temp_anthony.last_changed)) | int ) < 300  }}
      attribute_templates:
        entity_checked: 'sensor.temp_anthony'		
		
- platform: template
  sensors:
    monitor_lan_nvidia_shield:
      friendly_name: 'Nvidia Shield'
      value_template: > 
        {{ states('binary_sensor.ping_nvidia_shield') }}
      attribute_templates:
        ip: '192.168.1.194'		
		
- platform: ping
  host: 192.168.1.194
  name: Ping Nvidia Shield
  count: 7
  scan_interval: 10

Wouah, c’est top, c’est le genre d’addon qui manque à HA

super ! merci beaucoup !