Voici tout d’abord la page de gestion d’HSTouch :

Selon l’appui sur un bouton ou l’autre, un mode s’enclenche et désactive les autres modes.
Les 4 boutons sous HSTouch correspondent à 4 Events sous homeseer dépendant de 4 variables correspondantes. Un peu compliqué? mais non dans la pratique c’est beaucoup plus simple!
Préparation :
Créer 4 Devices dans homeseer (cliquez sur status – puis Add Device )
ModeConge – Status Only – M1
ModeAbsent – Status Only – M2
ModeMatin – Status Only – M3
ModeSoir – Status Only – M4
Créer 4 Events correspondant :
Mode Conge – Action Run script : ModeConge.txt
Mode Absent – Action Run script : ModeAbsent.txt
Mode Matin – Action Run script : ModeMatin.txt
Mode Soir – Action Run script : ModeSoir.txt
Explication :
Quand je clique sur le bouton Mode Congé dans HStouch, cela exécute l’event Mode Congé sous homeseer qui contient ce script :
sub main()
if hs.IsOff(« M1 ») then ‘on vérifié que Mode Congé ne soit pas déjà actif sinon c est inutile
hs.SetDeviceStatus « M1 » , 2 ‘ on active le device mode congé
if hs.IsOn(« M2 ») then
hs.SetDeviceStatus « M2 » , 3 ‘ on désactive le device mode absent
end if
if hs.IsOn(« M3 ») then
hs.SetDeviceStatus « M3 » , 3 ‘ on désactive le device mode matin
end if
if hs.IsOn(« M4 ») then
hs.SetDeviceStatus « M4 » , 3 ‘ on désactive le device mode soir
end if
end if
end sub
Dans HStouch il suffit d’associer l’image à droite du bouton au device ModeConge avec en propriétés de celle-ci :
status tracking normal : Homeseer devices – ModeConge
StatusImages : on ajoute un image pour le MatchStatus à ON qui correspond à la boule lumineuse allumée et une autre pour le MatchStatus à OFF qui correspond à l’image de la boule lumineuse éteinte.
Donc à l’exécution, à chaque clic sur la bouton la boule lumineuse s’allume ou s’éteint.
Il suffit de répéter les scripts et actions pour les 4 boutons ( 4 scripts pour 4 events)
Ce qui donne au final, qu’un seul mode ne peut être activer et selon celui-ci nous allons créer un autre event « Gestion du Chauffage » avec comme paramètres :
Trigger : Device Value Change – (on reprends la sonde de température de la pièce principale, dans mon cas Salon Température qui correspond à la sonde oregon ]8 dans HS) – change to – any value.
Action – Run script – chauffage.txt qui contient :
Sub main()
‘ ### Déclaration des variables
Dim Consigne
Dim Confort
Dim Eco
Dim Chauffage
Dim Etat_Chauffage
Dim Mode_chauffage
Dim Sonde_oregon
Dim temph
Dim Theure
Dim sonde
‘ ### LES PARAMETRES
Consigne = 20
Confort = Consigne
Eco = Consigne – 3
sonde = « ]8 »
‘ ### Heure Actuelle au format
temph = Split(Time, « : »)
‘ Heure et minute ex: 15:36:00 = 1536
Theure= temph(0) & temph(1)
Theure= CDbl(Theure) + 0001 – 0001 ‘corrige bug
‘ ### MODE DU CHAUFFAGE SUIVANT LS MODES
‘ Mode congé
if hs.IsOn(« M1 ») then
If (Theure > 2200) Then ’22h00
Mode_chauffage = « ECO »
Elseif (Theure > 700) Then ‘7h00
Mode_chauffage = « CONFORT »
Else
Mode_chauffage = « ECO »
End If
end if
‘ Mode absent
if hs.IsOn(« M2 ») then
Mode_chauffage = « ECO »
end if
‘ Mode Travail 6/14
if hs.IsOn(« M3 ») then
If (Theure > 2230) Then ’22h30
Mode_chauffage = « ECO »
Elseif (Theure > 1430) Then ’14h30
Mode_chauffage = « CONFORT »
Elseif (Theure > 700) Then ‘7h00
Mode_chauffage = « ECO »
Elseif (Theure > 500) Then ‘5h00
Mode_chauffage = « CONFORT »
Else
Mode_chauffage = « ECO »
End If
End if
‘ Mode Travail 14/22
if hs.IsOn(« M4 ») then
If (Theure > 2300) Then ’23h00
Mode_chauffage = « ECO »
Elseif (Theure > 1800) Then ’18h00
Mode_chauffage = « CONFORT »
Elseif (Theure > 1310) Then ’13h10
Mode_chauffage = « ECO »
Elseif (Theure > 800) Then ‘8h00
Mode_chauffage = « CONFORT »
Else
Mode_chauffage = « ECO »
End If
end if
‘ ### On récupère la température de la sonde
Sonde_oregon = (hs.DeviceValue (sonde) / 10) ‘ sur les sondes oregon division par 10
hs.WriteLog « Info », Sonde_oregon
‘ ### Sélection de la température suivant le mode
Select Case Mode_chauffage
Case « ECO »
Chauffage = Eco
Case « CONFORT »
Chauffage = Confort
End Select
‘ ### DEMARAGE DU CHAUFFAGE
If (Sonde_oregon < chauffage) and hs.DeviceValue(« A5″) = 2 Then
hs.setdevicevalue »A5 », « 2 »
hs.WriteLog « Info », « chauffage allumé »
End If
‘ ### ARRET DU CHAUFFAGE
If (chauffage <= Sonde_oregon) and hs.DeviceValue(« A5″) = 2 Then
hs.setdevicevalue »A5 », « 3 »
hs.WriteLog « Info », « chauffage éteint »
End If
End Sub
Et voilà c’est terminé !