Dashboard Energie - Calcul sur les jours passés

Mon problème

Bonjour !
J’ai passé pas mal de temps à bien comprendre / configurer mon dashboard énergie et maintenant c’est bon, ça fonctionne comme je veux. Par contre, je n’ai des données que depuis que tout est propre, soit 48h alors que j’ai des remontés de mes capteur depuis plus d’un mois.

Comment est-ce que je peux « forcer » HA à re-calculer les statistiques des jours passés ? Toutes les données de consommation sont bien là. C’est vraiment la compilation statistique qui ne se fait que d’heure en heure.

Merci d’avance pour votre retour et bonne journée !!

Ma configuration

[center]## System Information

version core-2024.1.6
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 5.15.0-92-generic
arch aarch64
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 1407
Downloaded Repositories 7
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 3
resources 5
views 2
mode storage
Recorder
oldest_recorder_run 27 février 2024 à 10:10
current_recorder_run 1 mars 2024 à 22:44
estimated_db_size 1649.05 MiB
database_engine mysql
database_version 8.3.0

Bonjour,

Si tu as changé le nom des utility meters utilisés dans le dashbaord energie, tu perds en effet l’historique.

Merci Gilles ! Effectivement, c’est le cas, il y a eu des changements donc j’ai perdu l’historique.

D’où ma question : comment re-calculer pour les jours passés ?

Je ne pense pas que c’est possible.
Des personnes plus expertes que moi pourraiet peut-êter t’aider, mais je pense que ça nécéssiterait de modifier la base de donnée historique de HA poru récupérér les anciennes données et les ré-injeter sur le nouvel utility meter.
Une idée: si l’ancien utility_meter a été remplacé par un nouveau tout simplement, il suffit de rajouter l’ancien sur ton dashboard. Il aura des données sur le passé, puis le nouveau prendra le pas à partir de sa création. Bien sûr, celà ne fonctionne que s’il n’y a pas duplication à un moment t.

je viens d’avoir le même problème suite à un problème avec ma base de données en février, j’ai perdu mon historique, j’ai posé la même question et pas eu de réponse.
on a les historiques ou les utility meter avec les statistiques long terme mais au T0 de la création, donc apparemment tout ce qui était avant est perdu.
J’ai pas mal cherché, modifier la base de données, c’est pas simple et trop complexe, du moins pour moi.
Il y a un outil dans spooke ‹ Recorder: Import statistics :ghost: › mais très peu documenté, j’arrive à valider le service mais rien ne remonte, j’ai abandonné, je me suis fait une raison, j’ai perdu tout ce qui était avant mi février.

Il y a une différence importante entre la perte de la bas de donnée de l’historique et le changement de sensor utilisé dans le dashbaord energy.
Dans le cas du changement de sensor, les anciens sensors restent disponibles. Il est donc possible de les utiliser, même si ils ne sont plus mis à jour par exemple.

Mince. J’ai l’impression que nous sommes dans la même situation.

Je reviendrai poster ici si je trouve une solution ! Au moins je sais que je ne suis pas tout seul ! :smiley:

1 « J'aime »

Bonjour,
Je ne sais pas si ça pourrait satisfaire, mais en exportant la bdd et en ajustant une requète d’Update en sql je pense que ce n’est pas trop compliqué de remplacer l’ancien nom de tes devices par le nouveau…et ensuite remplacer la db actuelle…?

En fait le besoin (de mon côté en tout cas), ce n’est vraiment un problème de renommage. Les données de la table states sont bien sur les mêmes capteurs, il n’y a pas de piège pour le calcul de la consommation par jour.

Par exemple, en regardant la table statistics_meta, je vois que le capteur que j’ai choisi pour le dashboard énergie c’est lui : sensor.index_cummule_global qui a pour metadata_id 5.

Via cette requête MySQL :

SELECT 
    DATE_FORMAT(date_col, '%e %M, %Y, %H:00') AS hour_start,
    IFNULL(SUM(value_col - prev_value_col), 0) AS increase_per_hour
FROM 
    (SELECT 
        FROM_UNIXTIME(created_ts) AS date_col,
        state AS value_col,
        LAG(state) OVER (ORDER BY FROM_UNIXTIME(created_ts)) AS prev_value_col
    FROM 
        statistics
    WHERE
        metadata_id = 5
    ) AS t
GROUP BY 
    DATE_FORMAT(date_col, '%e %M, %Y, %H:00')
ORDER BY 
    hour_start;

Dans un outil de statistique (Metabase, pour les curieux), j’obtiens ça :

Donc information/problème 1 : depuis le 1er mars, toutes les données de la table statistics sont là et sont bonnes. Mais quand je regarde dans le tableau énergie :
ha-energy-bug

Donc je suis un peu embêté ici. Quelles sont les données qui sont utilisées par le tableau énergie ? Pcq dans mon cas ça ne correspond pas entre la table statistics et le tableau de bord. :frowning_face:

Par exemple, pour aller plus loin j’ai vérifié, pour avant le 1er mars, il n’y a effectivement rien dans la table statistics. Mais j’ai ce qu’il faut dans states !

Avec cette requête sur la table states :

SELECT 
    DATE_FORMAT(date_col, '%e %M, %Y, %H:00') AS hour_start,
    IFNULL(SUM(value_col - prev_value_col), 0) AS increase_per_hour
FROM 
    (SELECT 
        FROM_UNIXTIME(last_updated_ts) AS date_col,
        state AS value_col,
        LAG(state) OVER (ORDER BY FROM_UNIXTIME(last_updated_ts)) AS prev_value_col
    FROM 
        states
    WHERE
        metadata_id = 4 and attributes_id  = 5 
    ORDER BY last_updated_ts
    ) AS t
GROUP BY 
    DATE_FORMAT(date_col, '%e %M, %Y, %H:00')

J’ai bien des données jusqu’au 19 février.

Donc deuxième sujet : comment forcer HA à prendre en compte les données de states historiques dans le tableau énergie ?

As tu exploré cette piste?

Dis autrement, as tu essayé de lier les anciens noms des sensors en plus des actuels pour les faire remonter dans le tableau energie (comme si tu avais plusieurs fournisseurs d’elec)?

Ou dit encore autrement dans le reglage du dashboard energie, mettre tous les utility meters en double: l’ancien nom et le nouveau nom.

Si ça marche tu aura juste un changement de couleur des barres au changement de nom…

1 « J'aime »

c’est pas lié a ta demande/question, mais il semble que tu a ton énergie soit qu’en entier, c’est normale ?

si tu utilise le lixee sous zigbee2mqtt, il faut changer la précision :

1 « J'aime »

Ah ! Je me suis posé la question au moment de l’installation, mais quand j’ai lu la petite phrase « This option can only decrease the précision, not increase it. » je me suis arrêté là !
Ca porte à confusion du coup…