La fonction principale du plugin est de fournir un ensemble complet d’outils permettant:
L’activation optionnelle de l’archivage intégré au plugin permet d’étendre très significativement les fonctions d’archivage proposées par Jeedom.
L’historique dans Jeedom a peu évolué depuis les premières versions et se base sur 2 tables:
La structure des deux tables est identique et très simple: une valeur est enregistrée par commande Id et datetime (géré à la seconde).
L’historique peut être affiché dans l’interface Jeedom sous forme de graphe.
La documentation officielle concernant la gestion des historiques dans Jeedom se trouve ici.
L’utilisateur de Jeedom commencera à s’intéresser à l’historique lorsqu’il constatera une base de données qui grossit de façon exagérée, des temps d’affichage de l’historique qui deviennent très longs, une taille de sauvegarde qui ne cesse de croître.
Le lien suivant permet d’accéder à un tutoriel qui explique comment créer un scénario qui listera les volumes des tables les plus volumineuses et les commandes INFO avec les plus gros historiques Tuto - Analyser les archives.
Plus simplement, vous pouvez voir les volumes des tables en interrogeant directement la base de données (menu Réglages / Système / Configuration puis onglet OS / DB (le dernier) puis bouton “Administration base de données” (bouton rouge le plus bas) puis sur la gauche interrogation “taille”).
Dans une installation standard, il faut commencer à s’interroger lorsque le volume global des archives dépasse le million d’enregistrements ou qu’une commande info à plus de 10 000 enregistrements. Dans ce cas, il est nécessaire d’analyser les commandes concernées et de jouer sur les différents paramètres de l’historisation et de l’archivage afin de réduire ce volume. Si ce n’est pas possible, il faudra peut-être se tourner vers d’autres méthodes d’archivage, par exemple influxDB qui peut s’interfacer en standard avec Jeedom.
Le plugin archiplus donne immédiatement les volumes de history et historyArch et permet de cibler facilement les problèmes et d’y apporter des solutions.
Bien que dans de nombreuses installations, le fonctionnement standard sera suffisant, on peut relever les limitations suivantes :
Le plugin archiplus permet de visualiser dans un tableau les commandes de type INFO avec l’ensemble des paramètres relatifs à l’archivage. Le nombre d’enregistrements dans history et historyArch est également présenté ce qui permet de détecter très facilement les volumes excessifs. Le plugin utilise la librairie javascript Tabulator qui est extrêmement performante et permet un accès très facile aux fonctions du plugin.
Toutes les fonctions offertes par Jeedom sont disponibles directement et d’autres fonctions ont été ajoutées:
De plus, le processus d’archivage du plugin peut être activé en remplacement de la fonction archive native offerte par Jeedom. Celui-ci permet:
le plugin archiplus a été développé sous Debian 12 et n’utilise pas jQuery (de même que les bibliothèques 3rd party utilisées). Il respecte les standards de développement de Jeedom. Le code de la classe archiplus est très structuré et largement documenté : l’auteur du plugin étudiera toutes les propositions de correction ou d’amélioration.
Jeedom n’ayant pas de plan d’évolution de la gestion de l’historique, le plugin ne devrait pas nécessiter de refonte dans un avenir proche.
Le plugin et son processus spécifique d’archivage ont été testés très rigoureusement mais ne sont cependant pas à l’abri d’anomalies. Dans ce cas, l’équipe Jeedom n’est évidemment pas tenue d’apporter son support. Les demandes d’analyses et de correction devront être adressées impérativement à l’auteur du plugin via la demande d’assistance standard.
L’activation du plugin et en particulier du processus d’archivage impliquent donc une pleine acceptation de cette situation.
Aller dans le Market Jeedom, trouver le plugin archiplus et installer la version stable. Puis Activer le plugin.

Le plugin est accessible via le menu.
Dans la configuration, vous pouvez paramétrer les paramètres habituels des plugins et les valeurs par défaut du plugin.

Pour avoir un maximum d’informations sur le processus d’archivage du plugin et les actions réalisées, il est conseillé de mettre les logs en mode Debug.
Noter que les demandes de support devront se faire via le bouton Assistance.

Dans la section configuration, vous pouvez:
L’activation de l’archivage spécifique crée un nouveau cron dans le moteur de tâches et désactive l’archivage standard. La désactivation de l’archivage spécifique effectue l’opération inverse.
Si vous voulez tester le processus d’archivage du plugin, vous pouvez l’activer temporairement, faire des tests d’archivage sur des commandes individuelles puis désactiver l’archivage du plugin. Le processus d’archivage de Jeedom se lançant habituellement à 5 heures du matin, il n’y aura pas d’impact sur les commandes non testées.

