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

3 commentaires:

  1. Pas mal, la logique ! Merci de partager ces scripts ;-)

    RépondreSupprimer
  2. de rien , je l'ai pas fais tout seul non plus donc c'est normal ;) Merci a DJMaboul du forum TLD pour l'aide apportée !

    RépondreSupprimer
  3. Bonjour j0n,

    J'ai acheter un module RFS10 et TS10

    http://www.domadoo.fr/produit,410,1,X10-RTS10-Thermostat-DIGIMAX-210-RF-+-R%C3%A9cepteur.htm

    Je voulais savoir comment vous pilotiez ce module dans homeseer. Avez vous un émetteur récepteur rfxcom ou le pilotage est en X10 par homeseer et cm15pro.

    Je ne sais pas trop si c'est le bonne endroit pour mon intérogation, je vous met mon adresse mail. ducdodon@hotmail.com

    RépondreSupprimer