Base de données HAOS qui ne reduit pas

Bonjour,
Il me reste moins de 1Go sur ma partition HAOS et je n 'arrive pas résuire la taille de ma base de données aui est à environ 19Go.
J’ai essayée d’utiliser recorder:purge dans outil de d&vellopement en vain. J’ai configuré le recorder dans configuration.yaml en vain.
En ssh, je n’arrive pas à lancer de commande sqlite ou docker (commande not found)
Du coup je sais pas top quoi faire…

Autre question, haos est sur une disque M2 de 256Go. Hors il n’en utilise que 32Go semble-t-il… Comment étendre les partition pour utiliser tout le disque du coup? Sachant que je suis en vm proxmox…

Ma configuration

[center]## System Information

version core-2023.9.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.5
os_name Linux
os_version 6.1.45
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4902
Installed Version 1.32.1
Stage running
Available Repositories 1284
Downloaded Repositories 7
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 10.5
update_channel stable
supervisor_version supervisor-2023.08.3
agent_version 1.5.1
docker_version 23.0.6
disk_total 30.8 GB
disk_used 29.7 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons ESPHome (2023.8.3), Let’s Encrypt (4.12.9), Duck DNS (1.15.0), Samba share (10.0.2), Zigbee2MQTT (1.33.0-1), Mosquitto broker (6.3.1), File editor (5.6.0), Samba Backup (5.2.0), Terminal & SSH (9.7.1)
Dashboards
dashboards 2
resources 4
views 14
mode storage
Recorder
oldest_recorder_run 11 septembre 2023 à 09:50
current_recorder_run 14 septembre 2023 à 21:57
estimated_db_size 19332.96 MiB
database_engine sqlite
database_version 3.41.2
[/center]

Bj

quand tu lance une purge , il me semble que celle ci ce fait progressive.
J’ai du lire un truc sur le forum , je me suis souviens plus de son pseudo, que sa purge étais effective après un reboot électrique de HA …

vais voir pour retrouvé le post en question
Pour agrandir ta partition , tu devrais passé par gparted , tu devrais pouvoir l’agrandir.

Salut,

Avec les infos que tu donne c’est difficile de donner autre chose que des suppositions.
Si ta base a 19Go et qu’elle ne baisse pas c’est peut-être que tu as une base qui doit faire 19Go :slight_smile:

Dans la configuration de recorder, combien as tu de jours de retention?
Combien as tu exclu d’entités du recorder?
Combien as tu d’entités en tout?

Sinon au moment de la purge as tu des messages d’erreur?

Bonsoir,
J’ai 160 entités au total (visible dans /config/entities)

Voila ma conf de recorder:

recorder:
  purge_keep_days: 10
  auto_purge: true
  include:
    domains:
       - sensor
       - switch
       - binary_sensor
       - light
       - person
       - alarm_control_panel
       - climate
       - group
       - zone
       - plant
    
    entities:
       - sensor.hem_energy_energy_4 
       - sensor.hem_energy_power_3
       
  exclude:
    domains:
      - automation
      - updater
      - media_player
      - camera
      - counter
      - cover
      - device_tracker
      - input_datetime
      - input_boolean
      - persistent_notification
      - remote
      - scene
      - script_started
      - sun
      - weather
      - zwave
    event_types:
      - service_removed
      - service_executed
      - platform_discovered
      - homeassistant_start
      - homeassistant_stop
      - feedreader
      - service_registered
      - call_service
      - component_loaded
      - automation_triggered
      - script_started
      - timer_out_of_sync

logbook:
  exclude:
    domains:
      - media_player
      - device_tracker
      - weather
      - sun
    entities:
      - automation.lights_watchdog
      - sensor.date

Il faudrait peut-être regarder avec l’add-on « SQLite Web » qui permet de faire des requêtes pour voir d’où viennent les plus gros volumes.

Concernant la taille de la partition, de base pas certain que tu puisse faire ça, vu qu’avec HA OS tu n’as pas un accès complet à HA. Mais c’est tout de même bizarre que la partition soit de 32Go.
De mémoire je l’avais sur un SSD 120Go et la partition HAOS prenait tout la place dispo.

