Script:compteur eau froide
Un article de MacodaWiki.
Ce script Homeseer est associé au montage compteur d'eau qui permet de compter le nombre de litres consommées. Il y a également un script permettant d'afficher des graphiques de consommations d'eau : Script ASP d'affichage des données du compteur d'eau
Librairies associées :
'#######################################################################################
' Ce script relève toutes les "x' minutes le nombre de litres ayant été consommée en regardant l'évolution du compteur stocké par le DS2423. Il stocke le tout dans une bas de données.
#include lib\lib_log.vbs
#include lib\lib_device.vbs
#include lib\lib_util.vbs
#include lib\lib_bddata.vbs
' LOG_SANS LOG_NORMAL LOG_BAVARD
NIVEAU_LOG_PROG = LOG_SANS
'NIVEAU_LOG_PROG = LOG_NORMAL
NIVEAU_LOG_PROG = LOG_BAVARD
NOM_PROG = "Essai"
'#############################################################################################
sub main()
Dim sTable
Dim bBase
Dim rRequete
Dim sSQL
dim Gd_Eau_froideHeurePrec
dim Gi_Eau_froideIndexPrec, Gi_Eau_froideLitrePrec, iIndexAct, iNbSec, iNbLitre
dim dDiffDate
gFct_Log_Deb_Prog
' On récupère la valeur du compteur
iIndexAct = gDEVICE_Get_valeur_device(DEVICE_Compteur_Eau_froide)
gFct_Log LOG_BAVARD,"*** iIndexAct : >"&cstr(iIndexAct)&"<"
' On récupère les valeurs précédentes
Gd_Eau_froideHeurePrec = gUTIL_Recup_Date("Gd_Eau_froideHeurePrec")
gFct_Log LOG_BAVARD,"Gd_Eau_froideHeurePrec : >"&cDate(Gd_Eau_froideHeurePrec)&"<"
Gi_Eau_froideIndexPrec = gUTIL_Recup_Valeur("Gi_Eau_froideIndexPrec")
gFct_Log LOG_BAVARD,"Gi_Eau_froideIndexPrec : >"&Gi_Eau_froideIndexPrec&"<"
If Gi_Eau_froideIndexPrec = 0 then
Gi_Eau_froideIndexPrec = iIndexAct
End if
Gi_Eau_froideLitrePrec = gUTIL_Recup_Valeur("Gi_Eau_froideLitrePrec")
gFct_Log LOG_BAVARD,"Gi_Eau_froideLitrePrec : >"&Gi_Eau_froideLitrePrec&"<"
' On calcule le nombre de litre d'eau
dDiffDate = now - Gd_Eau_froideHeurePrec
gFct_Log LOG_BAVARD," dDiffDate: >"&cDate(dDiffDate)&"<"
iNbSec = (Hour(dDiffDate)*3600) + (Minute(dDiffDate)*60) + Second(dDiffDate)
gFct_Log LOG_BAVARD," iNbSec : >"&cstr(iNbSec)&"<"
iNbLitre = (iIndexAct - Gi_Eau_froideIndexPrec)
gFct_Log LOG_BAVARD," iNbLitre : >"&cstr(iNbLitre)&"<"
'Sauvegarde les nouvelles valeurs dans la mémoire
hs.SaveVar "Gd_Eau_froideHeurePrec",now
hs.SaveVar "Gi_Eau_froideIndexPrec",iIndexAct
hs.SaveVar "Gi_Eau_froideLitrePrec",iNbLitre
' Sauvegarde dans une base de données
gBDDATA_Ouvre_Base bBase,"HOMESEER"
sSQL = "INSERT INTO tb_eau_froide ( [Date_op],[Index_cpt], [nb_sec], [nb_Litre] ) VALUES (Now, '"&cstr(iIndexAct)&"','"&cstr(iNbSec)&"','"&cstr(iNbLitre)&"');"
gFct_Log LOG_BAVARD,"SQL = >"&sSQL&"<"
gBDDATA_Lance_Requete bBase,sSQL,rRequete
gBDDATA_Ferme_Base bBase
gFct_Log_Fin_Prog
end sub
