View on GitHub

Plugin HistoLisse

Documentation officielle du plugin Jeedom HistoLisse

đź”™ Retour au sommaire

âť“ FAQ

Jeedom

Comment fonctionne l’historique de Jeedom ?

→ Vos appareils renvoie des états et des informations que vous pouvez historiser = garder une trace dans la base de données pour ensuite consulter les graphiques ou retrouver des informations à comparer avec des plus récentes.

Par exemple : une prise connectée indique le voltage actuel toutes les 20 secondes (220.15V, 224.2V, 222.35V etc).

💡 L’archivage transfère toutes les données de la table history (les dernières 24h) comme il a lieu à 2h du matin ça inclue aussi les dernières données entre minuit et 2h00 sauf si vous avez réglé le délai avant archivage sur 2h (fortement conseillé dans réglages/système/configuration/équipements : Délai avant archivage) auquel cas il prendra bien tout de 0h00 à 23h59.


Quelle est la configuration idéale de Jeedom pour utiliser ce plugin ?

Le mieux est de garder l’archivage à 02h00 mais avec un délai avant archivage de 2h et d’avoir la sauvegarde qui se lance à 05h25.
Éviter les configurations bizarres comme par exemple un délai d’archivage de 24h…


Quelle devrait être la taille de ma base de données ?

Difficile de répondre à ça puisque ça dépend du nombre d’appareils que vous avez et du nombre de commandes historisées ainsi que de l’ancienneté de votre Jeedom.
Disons qu’en général, pour 70 équipements et 200 commandes historisées, une base Jeedom fera entre 30 et 60 Mo avec la table history autour de 5 à 10 Mo et la table historyArch entre 20 et 50 Mo.
En tout état de cause si votre base de données dépasse les 200 Mo vous avez un sérieux problème de nettoyage à faire !


Quel est l’intérêt d’utiliser HistoLisse dans Jeedom ?

Avec plus de 700 heures de développement il faut espérer que ce plugin ait un véritable intérêt !
La problématique, comme expliqué plus haut, est que Jeedom ne propose que : de ne faire aucun lissage / ou bien de ne conserver qu’un seul enregistrement par heure. Dans le premier cas on a très vite une base de données énorme et dans le 2nd cas on peut manquer d’informations utiles à long terme.

Pour beaucoup de commandes 1 enregistrement par heure est suffisant, c’est même trop à long terme. Mais ça peut être frustrant quand il s’agit de commande qu’on veut comparer d’un mois ou d’une année sur l’autre. Essentiellement toutes les commandes de consommation de courant ou de production solaire dont on veut garder un historique précis mais léger, toutes les 15 Min ou 30 Min pendant plusieurs mois. HistoLisse permet cela.
A l’inverse, 1 par heure peut-être trop à long terme, HistoLisse permet aussi, par exemple, de ne garder qu’un enregistrement toutes les 6 heures sur du long terme (+ de 3 mois) soit 4 par jour au lieu de 24.

L’autre intérêt est pour les commandes du genre Zigbee (sur courant) ou Téléinfo qui ont tendance à envoyer des données toutes les 1 à 10 secondes ce qui surcharge très vite les tables et ralentit d’autant l’affichage des graphiques.
En traitant à chaque heure ces commandes avec un intervalle à la minute on réduit énormément la taille de la table history et donc le temps de chargement des graphiques tout en conservant la possibilité ensuite de l’archiver par 15 ou 30min.

Parfois sur ces commandes on a besoin de cette haute fréquence d’enregistrements pour faire des calculs en direct comme par exemple du délestage, des moyennes sur 1 ou 10min ou des choses comme ça.
HistoLisse permet cela aussi via l’âge des données : On peut ne pas traiter la dernière minute (options jusqu’à 2 dernières heures)d’une commande et donc à la fois réduire le nombre d’enregistrements de la journée tout en gardant une information très précise en live.


Les lissages

Comment marchent les périodes de lissage ?

Les lissages fonctionnent avec leur période de traitement correspondante : d’une heure, un jour, une semaine, un mois, une année à la fois.
On ne peut donc pas traiter par exemple 3 semaines d’un coup ou alors il faudrait ensuite attendre 3 semaines avant de retraiter la commande, ce serait trop complexe à gérer avec des traitements en doublon.


A quelle heure programmer mes lissages ?

