Script:Lib Arrosage

Un article de MacodaWiki.

Jump to: navigation, search

lib_arrosage.vbs : Permet de gérer l'arrosage intégré (empêche que 2 voies soient allumées en même temps, ...)

'*-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-*

'* LIBRAIRIE                                                                                             *
'*                                                                                                       *
'*   Voir l'entete de lib_log !!!                                                 *
'*                                                                                                       *
'*                                                                                                       *
'*                                                                                                       *
'*                                                                                                       *
'*                                                                                                       *
'*  2006/08/01                                                                                           *
'*                                                                                                       *
'*-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-**-*-*-*-*-*-*-*
#include lib_chrono.vbs

function gArrosage_voie_marche(sVoie)
Dim sDevice

	giNiveau_Librairie = giNiveau_Librairie + 1
	
	gFct_Log_LIB LOG_NORMAL,"Entrée gArrosage_marche sVoie = "&sVoie

	' Si la voie sVoie marche, alors la petite doit marchée !!!!
	gArrosage_voie_marche =  false

	If sVoie = "voie1" Then sDevice = DEVICE_Arrosage_Action_voie1
	If sVoie = "voie2" Then sDevice = DEVICE_Arrosage_Action_voie2
	If sVoie = "voie3" Then sDevice = DEVICE_Arrosage_Action_voie3
	If (gDEVICE_Get_etat_Device(sDevice) = DEVICE_ON) Then
		gFct_Log_LIB LOG_BAVARD,"   "&sDevice&" => ** ON **"
		gArrosage_voie_marche = TRUE
	Else
		gFct_Log_LIB LOG_BAVARD,"   "&sDevice&" => OFF"
	End If
	
	giNiveau_Librairie = giNiveau_Librairie - 1
End Function



'------------------------------------------------------------------------
function gArrosage_Get_etat_vanne(sVoie)
Dim dv
Dim sDevice
	giNiveau_Librairie = giNiveau_Librairie + 1
	
	gFct_Log_LIB LOG_NORMAL,"Entrée gArrosage_Get_etat_vanne sVoie :"&sVoie
	
	gArrosage_Get_etat_vanne = -1
	If sVoie = "voie1" Then sDevice = DEVICE_Arrosage_v1
	If sVoie = "voie2" Then sDevice = DEVICE_Arrosage_v2
	If sVoie = "voie3" Then sDevice = DEVICE_Arrosage_v3
	set dv = hs.GetDeviceEx(sDevice)
	If dv is nothing Then
		gFct_Log_LIB LOG_SANS, "Get_etat_comparaison => Trouve pas "&sDevice
	Else
		gArrosage_Get_etat_vanne = hs.DeviceStatus(dv.hc&dv.dc)
	End If
	
	If gArrosage_Get_etat_vanne = DEVICE_OFF Then gFct_Log_LIB LOG_NORMAL, "gArrosage_Get_etat_vanne = OFF ("&sVoie&")"
	If gArrosage_Get_etat_vanne = DEVICE_ON Then gFct_Log_LIB LOG_NORMAL, "gArrosage_Get_etat_vanne = ON ("&sVoie&")"
	
	giNiveau_Librairie = giNiveau_Librairie - 1
end function


'------------------------------------------------------------------------
Sub gArrosage_Demarrage(sVoie)
Dim dv
Dim sDevice

	giNiveau_Librairie = giNiveau_Librairie + 1
	gFct_Log_LIB LOG_NORMAL,"Entrée gArrosage_Demarrage (sVoie = "&sVoie&")"
	
	If sVoie = "voie1" Then sDevice = DEVICE_Arrosage_v1
	If sVoie = "voie2" Then sDevice = DEVICE_Arrosage_v2
	If sVoie = "voie3" Then sDevice = DEVICE_Arrosage_v3

	If (gArrosage_Get_etat_vanne(sVoie) = DEVICE_ON) Then
		gFct_Log_LIB LOG_NORMAL, sVoie&" déjà allumé"
	Else
		' On regarde si une voie est allumée
		gFct_Log_LIB LOG_NORMAL, "On vérifie qu'il n'y a pas de relais actif"
		If (gArrosage_marche()) Then
			' On éteint tout pour qu'il y ait une seule vanne à la fois.
			gFct_Log_LIB LOG_NORMAL, "On éteint la voie allumée (car il y en a une)"
			If (gArrosage_Get_etat_vanne("voie1") = DEVICE_ON) Then gArrosage_Arret("voie1")
			If (gArrosage_Get_etat_vanne("voie2") = DEVICE_ON) Then gArrosage_Arret("voie2")
			If (gArrosage_Get_etat_vanne("voie3") = DEVICE_ON) Then gArrosage_Arret("voie3")
		End If
	
		gFct_Log_LIB LOG_NORMAL, "On allume le bon relais"
	 	set dv = hs.GetDeviceEx(sDevice)
		If dv is nothing Then
			gFct_Log_LIB LOG_SANS, "Trouve pas "&sDevice
		Else			
			hs.ExecX10 dv.hc&dv.dc,"on",0,0
			gCHRONO_Debut("Arrosage")
			
			gFct_Log_LIB LOG_BAVARD,"Mise en marche relais arrosage "&sVoie
