documentation

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.

La gestion des historiques dans Jeedom

Fonctionnement

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.

Volume des historiques

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.

Les limites de l’archivage dans Jeedom

Bien que dans de nombreuses installations, le fonctionnement standard sera suffisant, on peut relever les limitations suivantes :

Les PLUS du plugin archiplus

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.

Avertissement

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.

Plugin archiplus

Installer le Plugin archiplus

Aller dans le Market Jeedom, trouver le plugin archiplus et installer la version stable. Puis Activer le plugin.

001

Le plugin est accessible via le menu.

Configurer le plugin

Dans la configuration, vous pouvez paramétrer les paramètres habituels des plugins et les valeurs par défaut du plugin.

003

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.

002

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.

Les modules du plugin

004

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.

Accès aux modules

Les modules sont lancés à partir de la configuration du plugin.

005

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 de commandes

006

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

013

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

019

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

La colonne de sélection des lignes

007

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

008

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

009

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.

010

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

011

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

Les totaux de bas de tableau

012

En bas du tableau sont affichés les totaux correspondant aux lignes affichées ou sélectionnées.

le module Monitor

Il s’agit du module principal de archiplus.

005

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

014

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.

Statistiques

016

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.

015

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

017

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

Visualisation

018

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.

Modifications

020

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

021

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

022

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.

023

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

024

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

025

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

Modifications à partir d’un fichier Excel

070

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.

071

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.

072

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.

Données modifiables

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:

KLV (Keep Last Value)

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.

Uniq

Permet de supprimer les valeurs consécutives identiques dans historyArch. Voir la FAQ suivante pour comprendre l’utilisation de cette option Uniq.

Délai

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.

Cadrage

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.

Pond

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.

Pack

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.

Arrondi

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.

Fonctions accessibles via le menu contextuel

026

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 :

Données historiques

Accès

027

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

028

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

Modification

029

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

030

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

031

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

Suppression

032

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

Export

033

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

Le module Import permet d’importer des données historiques dans une ou plusieurs commandes de type INFO.

035

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.

034

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

036

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.

037

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”.

038

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.

039

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

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é.

040

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.

041

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

042

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

043

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

044

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

045

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

073

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.

FAQ

Keep Last Value

Dans certains cas, il est nécessaire de disposer de la dernière valeur de la commande INFO.

046

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

047

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.

Uniq

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.

Délai et Cadrage

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.

048

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.

Lissage et pondération

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.

050

Considérons deux commandes avec les configurations suivantes.

049

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

051

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

052

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).

Pack

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.

055

054

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

057

056

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.

Arrondi

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.

064

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à.

065

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

066

Après archivage, les 7 entrées sont arrondies à 8 °C et l’option Uniq permet d’en conserver une seule.

Copier les données de historyArch vers history

Après avoir installé archiplus, vous aurez peut-être envie de consolider des historiques existants.

060

058

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

059

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

061

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).

063

062

Après archivage, le nombre d’enregistrements est fortement réduit et l’affichage de l’historique est beaucoup plus rapide.

Utiliser archiplus en PHP

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.

053

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 :

Il 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.

Les logs

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.

068

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

067

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.

069

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.

Traduction

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.

Avis

archiplus_avis

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#