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)
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 ?
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.
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…
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.
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 ?
Pour le moment, il me manque simplement la commande shell à saisir pour lancer un script python depuis HA OS… Donc je n’ai pas réussi à exécuter de script faute de commande shell qui passe.
Quand je recherche python depuis le Shell avec la commande « which python », il ne le trouve pas : les librairies ne sont pas installées…
Bon, j’ai pu exécuter un script Python grace à l’Add-on Advanced SSH and WebTerminal qui installe les packages Python notamment.
Cependant, sans aucune erreur retournée, les commandes en UPDATE ou DELETE ne semblent toujours pas exécutées !
➜ ~ /usr/bin/python3 homeassistant/python_scripts/script.py
entité = sensor.ecojoko_consommation_reseau
id statistics = 39
Nombre enregistrements = 15
Suppression des données :
DELETE FROM 'statistics' where metadata_id='39'
Mise à jour de la dernière sum de statistics_short_term :
UPDATE 'statistics_short_term' set sum='0' where metadata_id='39' and id='1854497'
En vérifiant en base SQLite ou en re-exécutant le script, j’ai toujours mes 15 lignes dans la table statistics. En tapant la commande en base, cela supprime bien les lignes.
J’ai bien exécuté la commande dans mon script mais ça ne change rien… pragma query_only=0
Je n’ai pas réussi à vérifier la valeur d’AutoCommit mais comme ça fonctionne sur l’interface WebSQLite, j’ai regardé plutôt du côté des droits sur le fichier database, ça donne ça. Seul le fichier database a des accès limités :
J’ai essayé la commande suivante pour lancer mon script en root, toujours sans succès… ➜ ~ sudo /usr/bin/python3 homeassistant/python_scripts/script.py