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é !
Inscription à :
Publier les commentaires (Atom)
Pas mal, la logique ! Merci de partager ces scripts ;-)
RépondreSupprimerde 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épondreSupprimerBonjour j0n,
RépondreSupprimerJ'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