Files
EVCS/dashboards/llm_monitor.yaml
Tallagrand Thierry 9fb73415b4 Surveillance du modele local : le brouillon avait un angle mort
Le paquet propose par la session Airtria portait trois entites — interrupteur
d alertes, RAM disponible, libelle d etat. Il lui manquait celle sans laquelle
les trois autres mentent : un horodatage ecrit a chaque passage.

Sans lui, un moniteur mort est indiscernable d un systeme sain. Les trois
entites gardent leur derniere valeur, qui dit « tout va bien », indefiniment.
C est exactement l incident du 08/09 sur la prevision solaire, ou 4 h 45 de
panne n ont laisse aucune trace. Et on ne peut PAS deduire la fraicheur du
last_updated des autres entites : Home Assistant ne rafraichit pas l horodatage
d un helper reecrit a l identique — une RAM stable une heure produirait la meme
illusion.

Ajoutes : l horodatage, le modele charge, un capteur d age, et deux alarmes —
moniteur muet, RAM sous le seuil ou earlyoom tue le plus gourmand.

Defaut trouve et corrige apres creation : l alarme RAM se declenchait avant que
le moniteur ait tourne une seule fois, une valeur jamais ecrite valant zero.
Une mesure qu on n a pas recue n est pas une mesure basse. Elle est desormais
conditionnee a la fraicheur.

Tableau separe des tableaux energie : ce qu il montre n a aucun rapport avec le
photovoltaique.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
2026-09-14 21:50:07 +02:00

91 lines
2.9 KiB
YAML
Executable File

# Surveillance du modele local sur la Spark.
#
# Tableau volontairement SEPARE des tableaux energie : ce qu'il montre n'a aucun
# rapport avec le photovoltaique, et les melanger rendrait les deux moins
# lisibles.
#
# Rempli par un moniteur externe (cron toutes les 2 min sur 10.10.10.17). Tant
# qu'il n'a pas tourne, la carte le DIT au lieu d'afficher des zeros rassurants.
title: Modèle local
views:
- title: Spark
path: spark
icon: mdi:robot-outline
cards:
- type: conditional
conditions:
- entity: binary_sensor.llm_monitor_muet
state: "on"
card:
type: markdown
content: >
## ⚠️ Le moniteur ne parle plus
Aucune nouvelle depuis
{{ states('sensor.llm_monitor_age_du_dernier_passage') }} minutes,
alors qu'il devrait passer toutes les 2 minutes.
**Les valeurs ci-dessous sont donc périmées** — elles montrent le
dernier état connu, pas l'état actuel. Un moniteur mort affiche les
mêmes chiffres rassurants qu'un système sain : c'est cette carte,
et elle seule, qui fait la différence.
- type: entities
title: Le modèle
state_color: true
entities:
- entity: input_text.llm_monitor_status
name: État
- entity: input_text.llm_monitor_model
name: Modèle chargé
- entity: input_datetime.llm_monitor_last_seen
name: Dernière vérification
- entity: sensor.llm_monitor_age_du_dernier_passage
name: Âge de cette vérification
- type: divider
- entity: binary_sensor.llm_monitor_muet
name: Moniteur muet
- type: entities
title: Mémoire de la Spark
state_color: true
entities:
- entity: input_number.llm_mem_avail_pct
name: RAM disponible
- entity: binary_sensor.spark_ram_critique
name: RAM critique
footer:
type: graph
entity: input_number.llm_mem_avail_pct
hours_to_show: 24
detail: 2
- type: entities
title: Alertes
entities:
- entity: input_boolean.llm_monitor_enabled
name: Alertes WhatsApp
- type: markdown
content: >
**Comment lire cette carte**
`RAM critique` ne se déclenche que si le moniteur a donné de ses
nouvelles récemment. Une valeur jamais reçue vaut zéro, et zéro n'est
pas une mesure basse — c'est une absence de mesure. C'est
`Moniteur muet` qui le dit, et lui seul.
Le seuil de RAM est à 8 %. En dessous, `earlyoom` tue le processus le
plus gourmand de la machine, et sur la Spark le plus gourmand est le
modèle lui-même.
L'interrupteur ne coupe que les **alertes WhatsApp**. Le moniteur
continue de mesurer et cette carte reste à jour.