'			hs.SendEmail "domotique@macoda.com","domotique@macoda.com","LIB_Arrosage  : Mise en marche relais Arrosage "&sVoie,"Rien"
			gUTIL_Attente_secondes(2)
			If (gArrosage_Get_etat_vanne(sVoie) = DEVICE_ON) Then
				gFct_Log_LIB LOG_NORMAL, "OK la "&sVoie&" est bien allumée"
			Else
				gFct_Log_LIB LOG_SANS, "** ERREUR ** : ****PB **** la "&sVoie&" est éteinte"
				hs.SendEmail "domotique@macoda.com","domotique@macoda.com","****PB **** la "&sVoie&" est éteinte","Rien"
			End If 
		End If
	End If
  	
	gFct_Log_LIB LOG_NORMAL,"Sortie gArrosage_Demarrage"
	giNiveau_Librairie = giNiveau_Librairie - 1
End Sub	

'------------------------------------------------------------------------
Sub gArrosage_Arret(sVoie)
Dim bVoie_en_cours
Dim dv
Dim sDevice

	giNiveau_Librairie = giNiveau_Librairie + 1
	gFct_Log_LIB LOG_NORMAL,"Entrée gArrosage_Arret (sVoie = "&sVoie&")"
		
	If sVoie = "voie1" Then sDevice = DEVICE_Arrosage_v1
	If sVoie = "voie2" Then sDevice = DEVICE_Arrosage_v2
	If sVoie = "voie3" Then sDevice = DEVICE_Arrosage_v3	
		
	If (gArrosage_Get_etat_vanne(sVoie) = DEVICE_OFF) Then
		gFct_Log_LIB LOG_BAVARD,sVoie&" déjà éteinte"
	Else
	 	set dv = hs.GetDeviceEx(sDevice)
		If dv is nothing Then
			gFct_Log_LIB LOG_SANS, "Trouve pas "&sDevice
		Else			
			hs.ExecX10 dv.hc&dv.dc,"off",0,0
			gCHRONO_Fin_SQL("Arrosage")
			gFct_Log_LIB LOG_BAVARD,"Arrêt du relais "&sVoie
				hs.SendEmail "domotique@macoda.com","domotique@macoda.com","FCT_ARROSAGE  : Arrêt relais "&sVoie,"Rien"
			gUTIL_Attente_secondes(3)
			If (gArrosage_Get_etat_vanne(sVoie) = DEVICE_ON) Then
				gFct_Log_LIB LOG_SANS, "** ERREUR ** : ****PB **** la "&sVoie&" est PAS éteinte"
				hs.SendEmail "domotique@macoda.com","domotique@macoda.com","****PB **** la "&sVoie&" est PAS éteinte","Rien"
			Else
				gFct_Log_LIB LOG_NORMAL, "OK la voie "&sVoie&"est bien ouverte"
			End If 
		End If
	End If

   
   gFct_Log_LIB LOG_NORMAL,"Sortie gArrosage_Arret"
   giNiveau_Librairie = giNiveau_Librairie - 1
end Sub	

'#############################################################################################
function gArrosage_marche() 
Dim iEtat
	giNiveau_Librairie = giNiveau_Librairie + 1
	gFct_Log_LIB LOG_NORMAL,"Entrée gArrosage_marche"

	gArrosage_marche =  False

	iEtat = gDEVICE_Get_etat_Device(DEVICE_Arrosage_v1)
	If (iEtat = DEVICE_ON) Then
		gFct_Log_LIB LOG_BAVARD,"   "&DEVICE_Arrosage_v1&" => ** ON **"
		gArrosage_marche= TRUE
	Else
		gFct_Log_LIB LOG_BAVARD,"   "&DEVICE_Arrosage_v1&" => OFF"
	End If

	iEtat = gDEVICE_Get_etat_Device(DEVICE_Arrosage_v2)
	If (iEtat = DEVICE_ON) Then
		gFct_Log_LIB LOG_BAVARD,"   "&DEVICE_Arrosage_v2&" => ** ON **"
		gArrosage_marche= TRUE
	Else
		gFct_Log_LIB LOG_BAVARD,"   "&DEVICE_Arrosage_v2&" => OFF"
	End If


	iEtat = gDEVICE_Get_etat_Device(DEVICE_Arrosage_v3)
	If (iEtat = DEVICE_ON) Then
		gFct_Log_LIB LOG_BAVARD,"   "&DEVICE_Arrosage_v3&" => ** ON **"
		gArrosage_marche= TRUE
	Else
		gFct_Log_LIB LOG_BAVARD,"   "&DEVICE_Arrosage_v3&" => OFF"
	End If	

	giNiveau_Librairie = giNiveau_Librairie - 1
end function


'----------------------------------------------------------------------
'Fonction utilisée par Arrosage_Regulier
Function gArrosage_Set_etat_status_allume(sItem)
	gDEVICE_Set_etat_Device sItem,DEVICE_ON
End function

'----------------------------------------------------------------------
'Fonction utilisée par Arrosage_Regulier
Function gArrosage_Set_etat_status_eteind(sItem)
	gDEVICE_Set_etat_Device sItem,DEVICE_OFF
End function