HA garde 1 mesure par heure dans l’historique. Sur du long terme, ç’est aussi bien que 6 par heure.
En configurant le recorder sur 10 ans, ce ne sera pas considéré comme de l’historique. Tu risques d’avoir des comportements inattendus et probablement des problèmes de perfs.
Avant que je configure la rétention à 10 ans, en visionnant une entité dans l’historique je voyais 10 jours de données et la courbe était d’une couleur claire… après ces 10 jours la couleur était sombre mais comme vous dites il y avait des valeurs enregistrées.
Mais : dans un chart, uniquement les valeurs des 10 jours etaient affichées !
Du coup je suis d’accord avec vous de remettre la rétention ‘détaillée’ à une durée minimale mais alors comment afficher plus de 10 jours dans un chart ?
Oui j’ai essayé ça mais pas possible de customiser comme APEX, par exemple pas possible de changer la couleur des barres, pas possible d’afficher les valeurs sur les barres, etc … c’est très limité.
Il me reste encore a trouver le moyen de migrer mon historique de Jeedom vers HA et la tout sera OK. (il me semble avoir vu une intégration HACS pour cela …)
Edit : stats de Jeedom exportées et importées dans HA grace au HACS “Import Statistics“
Par exemple j’ai 6 prises Nous Tasmota en WiFi qui remontent toutes les mesures genre toutes les 10s, or la puissance réactive ou la tension par exemple, ça me sert à rien, je veux juste la puissance pour savoir si le radiateur est en train de chauffer ou pas.
Donc recherche tasmota_ puis tri par nom d’entité, et tous les “Reactive Power” arrivent collés ensemble dans la liste. Clic, Shift-clic, comme dans l’explorateur, tous d’un coup.
J’ai généreusement mis du disable un peu partout sur toutes les entités qui me servent pas.
Tu peux installer l’addon SQLite Web et faire cette requête qui te donnera les entités avec le plus de lignes dans la table states :
SELECT m.metadata_id, m.entity_id, cnt, datetime(ts, 'unixepoch') last_update FROM
(SELECT metadata_id, count(*) cnt, max(last_updated_ts ) ts FROM states GROUP BY metadata_id ORDER BY 2 DESC LIMIT 100) c
JOIN states_meta m USING (metadata_id)
Cette requête donne la taille des principales tables :
SELECT
name,
size/1048576.0 AS size_MB,
rowcount,
size/rowcount AS bytes_per_row
FROM (
SELECT name, sum(pgsize) size FROM dbstat GROUP BY name
) sizes
NATURAL JOIN (
SELECT 'event_data' AS name, (SELECT count(*) FROM event_data) rowcount UNION ALL
SELECT 'event_types', (SELECT count(*) FROM event_types) rowcount UNION ALL
SELECT 'events', (SELECT count(*) FROM events) rowcount UNION ALL
SELECT 'migration_changes', (SELECT count(*) FROM migration_changes) rowcount UNION ALL
SELECT 'recorder_runs', (SELECT count(*) FROM recorder_runs) rowcount UNION ALL
SELECT 'schema_changes', (SELECT count(*) FROM schema_changes) rowcount UNION ALL
SELECT 'state_attributes', (SELECT count(*) FROM state_attributes) rowcount UNION ALL
SELECT 'states', (SELECT count(*) FROM states) rowcount UNION ALL
SELECT 'states_meta', (SELECT count(*) FROM states_meta) rowcount UNION ALL
SELECT 'statistics', (SELECT count(*) FROM statistics) rowcount UNION ALL
SELECT 'statistics_meta', (SELECT count(*) FROM statistics_meta) rowcount UNION ALL
SELECT 'statistics_runs', (SELECT count(*) FROM statistics_runs) rowcount UNION ALL
SELECT 'statistics_short_term', (SELECT count(*) FROM statistics_short_term) rowcount
) counts
ORDER BY size DESC;