mercredi 28 avril 2010

Gestion du chauffage - RFS10 - HS - HSTouch

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é !

Interface HSTouch

voici un aperçu de mon interface sous HStouch en cours d'évolution :

menu principal :



Eclairage (permet de gérer l'éclairage de la maison + spot led ) :



Internet (pour surfer simplement) :



Chauffage (voir autre article plus détaillé) :



Parfum (pour diffuser du parfum dans la maison) :



Media ( mon media player ) :



Température (dans la maison) :



Volets (gestion des volets - voir autre article plus détaillé) :



Contrôle (autres) :


_________________