A partir du menu Plugins / Monitoring / archiplus, vous avez accès à la totalité des fonctions du plugin
La visualisation des données historiques est accessible à partir du module Monitoring et Restore.
Les modules sont lancés à partir de la configuration du plugin.

La base de l’interface est un tableau Tabulator rempli avec les données pertinentes.
Par exemple, avec le module Monitor, un tableau est affiché avec les commandes de type INFO ayant la fonction historique activée.
L’écran comporte plusieurs parties.

Les boutons permettent des actions globales concernant l’affichage, les lignes sélectionnées, les mises à jour, …

Les boutons ci-dessus sont communs à tous les modules et permettent :

Le bouton standard “Aide sur la page en cours” permet d’accéder à la documentation du plugin.

La première colonne permet de sélectionner les lignes sur lesquelles on souhaite agir.
En cliquant sur l’en-têtes de colonne, on sélectionne toutes les lignes affichées du tableau.
On peut sélectionner chaque ligne individuellement en cliquant sur la case à cocher ou sur n’importe quel endroit de la ligne.
On peut sélectionner aussi une suite de lignes en cliquant sur la première à sélectionner en maintenant la touche Contrôle enfoncée puis en cliquant sur la dernière toujours en maintenant la touche Contrôle enfoncée.

Les en-têtes de colonne décrivent le contenu des cellules situées dans la colonne.
Elles permettent :
Dans le cas du module Monitor, un regroupement des colonnes permet de sélectionner uniquement certains types d’information.

Les lignes présentent les informations demandées.
En fonction du contexte, un clic droit fait apparaître un menu contextuel avec les actions possibles.

En cliquant sur un champ modifiable, on peut entrer une nouvelle valeur.

Les champs modifiés apparaissent sur un fond magenta qui disparait après validation des modifications.

En bas du tableau sont affichés les totaux correspondant aux lignes affichées ou sélectionnées.
Il s’agit du module principal de archiplus.

Après avoir cliqué sur Monitor, les commandes INFO avec un historique actif sont affichées en quelques secondes.

En cliquant sur le bouton ci-dessus, on peut basculer sur l’affichage de toutes les commandes INFO, même celles qui ne demandent pas d’historique ou celles dont l’équipement est inactif.

Le nombre d’enregistrements dans history et historyArch correspond généralement à celui du dernier archivage (on peut voir la date de mise à jour en laissant la souris sur un des compteurs). En cliquant sur l’en-têtes de colonne #All, on peut voir immédiatement les commandes avec le plus gros historique.

En cliquant sur le bouton ci-dessus, on peut relancer un calcul ce qui prendra quelques secondes.

Les totaux en bas du tableau vous permettent de connaitre immédiatement la taille de votre historique.

Les boutons de visualisation permettent de sélectionner les données affichées
Suivant ce qui vous intéresse, vous pouvez activer ou non la partie que vous voulez gérer. Afin de ne pas surcharger l’écran de démarrage de Monitor, seules les données d’identification, de configuration et les statistiques sont présentées.

Pour modifier une donnée, il suffit de cliquer sur la zone concernée et d’entrer une nouvelle valeur.

Les données modifiées apparaissent sur fond magenta.

Avec un clic droit sur une ligne, il est possible de copier sa configuration ou l’un de ses paramètres sur les lignes sélectionnées.

Afin de contrôler les données avant validation, il est possible d’afficher uniquement les lignes modifiées.

Après avoir cliqué sur le bouton Valider, les données sont mises à jour et le fond des cellules modifiées est effacé.

Noter qu’un clic droit sur une ligne permet de lancer directement la configuration avancée de commande de Jeedom.

Il est également possible de charger des modifications à partir d’un fichier Excel ou CSV en cliquant sur le bouton Import. Celui-ci permet de sélectionner le fichier et de charger les données modifiées dans le tableau.

Les données doivent avoir le même format que celui généré par l’export. Il est donc possible d’exporter les données, de les modifier dans Excel puis de charger les modifications dans le tableau.
Il est également possible d’extraire les paramètres d’archivage depuis une sauvegarde Jeedom et de charger les modifications: cela permet de voir rapidement les changements effectués depuis la sauvegarde et éventuellement de revenir à une situation antérieure.

