Bonjour a tous,
J’aurais besoin de vos conseils sur la base de données V2 homeassistant qui devient trop volumineuse.
Quelle config utilisez vous pour la purges ? et qu’est que le repack ?
Merci pour vos conseils
Bonjour a tous,
J’aurais besoin de vos conseils sur la base de données V2 homeassistant qui devient trop volumineuse.
Quelle config utilisez vous pour la purges ? et qu’est que le repack ?
Merci pour vos conseils
Avant de commencer à parler de purger la base de donnée, il faut déjà commencer par parler du remplissage…
As tu configurer le recorder
? (documentation)
Celui-ci te permet de définir les domaines/entités/évènements que tu souhaites sauvegarder et donc avoir un historique. Tu peux également utiliser la logique inverse et indiquer quels domaines/entités tu ne souhaites pas sauvegarder. Et enfin tu peux conjuguer les deux.
Ensuite, lorsque tu auras indiqué quels sont les domaines/entités que tu souhaites historiser, tu peux définir le nombre de jour que tu souhaites historiser (par défaut 10 jours).
Par exemple, ma configuration actuelle est celle-ci :
#Base de données
recorder:
purge_keep_days: 60
include:
domains:
- sensor
- input_boolean
- input_datetime
- input_number
- input_select
- input_text
- binary_sensor
- light
- cover
exclude:
domains:
- automation
- alarm_control_panel
- calendar
- camera
- climate
- device_tracker
- group
- media_player
- person
- proximity
- scene
- script
- sun
- switch
- timer
- vacuum
- weather
- zone
- zwave
event_types:
- automation_triggered
- script_started
- service_registered
- home_assistant_start
- home_assistant_stop
- home_assistant_stop
entities:
- sun.sun
- sensor.last_boot
- sensor.date
- sensor.time
Ensuite, rien ne t’empêches de faire une automatisation sur la taille de la base de donnée afin de lancer une purge (après avoir créé un capteur pour la taille de la base de donnée) :
homeassistant:
whitelist_external_dirs:
- /config/
sensor:
- platform: filesize
file_paths:
- /config/home-assistant_v2.db
- id: 'purge_automatique_si_base_trop_volumineuse'
alias: 'Purge de la base de donnée'
description: 'Purge la base de donnée lorque celle-ci dépasse 1Go'
trigger:
- platform: numeric_state
entity_id: sensor.home_assistant_v2_db
above: '1000'
condition: []
action:
- service: recorder.purge
data:
keep_days: 30
repack: true
mode: single
Clemalex, grand merci pour la precision du post qui est complet. je vais pouvoir cloturer mon soucis rapidement.
Encore une fois tu me depannes et tu me fais progresser sur HA.
A bientôt
Bonsoir,
Si je puis me permettre, whitelist est déprécié depuis la 0.113, c’est plutot « allowlist » maintenant
C’est pas comme si c’était marqué en gros et dans une autre couleur dans la documentation
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
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…
Pas de l’astuce
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.
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 ?
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 ?
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.
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 :
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
tu inclus group et tu exclues group aussi… 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 ! 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 ?
Oui mais rien n’y fait: la DB reste à 9Gb