Purge de la base de donnees HA

Salut,

A ma connaissance pas moyen de définir quelque chose de particulier pour quelques sensors.
Tu peux jouer sur la durée de rétention en base (global) et la fréquence de rafraichissement des sensors, mais rien de plus

Je viens de revenir sur ce post que j’avais mis en signet.

En relisant la doc de HA, je m’aperçois que ce n’est pas très « flexible » la gestion de base de donnée.

Je souhaiterais garder un historique complet sur 7 jours par exemple, mais garder certaines entités à vie (consommation etc)

Si je comprends et résume bien ce fil de discussion, la solution est d’appliquer une purge sur le recorder HA et d’ajouter un service externe (influxDB, par exemple) pour y stocker les données a garder ? Comment choisir les données envoyées a la BDD externe ?

Merci d’avance

Salut,

C’est ça…

Comme le recoder, influxdb permet de faire une liste ou un filtre des entités

Super merci @Pulpy-Luke pour la réponse.

En cherchant voici la doc InfluxDB - Home Assistant

Bonsoir, mon installation étant toute neuve je n’ai pas encore eu l’occasion de voir l’effet que pouvait avoir une purge :slight_smile:

Cela dit, si je comprends bien, si je laisse tout par défaut et si je prends pour exemple le tableau de bord energie, je n’aurais un visuel que de 10 jours dans le tableau de bord energie.

Pour voir au dela des 10 jours, je dois me rendre dans historique et sélectionner les entitées de consommation sans plus avoir le calcul journalier automatique ? comparer les mois etc… ?

J’aurais une question, est-ce que les compteurs définis sont aussi purgés (genre compteurs sur le mois, sur l’année)
Merci

Bonjour,
Bonjour,Je me retrouve avec ma carte SD pleine à 90% , la base sqlite fait 15Go
Avant de passer à la configuration ( j’ai pas compris dans quel fichier on faisait ça et ça à l’air plutôt compliqué) y a t’il une commande manuelle ou requête sql pour faire un gros nettoyage ? Merci

Bonjour,

ça aurait mérité un sujet à part entière, celui-ci à qd même 2 ans presque :slight_smile:

Si ta base de données fait 15Go, je ne vois que 2 possibilités:

  • Soit tu as un système de taille industrielle.
  • Soit tu as explicitement réglé le recorder pour garder une nombre de jour conséquent pour le recorder.

Je parierais sur la seconde option. Et si tel est le cas, réduire le nombre de jours devrait suffire et ça se fera automatiquement pendant le nuit suivante.

Il n’y a rien de vraiment compliqué pour le régler les filtres pour la base de données.
Tout se passe dans le fichier configuration.yaml

1 « J'aime »

Bonjour
Pas de solution magique faut configurer le recorder dans le fichier configuration.yaml, ça met qq jours avant de faire totalement la purge.
Édit: grillé

1 « J'aime »

Oui, j’ai commencé à regarder. Merci

Bonjour, en effet le post est ancien. J’ai rien configuré au niveau de la base de données. J’ai l’impression que ça a explosé quand j’ai modifié la clé lixee en passant du mode historique au mode standard.
Cela explique que depuis quelques temps, ça rame un maximum.
Je vais en effet me pencher sur la configuration, merci

Quelle est la bonne pratique en terme de jours à garder? 7-10-30?

Hello.

10j c’est la valeur par défaut. Plus à mon avis ça ne sert à rien… il y a les données long terme pour ce genre de besoin

Il te faut comme préciser par les autres configurer le recorder.

Mais dans un premier temps, tu peux utiliser la vue développeur pour purger la base.

Ce post contient les lignes de code nécessaire directement tirées de la documentation.

1 « J'aime »

Bonjour à tous ,

Certes le fil est un peu ancien mais moi aussi je me trouve à avoir une taille de la base un peu trop élevée ( + de 3.2G )
J’ai configuré recorder comme j’ai pu , du moins j’ai pas ciblé sensor par sensor ce que je veux conserver ou non , mai slà n’est pas vraiment mon problème pour l’instant.
Je souhaiterais savoir comment déterminer quel sensor ou quelle entité fait grossir la base afin de cibler/filtrer les plus consommatrices en espace de données.

j’ai essayé d’ouvrir la base avec SQLite Web mais je n’arrive pas à comprendre comment on s’en sert .

Merci d’avance pour votre aide future que je sais déjà fort pertinente .

Bonjour,
ta tout expliquer sur ce post Purge de la base de donnees HA - #40 par Guizmos
il y a juste la commande qui a changer entre temps :wink:

Pour rechercher les 20 entités qui a le plus d’entrée.

SELECT states_meta.entity_id, COUNT(*) AS count
FROM states
JOIN states_meta ON states.metadata_id = states_meta.metadata_id
GROUP BY states_meta.entity_id
ORDER BY count DESC
LIMIT 20;

Merci beaucoup pour ta réponse, en fait j’ai pas été assez clair dans mon premier message ,

en fait que je lance la commande ci dessus avec SELECT … , il me retourne bien les 20 entités les plus gourmandes, mais même si je les renseigne dans le


exclude:

  entities: # filtrage par entités spécifiques
    - sun.sun 
    - sensor.last_boot
    - sensor.date
    - sensor.time  
    - camera.192_168_1_200
    - camera.192_168_1_201    
    - camera.192_168_1_202
    - camera.192_168_1_203
    - camera.192_168_1_204
    - camera.front_door_camera
    - device_tracker 
    - person
    - sensor.sonoff_1000fd09b5_power    #Cumulus
    - sensor.sonoff_1000fd09b5_current
    - sensor.sonoff_1000fd09b5_voltage
    - sensor.sonoff_1000e7dc7f_power    #Cuisine
    - sensor.sonoff_1000e7dc7f_voltage
    - sensor.sonoff_1000e7dc7f_current
    - sensor.sonoff_1000fcfd9e_power    #Gainable
    - sensor.sonoff_1000fcfd9e_current
    - sensor.sonoff_1000fcfd9e_voltage
    - sensor.sonoff_1000fd0e93_power    #Electrovanne exterieure
saisissez ou collez du code ici

la base diminue mais très très peu , je passe de 3,2G à 3G … j’ai l’impression que je ne cible pas ce qui prend de la place …

une idée du coup ??

Hello,

Attention, la purge c’est progressif et en tache de fond, donc c’est illogique que ça ne diminue pas si vite à ton gout. Mais tu es en mesure de vérifier avec la même requête SQL, si les chiffres diminuent c’est que c’est en cours

je comprends que la purge puisse prendre du temps , mais ce qui m’intrigue c’est que la courbe augmente de manière régulière , on ne sent aucun changement dans l’augmentation constante de la mémoire utilisée par la base … quel peut être ce délais de purge finalement ??

C’est logique aussi. A chaque minute/chaque évènement il y a potentiellement une entrée dans la base pour cachune des entités. Donc en fonction de ce qui tourne chez toi, ça peut aller vite.

Pour attendre la stabilisation il faut aussi avoir la fin de la fenêtre d’enregistrement du recoder. Par défaut 10j. Donc si tu as ajouté des devices depuis moins de 10j, si tu as effacé ta base depuis moins de 10j, tu n’as pas encore tout remplis…

Espace disque

C’est variable en fonction de ta charge, en prenant large 1h max