Tout dépend de votre configuration Jeedom mais si elle correspond à la configuration idéale donnée plus haut alors :


Pourquoi les lissages ont lieu Ă  hh:01 et pas Ă  hh:00 ?

A l’heure pile Jeedom effectue tout un tas de tâches et de crons. Votre matériel est alors très sollicité en mémoire et processeur.
Même si les lissages ne durent que quelques secondes, il est plus efficace de les décaler d’une minute pour ne pas surcharger votre matériel.
Pour autant même s’il s’exécute à hh:01, le lissage Heure traite bien les données de l’heure précédente entre hh:00 et hh:59 inclus.


Le lissage par Année a-t-il un intérêt réel ?

Généralement non. Vous aurez sans doute déjà un lissage par mois qui fera l’essentiel du travail de réduction des informations. De plus beaucoup de commandes ont une purge inférieure ou égale à 1 an et donc aucune raison de lisser par année. Par contre il peut vous permettre de traiter les quelques commandes avec une purge supérieure à 1 an ou sans purge.

Quand l’utiliser ?
Pour les commandes sans purge ou avec une purge > 1 an.
Lors de la première installation du plugin, pour optimiser les données archivées depuis longtemps.

En effet, même s’il est prévu pour se lancer une fois par an, vous pouvez tout à fait le lancer plusieurs fois en changeant son heure/jour/mois d’exécution dans Réglage des lissages pour traiter par plages d’1 an à la fois vos anciennes données.

Exemple :
Vous avez une commande 85 Téléinfo-indexHP lissée en mode maximum par Jeedom mais sans purge avec 4 ans de données dans la table historyArch (admettons qu’on a 4 années complètes de données dont 6 mois sur l’année en cours = 1 valeur/heure → ~35 000 points ).
Objectif : Réduire le nombre de points tout en conservant l’essentiel de l’information.

  1. il est 10h30
    • Via la Gestion des commandes vous ajoutez la commande 85 Ă  HistoLisse.
    • Dans le rĂ©glage des lissages vous enregistrez pour AnnĂ©e : 11h00, jour 19, mois 7 donc aujourd’hui Ă  la prochaine heure.
    • Dans le rĂ©glage de la commande 85 vous activez le lissage AnnĂ©e en mode maximum (pour garder l’index le plus Ă©levĂ© par intervalle) avec un arrondi Ă  0 (les index n’ont pas de dĂ©cimale) et un intervalle Ă  360min (pour ne garder qu’une valeur toutes les 6 heures, c’est suffisant pour un index après 1 an) et vous indiquez pour le Jour Fin -1461 (1461 jours en arrière = 4 ans : valeur maximale autorisĂ©e) le jour dĂ©but va se règler sur -1826 (5 ans) et les dates vous indiquent un traitement du 19 juillet 2020 0h00 au 19 juillet 2021 23h59.
    • A 11h01 ce premier lissage par annĂ©e est fait pour la commande 85 (et autres si configurĂ©es) vous pouvez vĂ©rifier dans Jeedom (graphique ou historique) que vous n’avez plus qu’une valeur toutes les 6 heures pour les enregistrements avant le 19 juillet 2021 23h59.
  2. il est 11h02
    • Dans le rĂ©glage des lissages vous changez l’heure pour AnnĂ©e Ă  12h00.
    • Dans le rĂ©glage de la commande 85 vous changez le lissage AnnĂ©e en indiquant pour le Jour Fin -1095 (3 ans) et les dates vous indiquent dĂ©sormais un traitement du 20 juillet 2021 0h00 au 20 juillet 2022 23h59.
    • A 12h01 ce second lissage par annĂ©e est fait.
  3. il est 12h02
    • Dans le rĂ©glage des lissages vous changez l’heure pour AnnĂ©e Ă  13h00.
    • Dans le rĂ©glage de la commande 85 vous changez le lissage AnnĂ©e en indiquant pour le Jour Fin -729 (2 ans) et les dates vous indiquent dĂ©sormais un traitement du 21 juillet 2022 0h00 au 21 juillet 2023 23h59.
    • A 13h01 ce 3ème lissage est fait.
  4. il est 13h02
    • Dans le rĂ©glage des lissages vous changez l’heure pour AnnĂ©e Ă  14h00.
    • Dans le rĂ©glage de la commande 85 vous changez le lissage AnnĂ©e en indiquant pour le Jour Fin -363 (2 ans) et les dates vous indiquent dĂ©sormais un traitement du 22 juillet 2023 0h00 au 21 juillet 2024 23h59.
    • A 14h01 ce 4ème lissage est fait.
  5. il est 14h02
    • Dans le rĂ©glage des lissages vous changez l’heure pour AnnĂ©e Ă  15h00.
    • Dans le rĂ©glage de la commande 85 vous changez le lissage AnnĂ©e en indiquant pour le Jour Fin -200 (pour finir au 31/12/24) et les dates vous indiquent dĂ©sormais un traitement du 1 janvier 2024 0h00 au 31 dĂ©cembre 2024 23h59. (NB: Les enregistrements entre 1 janvier 2024 et le 21 juillet 2024 seront vĂ©rifiĂ©s en doublon de l’étape 4 mais ce n’est pas un problème.)
    • A 15h01 ce 5ème lissage est fait.
  6. il est 15h02
    Voilà ! Vous avez nettoyé votre commande 85 (et d’autres) sur la période du 19 juillet 2020 au 31 décembre 2024. Les ~35 000 enregistrements sur 4 ans (dont 6 mois sur l’année en cours) sont devenus 9424 (73% de réduction) répartis en : 5104 (1 toutes les 6h) sur 3,5 ans et 4320 (1 par heure) pour les 6 mois de l’année en cours non traitée. Ces lissages ont divisé par 4 le nombre d’enregistrements sans perte des informations utiles.
    • Dans le rĂ©glage des lissages vous choisissez maintenant votre vraie date pour le lissage AnnĂ©e : 05h00, jour 1, mois 1 soit un prochain lissage le 1er janvier 2026 Ă  5h du matin.
    • Dans le rĂ©glage de la commande 85 vous changez le lissage AnnĂ©e en indiquant pour le Jour Fin -1 et les dates vous indiquent dĂ©sormais un traitement (qui aura lieu le 1er janvier 2026) du 31 dĂ©cembre 2024 0h00 au 31 dĂ©cembre 2025 23h59.