Une fois l’import effectué, il est possible de visualiser uniquement les données modifiées en cliquant sur le filtre “Mises à Jour”. On peut également cliquer sur les boutons d’affichage (Configuration, Calculs, …) pour voir toutes les données modifiables.
Pour appliquer les modifications, cliquer sur le bouton Valider.
L’ensemble des données de paramètrage de l’historique standard de Jeedom et celles spécifiques au plugin archiplus peuvent être modifiées directement à partir de Monitor.
Ci-dessous sont détaillées les options spécifiques à archiplus:
Permet de toujours conserver au moins un enregistrement dans l’historique. Voir la FAQ suivante pour comprendre l’utilisation de cette option Keep Last Value.
Permet de supprimer les valeurs consécutives identiques dans historyArch. Voir la FAQ suivante pour comprendre l’utilisation de cette option Uniq.
Il s’agit du délai à partir duquel on transfère les enregistrements de history vers historyArch. En standard dans Jeedom, ce paramètre est le même pour toutes les commandes. Avec archiplus, ce délai peut être spécifié par commande.
Permet de fixer le moment jusqu’auquel on purge les données historiques et aussi celui du transfert des données de history vers historyArch sur une limite de jour, heure ou minute. Voir la FAQ suivante pour comprendre l’utilisation de cette option Délai et Cadrage.
Permet de faire une moyenne pondérée en tenant compte du temps et non une moyenne des valeurs enregistrées sur la période. Voir la FAQ suivante pour comprendre l’utilisation de cette option Lissage et pondération.
Définit selon quel intervalle les données vont être regroupées lors du lissage. Dans l’archivage standard de Jeedom, ce paramètre est le même pour toutes les commandes et est un multiple d’heures. Avec archiplus, on peut préciser l’intervalle pour chaque commande et aussi exprimer la valeur en minutes (entrer le nombre de minutes suivi de la lettre m). Voir la FAQ suivante pour comprendre l’utilisation de cette option Pack.
En standard dans Jeedom, on peut préciser l’arrondi pour chaque commande. Le plugin permet en plus de préciser un arrondi différent lors du lissage des données dans historyArch. Voir la FAQ suivante pour comprendre l’utilisation de cette option Arrondi.

En faisant un clic droit n’importe où sur une ligne du tableau, on fait apparaître le menu contextuel de la commande. En plus des actions déjà vues, celui-ci permet :

L’accès aux données dans les tables history et historyArch se fait via :

Les données sont présentées dans une fenêtre modale triées par datetime décroissant.

Il arrive parfois que l’on ait des valeurs aberrantes, ici suite à la maintenance de la chaudière.

Le menu contextuel permet de modifier ou supprimer la valeur concernée.

Après correction, l’affichage de l’historique est alors bien plus significatif.

Il est également possible de supprimer plusieurs données historiques en les sélectionnant et cliquant sur le bouton supprimer.

Le bouton Export permet d’exporter les données.
Noter que celles-ci peuvent être retravaillées dans Excel afin d’être importées via le module Import.
Le module Import permet d’importer des données historiques dans une ou plusieurs commandes de type INFO.

Le fichier à importer doit être de type Excel ou CSV et doit comporter au moins les 3 colonnnes suivantes (les autres seront ignorées):
Noter que les données extraites des modules Monitor ou Restore sont au bon format.

La première action à effectuer est de sélectionner le fichier contenant les données.

Après chargement, les données historiques du fichier sont chargées.
Les données de la commande INFO sont extraites de Jeedom.
Un contrôle est effectué et les données en erreur sont détectées.

Il est possible d’affecter les lignes chargées à une autre commande en sélectionnant la ou les lignes concernées et cliquant sur le bouton “Changer Commande”.

Pour importer les données historiques dans Jeedom, il faut sélectionner la ou les lignes concernées (ici filtre sur une plage de dates) et cliquer sur le bouton “Importer”. Les lignes en erreur sont ignorées.

Noter que l’import est réalisé par la méthode standard cmd::addHistoryValue. Aussi ce sont les contrôles et traitements standard de Jeedom qui sont effectués. Les nouvelles entrées se retrouvent dans la table history.
Le module Restore permet d’extraire les données historiques depuis une archive standard Jeedom et de les exporter afin de pouvoir les importer avec le module Import.
Tous les traitements s’effectuent en local sur le navigateur WEB. L’ensemble des commandes et données historiques sont chargées dans la mémoire du navigateur. Le programme a été testé avec 1.5 million de lignes dans history plus historyArch. Le nombre maximum de données chargées dépend de la RAM allouée au navigateur et ne peut pas être connu à priori. Il devrait cependant être capable de charger la plupart des sauvegardes où l’historique n’a pas explosé.

La première étape est de rapatrier la sauvegarde en local sur l’ordinateur. Voir la documentation suivante pour la gestion des sauvegardes Jeedom ici.

Lancez le module Restore et sélectionnez l’archive que vous souhaitez utiliser.