Avant d’avoir le crash et pour te laisser le temps de faire tes recherches il faudrait peut être que tu passe le paramètre : purge_keep_days: 5 par exemple

j’ai augmenté la taille de la vm sous proxmox et je suis passé à 72% désormais.
Reste a voir maintenant pourquoi la taille ne baisse pas…

je suis actuellement à 7jours. je vais baisser à 5 jours. Mais j’ai pas l’impression que ça baisse pour autant…
J’ai installer SQLite Web. Que faut-il vérifier ensuite? quelle requête?
j’ai executé la requete suivante dans la zone query de la table « States »

`SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 20`

Results (1)

entity_id count
NULL 3498544

Ah ben tu es sous proxmox, ce n’était pas précisé, alors là effectivement c’est plus simple d’augmenter la taille. :wink:

si si s’était mentionné dans mon premier message :slight_smile:

3,5 millions de lignes dans states, ouch.

A titre de comparaison, j’ai ~1000 entités dans HA (pas mal sont desactivées) mais ma table states a 385.000 entrées pour 7 jours de données.

Faudrait refaire la requête mais en faisant le GROUP BY sur « metadata_id » au lieue de « entity_id », la base à changé. Pour savoir quelles entités produisent le plus d’entrée.

Ensuite avec les metadata_id tu peux charger dans la table states_meta pour le nom des entités.

SELECT entity_id, COUNT(*) as count FROM states GROUP BY metadata_id ORDER BY count DESC LIMIT 20

Results (20)

entity_id count
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375
NULL 74375

Essayes ça :

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

ambiguous column name: metadata_id

Désolé je n’ai pas la base SQLite, j’ai pas pu tester.
Ca doit être dans le group by, il n’aime pas ne pas avoir le table des champs

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

il semble que le lixee remplisse bien la base…
Peut-on interroger le lixee que toutes les 5 ou 10 seconde par exemple?
Et ne pas enregistrer par exemple le numero de serie du linky toutes les 5 secondes? :slight_smile:

Results (20)

metadata_id entity_id count
71 sensor.0x00158d000966cba1_meter_serial_number 74433
72 sensor.0x00158d000966cba1_current_tarif 74433
131 binary_sensor.0x00158d000966cba1_update_available 74433
192 sensor.lixee_tic_current_price 74433
193 sensor.lixee_tic_ntarf 74433
194 sensor.lixee_tic_vtic 74433
195 sensor.lixee_tic_current_date 74433
196 sensor.lixee_tic_east 74433
197 sensor.lixee_tic_easf01 74433
198 sensor.lixee_tic_easf02 74433
199 sensor.lixee_tic_easf03 74433
200 sensor.lixee_tic_easf04 74433
201 sensor.lixee_tic_easf05 74433
202 sensor.lixee_tic_easf06 74433
203 sensor.lixee_tic_easd01 74433
204 sensor.lixee_tic_irms1 74433
205 sensor.lixee_tic_irms2 74433
206 sensor.lixee_tic_irms3 74433
207 sensor.lixee_tic_urms1 74433
208 sensor.lixee_tic_urms2 74433

Ben là c’est déjà toutes les 8 secondes si tu fait le calcul.
Un début pour voir le résultat serait d’exclure toutes les entités lixee que tu n’as pas besoin… sur les 20 premières doit y en avoir un floppée qui sont inutiles à garder sur 7jours.

Par exemple, dans le recorder, il suffit de mettre sensor.0x00158d000966cba1_meter_serial_number dans le exclude?

Exemple pour ajouter dans le partie exclude une liste d’entités à exclure.


  exclude:
    entities:
      - sensor.spa_last_ping
      - sensor.shelly_plug_s_puissance
      - sensor.thermo_bureau_battery

Ok.
Merci pour ton aide!
Du coup, ensuite, il suffit d’attendre 7 jour voir chuter la taille de la base?