Bonjour
Le sujet a été déjà abordé notamment ici : Purge de la base de donnees HA
Mais malgré un recoder touffu ma base de données ne se purge pas des anciens enregistrements !
Mon recoder
########################################################
### Base de données ###
########################################################
recorder:
purge_keep_days: 7
auto_purge: true
commit_interval: 20
include:
domains:
- automation
exclude:
domains:
- automation
- binary_sensor
- bodymiscale
- button
- calendar
- camera
- climate
- cover
- device_tracker
- group
- input_boolean
- input_button
- input_datetime
- input_number
- input_select
- input_text
- light
- lock
- media_player
- number
- openplantbook
- persistent_notification
- person
- plant
- proximity
- remote
- script
- select
- sensor
- siren
- sun
- switch
- update
- vacuum
- water_heater
- weather
- zone
event_types:
- automation_triggered
- script_started
- service_registered
- call_service
- service_removed
- service_executed
- platform_discovered
- homeassistant_start
- homeassistant_stop
- feedreader
- component_loaded
- timer_out_of_sync
entities:
- sun.sun
- sensor.cpu
- sensor.cpu_temp
- sensor.date
- sensor.time
- sensor.new_york
- cover.kitchen_cover
- switch.mystrom_switch
- sensor.internet_time
- sensor.solar_angle1
- sensor.solar_angle
- automation.lights_watchdog
- sensor.date_time
- switch.pc_test
- sensor.last_boot
entity_globs:
- sensor.weather_*
- sensor.*_uptime
- sensor.*_tx
- sensor.*_rx
- sensor.*_uptime_2
- sensor.*_tx_2
- sensor.*_rx_2
- sensor.*_motion
- sensor.*_high
- sensor.dalg_3070_*
- sensor.dalg_win11_*
- sensor.unifi_gateway_*
- sensor.internet_time
- sensor.dalg_cam*
- sensor.pc_test_*
- select.pc_test_*
logbook:
exclude:
domains:
- media_player
- device_tracker
- weather
- sun
entities:
- automation.lights_watchdog
- sensor.date
J’ai donc lancer le petit logiciel sympathique de DB Browser qui permet de bien voir les choses
Actions : Copie de la base de données sur un disque isolé, lancement de l’outil et de la requête SQL :
SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 20;
le résultat est immédiat
Je dois certainement en avoir encore d’autres qui suivent
Ma question : faut-il que je supprime une à une les entity_id que je ne veux plus via une requête simple et radicale :
DELETE FROM states WHERE entity_id="switch.pc_test"
ou bien je peux le faire en masse mais ciblé quand même ?
En complément, j’ai déjà une automation (depuis pas mal de temps) qui purge normalement la base si > 1Go ! mais sans effet malgré un sensor bien supérieur
Mon automation
alias: Purge de la base de donnée
description: Purge la base de donnée lorsque celle-ci dépasse 1Go
trigger:
- platform: numeric_state
entity_id: sensor.home_assistant_v2_db_size
above: "1000"
condition: []
action:
- service: recorder.purge
data:
keep_days: 7
repack: true
mode: single
j’aimerais pas être hyper radical non plus en supprimant ma base.
Je voudrais bien garder ma production de panneau solaire par exemple.
Se posera ensuite la question, comment avoir de l’histoire sur des temps long (années) et des éléments juste pour affichage Dashboard. Avec quel méthodes, outils etc…
Mais avant tout j’aimerais pouvoir réduire cette BDD comme il faut et faire en sorte qu’elle ne profite plus autant qu’aujourd’hui : un bon régime
Merci de votre aide