Je ne vois pas certains lissages pour une commande

Les lissages ne sont visibles et activables que si le délai de purge de cette commande est supérieur à la période du lissage.
Par exemple si le délai avant purge = 7 jours → les lissages Semaine et suivants ne seront pas visibles.


Combien de temps dure un lissage ?

Un certain temps… Difficile de donner une règle, tout dépend de votre matériel, de l’occupation de Jeedom à ce moment là etc…
Sur un “vieux” RPI 3b+ avec 2Go de mémoire, il faut compter un peu moins de 3 secondes pour traiter 10 000 enregistrements sur une vingtaine de commandes.
En général, le lissage de chaque heure va durer entre 1 et 2 dixièmes de secondes par commande à traiter suivant son volume de données (0 à 1000). Un lissage Mois qui traite 100 000 lignes dure moins de 20 secondes.


J’ai eu une panne de mon Jeedom pendant 2h ce jour, puis-je rattrapper les lissages Heure non faits ?

Il n’est pas possible de rattraper ce qui n’a pas été fait. C’est pourquoi il est très important de configurer des lissages en cascade en ajoutant par exemple un lissage par jour en plus du lissage par heure et éventuellement un lissage par semaine même si c’est avec les mêmes paramètres (mode, arrondi, intervalle) afin d’être sûr que l’information soit au moins traitée une fois en cas de panne, mieux vaut rester attentif quand vous modifez les rélages de la commande !


Divers

Est-ce que je risque de perdre des données ?

Il n’y a aucune raison de perdre des données de votre historique en dehors d’une mauvaise configuration de votre part dans le réglage de commande, par exemple vous avez saisi par erreur un intervalle de 600 au lieu de 60 minutes et donc vous n’avez plus qu’un point toutes les 10h au lieu d’un par heure.
Si vous vous en rendez compte rapidement, il reste la sauvegarde quotidienne de Jeedom pour restaurer votre base de données (en ne restaurant que les valeurs manquantes mais c’est assez technique).

Où sont stockées les données ?

→ Dans le dossier data du plugin, via des fichiers json qu’il est fortement conseillé de ne pas modifier !
En cas de “problème”, ils sont aussi dans la sauvegarde quotidienne de Jeedom, dans le répertoire data du plugin.

đź”™ Retour au sommaire