Script:Lib Arrosage
Un article de MacodaWiki.
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
