Volumétrie de la table state_attributes > 1,5Go

Bonjour,

Mon problème

J’utilise HA depuis un peu moins de 6 mois et je ne me suis pas trop occupé de la taille de la BD SQL jusqu’à présent. Elle a dernièrment atteinte un gentil 3,5Go et en suivant quelques sujets j’ai pu la passer à 2,4Go ce matin.
Cependant je note que la table state_attributes elle n’a pas bougé, et reste toujours bloqué à 1.5Go.
J’ai fait quelques recherches concernant cette table mais je n’ai rien trouvé de probant.

Aussi ma question est : auriez-vous des astuces ou suggestions pour agir sur cette table ?

Je rajoute dessous certains éléménts pouvant vous mettre la puce à l’oreille.

Voici la configuration du recorder :

recorder:
purge_keep_days: 7
purge_interval: 1
auto_purge: true
auto_repack: true
exclude:
  domains:
    - device_tracker
    - media_player
    - uptime
    - time_date
    - worldclock
    - updater
  entity_globs:
    - sensor.clock*
    - sensor.date*
    - sensor.glances*
    - sensor.load_*m
    - sensor.time*
    - sensor.uptime*
    - binary_sensor.rm174rf*
    - camera.cam_on_road_side*
    - event.rm174rf*
    - sensor.rm174rf*
    - siren.rm174rf*
    - sensor.0xa4c138506e30a1ea_timestamp*
    - sensor.*time*
  entities:
    - camera.front_door
    - sensor.home_assistant_v2_db
    - sensor.memory_free
    - sensor.memory_use
    - sensor.memory_use_percent
    - sensor.processor_use
    - weather.openweathermap
  event_types:
    - service_removed
    - service_executed
    - platform_discovered
    - homeassistant_start
    - homeassistant_stop
    - feedreader
    - service_registered
    - call_service
    - component_loaded
    - logbook_entry
    - system_log_event
    - automation_triggered
    - script_started
    - timer_out_of_sync

Voici la taille des différentes tables pour vous faire une idée.

bytes	name
1524170752	state_attributes
369139712	states
114958336	ix_states_context_id_bin
93642752	ix_states_metadata_id_last_updated_ts
79511552	ix_states_last_updated_ts
62865408	ix_states_attributes_id
61829120	ix_states_old_state_id
50544640	ix_state_attributes_hash
27070464	statistics
18071552	statistics_short_term
10706944	ix_statistics_statistic_id_start_ts
8171520	ix_statistics_start_ts
7356416	ix_statistics_short_term_statistic_id_start_ts
5509120	ix_statistics_short_term_start_ts
3436544	event_data
2490368	events
1142784	ix_events_context_id_bin
884736	ix_events_event_type_id_time_fired_ts
774144	ix_events_time_fired_ts
606208	ix_events_data_id
221184	ix_event_data_hash
81920	statistics_runs
81920	ix_statistics_runs_start
57344	ix_states_meta_entity_id
53248	states_meta
28672	statistics_meta
28672	ix_statistics_meta_statistic_id
12288	sqlite_schema
4096	sqlite_stat1
4096	sqlite_autoindex_migration_changes_1
4096	schema_changes
4096	recorder_runs
4096	migration_changes
4096	ix_recorder_runs_start_end
4096	ix_event_types_event_type
4096	event_types

Ma configuration


Le détail
Version core-2025.1.0
Type d’installation Home Assistant OS
Développement false
Supervisor true
Docker true
Utilisateur root
Environnement virtuel false
Version de Python 3.13.1
Famille du système d’exploitation Linux
Version du système d’exploitation 6.6.66-haos
Architecture du processeur x86_64
Fuseau horaire Europe/Paris
Répertoire de configuration /config

Home Assistant Community Store

GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.1
Stage running
Available Repositories 1504
Downloaded Repositories 27

Home Assistant Cloud

Connecté true
Expiration de l’abonnement 15 août 2025 à 02:00
Relais connecté true
Région relais eu-central-1
Contrôle à distance activé true
Contrôle à distance connecté true
Alexa activée true
Google activé true
cloud_ice_servers_enabled true
Serveur distant eu-central-1-19.ui.nabu.casa
État du certificat ready
ID de l’instance 400829c90f1543509e762622cfb3ca96
Accéder au serveur de certificats ok
Accéder au serveur d’authentification ok
Accéder à Home Assistant Cloud ok

Home Assistant Supervisor

Système d’exploitation hôte Home Assistant OS 14.1
Canal de mise à jour stable
Version du Supervisor supervisor-2024.12.3
Version de l’agent 1.6.0
Version de Docker 27.2.0
Taille total du disque 125.3 GB
Taille du disque utilisé 36.7 GB
Sain true
Prise en charge true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization kvm
Tableau de bord ova
API du Supervisor ok
Version de l’API ok
Modules complémentaires installés File editor (5.8.0), Mosquitto broker (6.4.1), Advanced SSH & Web Terminal (20.0.0), Studio Code Server (5.18.0), ESPHome Device Builder (2024.12.2), MQTT Explorer (browser-1.0.1), Linky (1.5.0), Home Assistant Google Drive Backup (0.112.1), Z-Wave JS (0.9.0), Samba share (12.3.2), Zigbee2MQTT (2.0.0-1), MariaDB (2.7.1), InfluxDB (5.0.1), Grafana (10.2.2), Traccar (0.25.0), phpMyAdmin (0.11.0), SQLite Web (4.3.0)

Dashboards

Tableaux de bord 4
Ressources 13
Vues 17
Mode storage

Recorder

Heure de démarrage de l’exécution la plus ancienne 28 décembre 2024 à 22:27
Heure de démarrage de l’exécution actuelle 5 janvier 2025 à 12:47
Taille estimée de la base de données (en Mio) 2330.41 MiB
Moteur de la base de données sqlite
Version de la base de données 3.47.1

Merci

SliN

Salut,

Je ne sais pas si se focaliser sur la table attribute est une bonne idée… Elle dépends directement des entités que tu mémorises…
Par contre, tu peux refaire un tour pour vérifier que les entités les plus nombreuses, sont bien nécessaires et en les éliminant, tu fera le nettoyage dans la table attribute

Merci @Pulpy-Luke
Donc si je comprends bien, son contenu dépend de la table states.
Donc en limitant les éléments qui s’y rajoutent, je limiterais par effet domino les entrées dans state_attributes.
Au travail du coup … :wink:

1 « J'aime »

C’est exactement l’idée, bon courage

1 « J'aime »

Histoire d’aller jusqu’au bout de la chose.
A partir du moment ou j’aurais mis les plus « gros consommateurs » non intéressants en exclusion, il faut que j’attende les 7 jours de rétention pour voir la BD diminuer ?
Si oui, peut-on faire quelque chose pour que la mise en oeuvre se fasse dans la foulée ?
Merci

Mettre en exclusion, ne veut pas forcement dire gain, même si en virant les plus grosses entités dont tu n’as pas besoin, les probabilités sont plus importantes. Il est toujours possible que les attributs soient rattachés à des entités que tu souhaites conserver.
Et c’est une analyse à faire ponctuellement (suite à ajout de nouvelles choses typiquement)
Perso je fais des includes, comme ça au moins pas de surprise.

Après redémarrage pour prise en compte de la nouvelle config du recorder, tu peux lancer une purge (avec l’option repack) pour voir ce que ça donne. Ce n’est pas toujours instantané, mais plus rapide que 7j
Tu peux aussi aller voir dans les stats s’il reste des trucs anciens non purgé

1 « J'aime »