Après quelques secondes, les commandes avec un historique sont affichées.

Vous pouvez sélectionner les commandes qui vous intéressent et lancer l’export.

Vous pouvez également afficher les données historiques concernées et sélectionner celles à exporter.

Dans les 2 cas, vous retrouvez un export que vous pouvez utiliser pour réaliser un import avec le module Import.

En cliquant sur les boutons de visualisation, on peut afficher les paramètres des commandes INFO tels qu’ils étaient lors de la sauvegarde. Le filtre Tout permet d’afficher toutes les commandes INFO.
Le bouton Export permet de générer un fichier qui pourra être utilisé pour charger dans le module Monitor les différences de configuration depuis la sauvegarde.
Dans certains cas, il est nécessaire de disposer de la dernière valeur de la commande INFO.

Prenons le cas d’une chaudière dont on relève périodiquement le compteur de gaz affecté au chauffage.

Un scenario exécuté chaque heure permet de calculer la consommation horaire en faisant la différence entre la valeur dans l’historique au début et la fin de l’heure. Pour ce faire, un historique d’une journée est suffisant.
Cependant, quand la saison de chauffe est terminée, l’historique du compteur de chauffage a disparu et il n’est plus disponible pour calculer la première consommation horaire lors de la première chauffe de la saison suivante.
L’activation de l’option Keep Last Value permet de pallier ce problème sans devoir recourir à des artifices de programmation ou garder un historique sur une année.
Jeedom permet d’éviter les doublons dans la table history avec l’option “Répéter les valeurs identiques” qui est désactivée par défaut.
Il y a cependant plusieurs situations dans lesquelles les valeurs consécutives identiques ne sont pas ignorées :
Lors de l’archivage, s’il n’y a pas de lissage, les données de history sont transférées directement dans historyArch et les doublons sont donc copiés.
L’activation de l’option Uniq permet de supprimer les doublons dans historyArch lors de l’archivage spécifique de archiplus.
En standard, le moment à partir duquel on supprime les données dans history et historyArch est défini par le paramètre “Purger historique” exprimé en heures. Une valeur par défaut est définie dans la configuration globale de Jeedom.
Ainsi, avec une purge définie à 7 jours, si l’archivage est lancé le 20/01/2025 à 05:11:21, les enregistrements history et historyArch seront supprimés jusqu’au 13/01/2025 à 05:11:21.
Le paramètre Cadrage spécifique à archiplus permet de fixer plus précisément le moment de la purge. Ainsi, dans l’exemple ci-dessus, le moment de la purge sera :
Le “Délai avant archivage” (en heure) permet de déterminer à partir de quel moment les enregistrements de history sont transférés vers historyArch (avec ou sans consolidation). En standard, il est défini de façon globale et est donc identique pour toutes les commandes.
L’archivage spécifique de archiplus permet de définir un délai spécifique pour chaque commande INFO et d’utiliser le cadrage vu ci-dessus. Ainsi avec un délai de 2 heures, le moment de transfert de history vers historyArch sera :
Noter que le moment de la purge ne peut pas être postérieur au moment du transfert de history vers historyArch et sera donc ajusté automatiquement.

On peut jouer sur ces paramètres si on souhaite par exemple un historique détaillé sur une courte période (ici 36 heures maxi) sans besoin d’un archivage consolidé. On évite ainsi le transfert de history vers historyArch qui n’apporte rien.
Le lissage intervient lors de la copie des données de history vers historyArch. Le processus d’archivage considère toutes les données de history selon l’intervalle défini (par défaut une heure) et conserve une seule valeur calculée selon le mode de lissage. Trois modes sont possibles :
Il faut noter que l’archivage standard ne tient pas compte de la valeur de la commande au début de l’intervalle et fait une moyenne des valeurs présentes dans l’intervalle, ce qui peut fausser significativement le résultat.
Le processus spécifique d’archivage de archiplus propose une option Pond qui permet de corriger ce phénomène et de calculer un résultat exact sur l’intervalle considéré.
Ceci est illustré dans l’exemple ci-dessous.

Considérons deux commandes avec les configurations suivantes.

Elles ont les mêmes entrées dans la table history

Après archivage, les entrées dans historyArch sont différentes

Avec l’archivage standard, c’est la moyenne des valeurs sur la période qui est prise en compte.
Avec l’archivage spécifique de archiplus, c’est la moyenne pondérée sur la période qui est calculée. Noter également qu’une entrée est ajoutée dans history afin de connaitre lors du prochain archivage la valeur de départ de la période (sans cette entrée, on récupérerait la moyenne de la dernière période ce qui fausserait le calcul).
En standard dans Jeedom, l’intervalle (appelé paquet dans Jeedom) sur lequel on peut faire le lissage est défini en heure et est le même pour toutes les commandes INFO.
Pourtant, on peut souhaiter un intervalle plus faible et pouvoir le spécifier pour une commande INFO particulière.


