Suppression automatiques de statistiques tous les jours (SQL, python, automatisations...)

Bonjour,

J’ai une entité dont je souhaite supprimer automatiquement les données statistiques tous les jours à Minuit.

Je m’explique :

  • je récupère ma consommation d’énergie ‹ live › via l’intégration Little Monkey (EcoJoko)
  • je récupère toutes les nuits mes données ENEDIS via linkyHa

Pour les données du jour, seul EcoJoko me remonte des données : j’aimerais les garder
Pour les données plus vieilles, j’ai un doublon EcoJoko/Enedis dans mon Tableau de Bord Energie

J’ai fait un script Python que j’exécute avec Python Script mais seul les requêtes SQL SELECT fonctionnent (ni DELETE ni UPDATE possible).
Je n’arrive pas non plus à exécuter le script python en Terminal SH directement, donc je ne suis pas allé plus loin pour le mettre dans une crontab.

Je supprime donc directement en base avec SQLite les stats d’EcoJoko mais j’aimerai l’automatiser (et cela pose un problème de Sum que je dois réinitialiser sur la dernière entrée également…)

Avez-vous une solution automatique à proposer ?

Merci d’avance !

Ma configuration


[center]## System Information

version core-2024.7.2
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.33-haos
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 5000
Installed Version 1.34.0
Stage running
Available Repositories 1403
Downloaded Repositories 33
HACS Data ok
Home Assistant Cloud
logged_in true
subscription_expiration 28 juillet 2024 à 02:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled true
google_enabled true
remote_server eu-central-1-20.ui.nabu.casa
certificate_status ready
instance_id 8970eb8ab69d4ac8b25f7b5473f55b0f
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.4
update_channel stable
supervisor_version supervisor-2024.06.2
agent_version 1.6.0
docker_version 26.1.4
disk_total 30.8 GB
disk_used 8.7 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity false
ntp_synchronized true
virtualization kvm
board ova
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.14.0), File editor (5.8.0), Linky (1.4.0), Matter Server (6.2.1), Samba share (12.3.1), go2rtc (1.9.4), Increase Swap (1.1.3), Samba Backup (5.2.0), SQLite Web (4.1.2)
Dashboards
dashboards 3
resources 23
views 12
mode storage
Recorder
oldest_recorder_run 6 juillet 2024 à 21:56
current_recorder_run 11 juillet 2024 à 00:17
estimated_db_size 148.30 MiB
database_engine sqlite
database_version 3.45.3
[/center]

Hello
Tu dois pouvoir faire cette action grâce au recorder quo gère la rétention des données

1 « J'aime »

Hello

Le service recorder purge ne fait pas l’affaire ?

Exemple :

service: recorder.purge_entities
data:
  keep_days: 1
  entity_id:
    - sensor.relais_sas_energy

Encore synchros @ddfdom :grin:

2 « J'aime »

Bonjour,

J’avais essayé, mais j’ai pas eu l’impression que cela a eu un effet sur les statistiques.
Recorder ne supprime pas que les events/states ?

Krull56 : cette conf, je la mets où ? Dans configuration.yaml ?

Je vais essayer, et je vous dis ça dans 2 jours :slight_smile:
Merci !

Tu peux créer une automatisation qui va lancer ce service tous les n jours à xx heure ( dans ton cas tous les jours à minuit avec un keep à 0)

@+

Bonjour,

J’ai testé le recorder, et comme je le pressentais le recorder ne supprime pas les statistiques horaires (tables statistic), seulement les données détaillées (tables states)…

J’ai toujours mes lignes dans la table statistiques (celles qui sont visibles dans le Dashboard Energie) et je n’ai plus de lignes dans la table States.

N’y a-t-il pas une autre solution pour exécuter une requête SQL en écriture de manière automatisée pour mon cas de figure ?

Merci d’avance !

Bonjour,

Je me permets de relancer ce sujet, car je n’ai toujours pas trouvé de moyen d’exécuter une requête automatique de suppression de données en base : tous les moyens que j’ai trouvés brident l’écriture/suppression de données.

Merci !

Avant de jouer ton DELETE, tu mets à jour la valeur de « pragma query_only » ?

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

Bonjour,

Merci pour ton retour.

J’ai exécuté en amont pragma query_only=0 dans mon script sans succès…
En exécutant pragma query_only, cela me remonte bien 0 dans SQLITE ou via mon script.

Donc le paramètre est donc bien positionné, mais cela semble être une limitation de pythonscript/home assistant…

Mathieu

Du coup, il faudrait faire un script en full python, qui serait appelé en ligne de commande.

En effet.
Connais-tu la procédure pour exécuter un script Python directement depuis HA OS ?
Car mes précédents tests ne donnaient rien de concluant, surement des librairie manquantes ou ma syntaxe de lancement de script qui n’était pas bonne.

Merci beaucoup

Tu peux utiliser l’intégration : « shell command ».

Bonjour,

J’ai déjà installé et testé des commandes via cette intégration, mais je n’ai pas réussi à lancer mon script Pyhton avec : as-tu la commande exacte à éxecuter ?
Et s’il y a des packages python à installer/activer sur HA OS ?

Merci !

Quelles erreurs as-tu ? As-tu réussi à éxécuter un script plus simple ?