Présentation de la saga DomoMG
tous les codes de DomoMG sont sur le GitHub
Liste des épisodes publiés :
EPISODE 1 - L’atelier de développement
EPISODE 2 - Installation - la class ‹ mg › - TABULATOR
EPISODE 3 - Le suivi des consommations électriques
Bonjour à tous,
Malgrès les polémiques du dernier épisode je vais essayer de continuer à dérouler les fonctions de DomoMG, donc, comme prévu cet épisode traitera du suivi des consommations électriques.
Pour ce suivi je tenais à avoir toutes les informations par poste de consommation sur les 13 derniers mois glissants ainsi qu’un accès aux graphiques « consommation » et « puissance » pour chacun de ces postes directement à l’écran.
L’autre contrainte que je m’étais fixée était de ne pas avoir de traitements différés (conso de fin de journée par exemple),
Pour celà, j’utilise 2 « pseudo cron » interne au script, le premier actualise toutes les mn les consommations instantanées, l’autre, toutes les xx mn recalcule les consos des 13 derniers mois en détails (poste par poste) ou par groupe de poste.
Au final cela nous donne cela en poste par poste :
-
Les boutons bleu et vert dans les colonnes de droite donnent accès directement au graphiques concernés (avec la possibilité de supprimer les points aberrants éventuels)
-
Les boutons on/off des colonnes de droite permettent … vous avez compris
-
nous retrouvons en haut les douze derniers mois suivi du mois courant et des statistiques mensuelles et annuelles.
-
3 lignes particulières apparaissent en bas du tableau,
-
- incertitude : Qui représente la différence entre la consommation globale mesurée au compteur et la somme des consommations mesurées sur chacun des postes. Dans mon cas environ 11 % qui correspondent donc aux appareillages non équipés de système de mesure (chauffage d’appoint, fer à repasser, aspirateur, outillages, etc …) ainsi qu’à la marge d’erreur de ces mesures.
-
- ZW095 : Qui est en fait la ligne du compteur électrique physique muni d’un capteur « ZW095 Home Energy Meter Gen5 » d’aeotec
-
- Enedis : Valeur provenant de Enedis (via le plugin Enedis de @Salvialf ) et permettant une comparaison avec les valeurs mesurées, dans mon cas avec un ZW095, l’erreur est de l’ordre de 1%.
-
Les boutons en haut d’écran permettent respectivement de :
-
- « MàJ » : Rafraichir les informations
-
- « Détails » : d’Afficher les valeurs détaillées par poste (cf ci dessus)
-
- « Regroupe » : D’afficher une vue « groupé » par poste de consommations (chauffage, lumières, etc).
- « Regroupe » : D’afficher une vue « groupé » par poste de consommations (chauffage, lumières, etc).
Deux outils complémentaires sont fournis.
L’un permettant, pour les équipements dépourvus de capteur de puissance et de consommations, de simuler ceux ci dans un virtuel. Cet outil permet en outre d’ajuster automatiquement les valeurs min/max des commandes « Consommation » ce qui permet de filtrer les valeurs aberrantes (assez fréquente avec le Zwave …)
Le deuxième tient les différents index des consommation HP/HC :
L’ensemble repose sur un paramétrage dans TABULATOR, qui comme vous pouvez le voir est trés simple :
D’un point de vue plus technique, le programme de suivi de consommation repose sur une routine qui extrait directement de la base de données les valeurs utiles.
/************************************************************************************************************************
* UTIL STATS_HISTO *
*************************************************************************************************************************
* Extrait de l'histo d'une commande les valeurs correspondant au paramètres temporel d'entrée. *
* Paramètres : *
* $infCmd : La commande dont on veut extraire des infos. *
* $result : Type de valeurs à extraire : *
'S' valeur de départ, *
'E', valeur de fin, *
'D' différence Fin-Debut, *
'DB' Durée pendant lequel la cmd était à '1' durant la période). *
* $typePeriode : T heure, D Jour, M mois, Y année. *
* $deltaStart : Nb de période à soustraire à 'maintenant' pour avoir la date de début (positif ou négatif). *
* $nbPeriodes : Nb de périodes séparant la date de début de la date de fin (positif ou négatif). *
* *
* Exemple : *
* StatsHisto($infCmd, 'D', 'Y', 0, 1); Année courante *
* *
* StatsHisto($infCmd, 'D', 'M', 0, 12); Les 12 derniers mois *
* StatsHisto($infCmd, 'D', 'M', 3, 1); Le mois -3 *
* *
* StatsHisto($infCmd, 'D', 'D', 0, 1); La dernière journée *
* StatsHisto($infCmd, 'D', 'D', 9, 365.25); Dernière année à partir du jour -9 *
* *
* StatsHisto($infCmd, 'D', 'T', 0, 1); La dernière heure *
************************************************************************************************************************/
function StatsHisto($infCmd, $result = 'D', $typePeriode = 'M', $deltaStart = 0, $nbPeriodes = 1) {
C’est terminé pour aujourd’hui, la prochaine fois nous passerons en revue la régulation du chauffage et ses fonctions connexes.