Supprimer l'historique d'un capteur

Bonjour,

Voilà j’ai mis en place un capteur ce matin et lors de mes essais celui-ci a pris des valeurs folles (à cause de mes erreurs de calcul) ce qui fait que l’historique de celui-ci est bidon (valeur à plus de 2000). Cela m’empêche donc de voir les variations de celui-ci maintenant qu’il est revenu à des valeurs normales (0-100%).

Quelqu’un d’entre vous sait-il comment faire un reset de l’historique de mon capteur sans perdre l’historique des autres ?

Je sais pas quel type d’installation tu as, mais perso en mode core je procède de cette façon :

  • se connecter à la db en étant dans le dossier config :
sqlite3 home-assistant_v2.db
  • Faire un « select » pour identifier exactement l’item à supprimer :
SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 100;

Ce qui donne qqc du genre :

sqlite> SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 100;
sensor.freebox_download_speed|3655
sensor.freebox_upload_speed|3485
zwave.aeotec_limited_unknown_type_0003_id_00af|3082
sensor.aeotec_limited_unknown_type_0003_id_00af_exporting|2594
sensor.elipse_output_voltage|1658
sensor.aeotec_limited_unknown_type_0003_id_00af_energy|1439
sensor.aeotec_limited_unknown_type_0003_id_00af_previous_reading|1422
sensor.aeotec_limited_unknown_type_0003_id_00af_interval|1412
sensor.aeotec_limited_unknown_type_0003_id_00af_voltage|1383
sensor.aeotec_limited_unknown_type_0003_id_00af_current|1381
  • Et enfin le « delete » :
DELETE FROM states WHERE entity_id="sensor.elipse_output_voltage";
  • et pour finir :
VACUUM;

et

.exit

En toute honnêteté ça fait un moment que je n’ai pas eu à le faire, alors j’espère que le schéma de la bdd n’a pas trop changé sinon il se pourrait que ma méthode ne fonctionne plus.

désolé j’ai oublié de préciser.

System Health

version: core-2022.4.6
installation_type: Home Assistant Supervised
dev: false
hassio: true
docker: true
user: root
virtualenv: false
python_version: 3.9.9
os_name: Linux
os_version: 5.10.63-v7l+
arch: armv7l
timezone: Europe/Paris


GitHub API: ok
GitHub Content: ok
GitHub Web: ok
GitHub API Calls Remaining: 5000
Installed Version: 1.24.5
Stage: running
Available Repositories: 1027
Downloaded Repositories: 15


logged_in: false
can_reach_cert_server: ok
can_reach_cloud_auth: ok
can_reach_cloud: ok


host_os: Raspbian GNU/Linux 10 (buster)
update_channel: stable
supervisor_version: supervisor-2022.04.0
docker_version: 20.10.12
disk_total: 219.8 GB
disk_used: 7.3 GB
healthy: true
supported: failed to load: Unsupported
supervisor_api: ok
version_api: ok
installed_addons: File editor (5.3.3), Samba share (9.5.1), Terminal & SSH (9.3.0), RPC Shutdown (2.2), deCONZ (6.12.0), MariaDB (2.4.0), SQLite Web (3.3.0), Samba Backup (5.0.0), Check Home Assistant configuration (3.10.0), Mosquitto broker (6.0.1), Duck DNS (1.14.0)


dashboards: 3
resources: 6
views: 11
mode: storage

Passe par l’addon SQLite web dans ce cas, les requêtes « écrites » sont dispo

Nikel, merci à vous 2 !
Du coup j’ai procédé comme ci dessous, soit un mix de vos 2 solutions.

Listing du contenu de la base :

Effacement de l’historique de la variable souhaitée (en jaune au dessus) :

Redémarrage de HA et voilà !

Ps: Je n’ai pas fais de VACCUM, c’est nécessaire ? Cela sert à quoi ?

1 « J'aime »

Tu peux trouver l’info ici :

https://www.sqlite.org/lang_vacuum.html

J’avais trouver la procédure sur le forum anglophone.

2 « J'aime »

Donc si j’ai bien compris le « VACUUM » n’est pas obligatoire mais cela optimise la base de données du coup on en profite comme on est dans la base :slight_smile:

1 « J'aime »

Merci les gars pour ces infos, c’est justement ce dont j’avais besoin.

tu pourrais détailler la procédure pour la command VACUUM dans SQLite web?
Ou taper c’est commande ?

Regarde les images que j’ai fait, les commande y sont justement.