Pour une batterie, conserver une valeur par jour sur une longue durée peut être suffisant.


Pour un thermomètre, une valeur tous les quarts d’heure peut être plus utile qu’une valeur par heure.
Pour indiquer des minutes, entrer dans la zone Pack le nombre de minutes souhaitées suivi de m, par exemple 15m.
En standard, Jeedom permet de préciser le nombre de décimales d’une valeur de commande INFO.
Pour certaines commandes, il peut être intéressant d’avoir une valeur précise sur une courte période puis moins précise ultérieurement. Par exemple, la connaissance d’une température extérieure précise est intéressante sur le moment mais n’est plus nécessaire après plusieurs jours.

La commande ci-dessus est configurée pour conserver un historique avec 1 décimale pendant une semaine et un historique sans décimale au delà.

Avant archivage, on a 7 entrées dans l’historique entre 7.7 °C et 8.3 °C.

Après archivage, les 7 entrées sont arrondies à 8 °C et l’option Uniq permet d’en conserver une seule.
Après avoir installé archiplus, vous aurez peut-être envie de consolider des historiques existants.


Par exemple, pour cette commande, un historique par intervalle de 10 minutes serait suffisant et réduirait fortement le nombre d’enregistrements dans historyArch.

Après avoir modifié le paramétrage, on peut transférer les entrées de historyArch vers history.

Une fois cette mise à jour effectuée, on peut lancer un archivage sur cette commande INFO (ou attendre que l’archivage soit lancé automatiquement la nuit).


Après archivage, le nombre d’enregistrements est fortement réduit et l’affichage de l’historique est beaucoup plus rapide.
Il est possible d’appeler les fonctions d’archivage et de traitement des historiques de archiplus directement dans un scénario ou une fonction PHP.

Ici, les fonctions archiplus sont utilisées dans un scénario pour charger l’historique d’une commande et lancer l’archivage sur celle-ci.
require_once dirname(__FILE__) . '../../../plugins/archiplus/core/class/archiplus.class.php';
Cette ligne permet de charger le code des fonctions archiplus. Il peut être nécessaire d’adapter le chemin pour pointer sur la classe du plugin.
Les fonctions utilisables peuvent être trouvées dans le code de la classe archiplus. Les principales sont :
archive($_cmd_id = '') : lance l’archivage pour une commande ou toutes les commandes si il n’y a pas de paramètreHistory_purge($_cmd_id, $_date='') : supprime l’historique pour une commande jusqu’à un datetime déterminé (ou tout l’historique si pas de deuxième paramètre)addHistoryValue($_cmd_id, $_datetime, $_value) : ajoute une entrée (ou remplace l’entrée existante) dans l’historique en appelant la fonction standard de JeedomhistoryArch2history($_cmd_id, $_date_start = '', $_date_end = '') : transfert les enregistrements de historyArch vers historyIl est évidemment possible d’utiliser les fonctions disponibles dans la classe history.class.php après avoir fait la déclaration require_once nécessaire.
Si le niveau de log dans la configuration du plugin est défini au moins à Info, les différents événements liés à archiplus seront enregistrés dans la log archiplus de Jeedom. On peut y accéder directement avec le bouton log présent dans les différents modules de archiplus.

Lors de l’archivage, les paramètres généraux de l’archivage de Jeedom sont affichés.

Ensuite, sont détaillées pour chaque commande les opérations réalisées et le nombre d’enregistrements dans history et historyArch avant et après celle-ci.

Il est possible d’afficher la log pour une commande en particulier en indiquant sont numéro précédé des caractères - et espace dans la zone de recherche.
L’interface et les messages envoyés dans les logs sont traduits dans les 5 langues supportées par Jeedom (merci à @mips pour le développement ga-translation). Si des erreurs de traduction sont constatées, vous pouvez ouvrir une demande de support et si possible joindre le fichier de traduction corrigé (situé dans le répertoire core/i18n du plugin).
La documentation du plugin est traduite uniquement en anglais (les autres langues renvoient vers la traduction anglaise). La traduction est faite via un traducteur automatique. Par contre, les captures d’écran ne sont pas traduites.

Si vous appréciez ce plugin, merci de laisser une évaluation et un commentaire sur le Jeedom market, ça fait toujours plaisir : https://jeedom.com/market/index.php?v=d&p=market_display&id=xxxx#