Script:compteur eau froide

De MacodaWiki
Aller à : navigation, rechercher

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