Purge de la base de donnees HA

Bonsoir,
Si je puis me permettre, whitelist est déprécié depuis la 0.113, c’est plutot « allowlist » maintenant :wink:

3 « J'aime »

C’est pas comme si c’était marqué en gros et dans une autre couleur dans la documentation

:grin:

1 « J'aime »

merci pou ce complement d’info

Pour ceux qui comme moi n’arrivent pas à faire fonctionner platform: filesize
il y a une possibilité de contournement sans utiliser allowlist.

  - platform: sql
    queries:
      - name: DB Size
        query: 'SELECT ROUND(page_count * page_size / 1024 / 1024, 1) as size FROM pragma_page_count(), pragma_page_size();'
        column: 'size'
        unit_of_measurement: 'MiB'

Source : SQL - Home Assistant

2 « J'aime »

Tu veux pas ouvrir un sujet ?

As tu vu ce post Purge de la base de donnees HA - #2 par Clemalex ?

c’est juste une astuce pour permettre à ceux qui ont suivi ce fil et qui seraient bloqués, d’aller au bout.
ce n’est, à mon sens, pas un sujet en soit.

Non je parlais de ton problème et de pourquoi tu ne peux pas… :innocent:

Pas de l’astuce :+1:

Bonjour @Clemalex ,
Ce sujet commence réellement à m’intéresser car mon fichier home-assistant_v2.db pèse quand même 2.5 GO … mais avant de faire n’importe quoi j’ai qq interrogations.

  1. quelle est la différence entre cette base de donnée et influxdb? J’utilise en fait influxdb pour générer des graphs sous grafana.
    si home-assistant_v2.db est différent de influx db cela veut il dire que je fais tourner deux bases simultanément? si oui peut on supprimer si home-assistant_v2.db ?

  2. si je purge home-assistant_v2.db cela va t il influencer les résultats dans influxdb? et dans les cartes enedis affichant la consommation sur plusieurs mois ?

  3. je détiens 3 fichiers , home-assistant_v2.db; home-assistant_v2.db-wal et home-assistant_v2.db-shm. Peut-on supprimer les deux derniers? sinon, à quoi servent ils?

d’avance merci pour ton éclairage.

1 « J'aime »

Grafana et SQLite sont 2 trucs différents… Et ils ne se remplacent pas l’un l’autre…
SQLite, sert au core pour gérer ses historiques, Grafana est un complément que l’on devrait destiner aux données à long termes et/ou à l’agrégation de données complémentaires (hors HA)
Les deux proposant de faire des graphiques (pas forcement avec les même capacités cependant)…
Donc techniquement tu as la copie dans valeurs dans les 2 bases… avec des données/formats différents et des retentions différentes
Si tu supprimes les fichiers de SQLite (la base core de HA en .db, les logs en .wal et les index en .db-shm), tu perds l’ensemble des infos qui se sont pas répliquées dans Grafana (donc potentiellement tous le reste sauf les graphs de ta conso), et HA va se précipiter pour recréer tout ça proprement.

L’idée en principe, si tu veux gagner en place c’est de :

  • sélectionner les données à enregistrer aux données significatives : enregistrer l’évolution de l’heure, toutes les minutes, c’est pas pertinent
  • réduire la plage de rétention : savoir qu’il y a 217j à 17h03, l’humidité de la serre était de 45% n’a pas forcement besoin d’être aussi précis

En complément des infos de ce sujet, j’ai partagé ma config pour limiter le contenu de la base
https://forum.hacf.fr/t/historique-fige-dans-ha/6477/9
Il y a un add-on slqlite pour visualiser facilement les infos que la base contient

Pour bien faire les mêmes approches doivent se faire sur Grafana…On récupère quoi de HA ? On conserver quoi ? Extraire le min/max par jour de la température par jour, c’est peut-être suffisant plutôt que la valeur toutes les minutes

1 « J'aime »

