Objectifs
Ce module permet de suivre la consommation d'eau de vos toilettes (WC). Grâce à un module MS13 ou un DS10 couplé à un capteur de niveau d'eau, on peut suivre la consommation d'eau de votre maison. Ce module est simple, il sauve en base de données chaque changement. Ensuite, toutes les heures, il recalcule la consommation du jour, de la semaine, du mois et de l'année.
Version 1.0 : Première release
Pré-requis
Ce module nécessite un capteur (Voir l'article "Suivi Consommation d'Eau"). Par défaut, dans la livraison il s'agit du module G2.
Ce module nécessite aussi une base MySQL. En effet, ce module résumé la consommation du jour, de la semaine, du mois et de l'année. Il utilise donc la base de données MySQL pour garder l'historique du capteur.
Devices et Events utilisés par le module
Le module utilise:
* Un device Homeseer pour le capteur de niveau d'eau (MS13 ou DS10),
* 4 devices Homeseer pour résumer la consommation (Virtuel device)
Par défaut, le module est livré avec les devices suivants:
* G2 : Indique si le niveau d'eau est ON ou OFF. C'est sur le temps de remplissage que le module va déduire s'il s'agit d'une petite ou d'une grande chasse (pour les WC avec deux vitesses)
* W29 : Résumé de la consommation de l'année
* W28 : Résumé de la consommation du mois
* W27 : Résumé de la consommation des derniers 7 jours
* W26 : Résumé de la consommation du jour
Ces devices sont bien sur paramétrables dans les fichiers .ini du répertoire config.
Comment installer le module ?
- Arrêtez votre application Homeseer
- Vérifiez que vous avez installez un framework domotics. Sinon faites le en suivant les instructions de cette page
- Vérifiez que vous avez un répertoire scripts\modules dans Homeseer. Sinon, créez le.
- Dézippez les fichiers dans le répertoire module. Vous devez avoir une structure du style C:\Program Files\Homeseer 2\scripts\modules\WATER.CONSUMPTION\scripts\*
- Ajoutez la ligne hs.run "modules\WATER.CONSUMPTION\scripts\install.vbs" dans votre fichier C:\Program Files\Homeseer 2\scripts\startup.txt.
- Editez les fichiers de properties (dev_*.ini et evt_*.ini) pour paramètrer le module en fonction de votre besoin : C:\Program Files\Homeseer 2\scripts\modules\WATER.CONSUMPTION\config\*
- Redémarrez Homeseer et vérifiez que les 5 devices se sont créés.
Comment paramétrer le fichier Properties.ini ?
Le paramètre MODE=DATABASE ne peut pas être changé. Ce module ayant besoin de MySQL pour garder l'historique des changements, on ne peut pas changer ce paramètre.
Pour changer la verbosité des logs, il ya le paramètre suivant LEVEL=CRITICAL. Il peut prendre les valeurs INFORMATION, WARNING, CRITICAL ou SEVERE. En mode de production, je vous conseille de mettre la valeur CRITICAL. En mode de débuggage, vous pouvez mettre LEVEL=INFORMATION pour avoir le plus d'information possible sur son fonctionnement.
Le paramètre CONFIG=..\scripts\modules\WATER.CONSUMPTION\config\ ne doit pas changer, sauf si vous déplacer le module.
Le paramètre DEVICES=dev_w26.ini|dev_w27.ini|dev_w28.ini|dev_w29.ini|dev_g2.ini contient les devices utilisés par le module. Alors que le paramètre SENSORS=dev_w26.ini|dev_w27.ini|dev_w28.ini|dev_w29.ini contient les devices utilisés pour résumer la consommation. Chacun de ces devices sont ensuite reconnus par leur PARAM1 de leur fichier dev_xxx respectif.
Le paramètre EVENTS=evt_check_periodically.ini contient juste l'évènement qui va rafraichir le calcul de la consommation.
Le paramètre "QUERY=select * from events where device = "G2" and date like "##YEAR##%" order by id_event asc" est important, c'est la requête SQL qui permet de définir la liste des valeurs qu'a pris le capteur de niveau (valeurs renvoyées par G2). Cette requête est paramètrable pour qu'on puisse revoir le besoin du module.
Ensuite, deux paramètres existent pour déterminer la contenance d'une petite chasse d'eau SMALL=3 ou d'une grande chasse d'eau FULL=9. Enfin, un dernier paramètre permet de donner le prix d'un m3 d'eau (PRICE=1,57).
Le module utilise ces paramètres pour faire ces calculs. Il regarde le temps que met la chasse d'eau pour se reremplir. Entre 5 et 25 secondes, il s'agit d'une petit chasse. Après 25 secondes, il considère qu'il s'agit d'une grande chasse. Ces temps en secondes ne sont pas paramètrables. Ils sont en dur dans main.vbs. J'améliorerai ce point dans une future version.
Comment paramétrer le fichier dev_xxx.ini ?
Vous avez besoin d'un fichier dev_xxx.ini pour la chasse d'eau. Ce module est connecté sur le capteur de niveau d'eau. Vous avez aussi besoin de 4 fichiers dev_xxx.ini pour calculer la consommation. Ces 5 devices suivent les mêmes paramètrages. Excepté pour les 4 derniers qui utilisent PARAM1 en plus.
CAN_DIM=false permet de créer un device DIMable. Dans notre cas, le device donne juste un status de sauvegarde. Donc on laisse la valeur false.
HC=G, DC=2, LOCATION=Eau, DEV_TYPE_STRING=MS13, NAME=Niveau Chasse Eau, REF=7002 sont les paramètres généraux de votre device. Vous pouvez changer les valeurs que vous voulez.
MISC permet de préciser votre device (Voir l'aide de Homeseer). Si vous utilisez MISC=&H8, le device ne sera plus loggué dans Homeseer. De nombreuses autres options existent dans l'aide de Homeseer.
STATUS_SUPPORT, VALUES, BUTTONS, GRAPHICS, PARAM2 à PARAM10 ne sont pas utilisés dans cette version.
La Valeur par défaut de votre device est donnée par DEFAULT_STATUS=OFF, DEFAULT_STRING=, DEFAULT_VALUE=. Cette valeur est juste utilisée lors de la création du device.
PARAM1 est juste utilisé par les 4 devices qui calculent la consommation. Ce paramètre peut prendre 4 valeurs différente pour indiquer le type de statistiques (DAY pour journalière, WEEK pour les derniers 7 jours, MONTH pour le dernier mois, YEAR pour l'année en cours). Vous pouvez décider de réduire le nombre de device si vous le souhaitez, il suffit de changer ce paramètre.
Comment paramétrer le fichier evt_xxx.ini ?
NAME et GROUP sont modifiables pour que vous renommiez l'évènement à votre guise.
MISC permet de préciser votre évènement (Voir l'aide de Homeseer). Si vous utilisez MISC=&H4000, l'évènement ne sera plus loggué dans Homeseer. De nombreuses autres options existent dans l'aide de Homeseer.
EVT_ABS_TIME=6 et REC_MINS=60 sont utilisés pour créer un évènement reccurent qui se lance toute les heure. Vous pouvez modifier ces paramètres à votre convenance.
Problèmes connus ou Astuces
Pas de problème connu à ce jour, chez moi le script fonctionne depuis des mois. Il a déjà compté 13731 litres consommés. L'avantage de ce script, c'est qu'il recalcule tous les chiffres toutes les heures. donc si vous modifié la contenance des chasses, ou le prix de l'eau, vous avez rapidement un nouveau calcul global.
Quelques infos techniques pour réutiliser ce script pour d'autres besoins
Le script est essentiellement dans le fichier main.vbs. Il est composé de 4 parties distinctes :
- Récupèration des valeurs de la base données (jusqu'à la ligne " While NOT(aobjRS.EOF) ")
- Calcul de la contenance : (la fonction "astrIsFull = IsFull(astrDate, aobjRS.Fields.Item(5))" )
- Calcul de l'appartenance au Jour, à la semaine, au mois ou à l'année (fonctions : "isDay(astrDate) isWeek(astrDate) isWeek(astrDate) isWeek(astrDate)")
- Enfin, formatage des résultats et calcul du prix par device ( setDevice astrDevice, formatToiletWater(adblSCY, adblFCY, adblSmall, adblFull, adblPrice), "", "")
Il serait donc possible de reprendre ce script en l'adaptant à un nouveau besoin comme le calcul de l'électricité consommée.

