tu inclus group et tu exclues group aussi… :thinking: pas sur de comprendre

Sur le principe c’est normal :
Par exemple j’inclus tous les sensors sans distinction… Mais j’exclue ceux qui contient angle etc…
Au final ça donne un ensemble fini à mémoriser…

Question stupide pour éviter une surcharge de la base de données de HA :

Est il possible de la délocaliser ?

Effectivement, j’ai vu des truc où il était possible de modifier le nom de la base dans le fichier de configuration

Mais, par exemple, j’ai un serveur MySQL qui tourne sur une autre VM
Serai il possible de créer une database sur ce serveur et de configurer HA pour l’utiliser
Comme ça, il n’y a plus de fichier de DB en local

Du coup, plutôt que rationaliser la taille de la base, tu va cumuler à la fois les effets négatifs de ‹ beaucoup de données › et ajouter la latence réseau…

effectivement, vu comme ça
c’etait une question ouverte

ça n’a donc aucun intérêt

Salut !
J’ai recement ajouté de quoi monitorer la taille de ma base de donnée sur HA et stupeur : elle est énooorme ! :astonished: 9Gb !!!
J’avais pourtant configuré Recorder il y a bien longtemps. Mais j’imagine que les ajout d’entité au fur et à mesure ont fait que… bref.
J’ai reconfiguré Recorder :

recorder:
  # gere les donnees sauvegardees en DB
  auto_purge: true
  purge_keep_days: 7 # durée de conservation des données
  exclude: # permet d'exclure tous les éléments listé ci-dessous de votre base de données
    domains: # filtrage par domaine
      - automation
      #- binary_sensor
      - camera
      - device_tracker
      - group
      - input_datetime
      - light
      - person
      - script
      #- sensor
      - sun
      #- switch
      - vacuum
      - weather
      - zone
    entities: # filtrage par entités spécifiques
      #- binary_sensor.phone_1_en_charge
      #- binary_sensor.phone_2_en_charge
      - binary_sensor.updater
      - sensor.666_weather_alert
      #- sensor.aqaratemphum1_battery_level
      #- sensor.aqaratemphum2_battery_level
      #- sensor.aqaratemphum3_battery_level
      #- sensor.aqaratemphum4_battery_level
      - sensor.daylight
      - sensor.hacs
      - sensor.last_boot
      - sensor.samba_backup
      - sensor.water_sensor_battery_level
      - sensor.date
      - switch.fluxer_cuisine
    entity_globs:
      - binary_sensor.phone_*_en_charge
      - sensor.aqaratemphum*_battery_level
      - sensor.ma_ville_*
      - sensor.phone_*
      - sensor.prixcarburant_*
      - sensor.robot_aspirateur_*
    event_types: # filtrage par evenements
      - call_service 

J’ai ensuite voulu jouer avec recorder.purge en y précisant 4 jours puis 1 jour. Alors visiblement, ca à l’air de supprimer les vieilles données.
Mais la taille de ma base de donnée de diminue pas et reste à 9Gb ! J’ai pourtant passé repack à True…

Des idées ?

1 « J'aime »

Salut,

Tu activé l’option repack qui justement retaille le fichier ?

Oui mais rien n’y fait: la DB reste à 9Gb

Dans ce cas, regarde les entrées les plus présentes…

2 « J'aime »

Du coup, je m’en suis sorti en… supprimant la base de donnée… => Je suis passé à une DB de 145Mb :smiley:
J’ai au passage remarqué que l’addon SAMBA SHARE ne marchait plus : ayant activé le firewall en mode RESTRICTED sur mon NAS, il avait bloqué les port SAMBA et donc l’addon n’arrivait plus à accéder à mon NAS. Résultat : les backup s’entassaient sans être supprimés :s
J’ai pu ramener ma carte SD à 21%

Surement un peu violent de tout virer mais bon…
Prochaine étape : remplacer la carte SD :wink: