Domotique Exécution d'une commande dès que sonde < Température de consigne
Bonjour,
J'utilise un programme de gestion Domotique qui est Homeseer Pro, avec ce dernier je souhaite gérer la commande de mise en et hors service de ma chaudière.
J'ai donc créé un script (vbscript) qui demande l'exécution d'une commande marche dès que la mesure relevée par la sonde est < à la température de consigne et une commande arrêt dès que la mesure de sonde est >= à la température de consigne (a noter que la sonde envoie ses donnée au système dès qu'elle varie d'un 10ème de °) cela fonctionne mais ...
Mon problème est que la commande d'un sens comme dans l'autre est envoyé à chaque mesure reçue par le système sollicitant les relais plus que nécessaire.
Ce que je souhaite c'est que dès que la condition est remplie d'un sens comme dans l'autre la commande soit envoyée une fois seulement par exemple:
10h00 Température sonde < température de consigne ===> envoie de la commande marche
10h05 Température sonde < température de consigne ===> pas de commande
10h08 Température sonde < température de consigne ===> pas de commande
10h15 Température sonde >= température de consigne ===> envoie de la commande Arrêt
10h18 Température sonde >= température de consigne ===> pas de commande
10h22 Température sonde >= température de consigne ===> pas de commande
Etc..
J'espère être claire étant un vrai, vrai débutant en vbscript pour un peu plus de clarté je colle çi dessous l'extrait du code qui aujourd'hui fonctionne mais pas comme je le souhaite.
D'avance merci de votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| '### DEMARAGE DU CHAUFFAGE
If (Sonde_oregon<Mode_chauffage) Then
hs.execX10 "M2", "on"
hs.execX10 "M12", "off"
hs.WriteLog "Info", "chauffage Marche"
End If
'### ARRET DU CHAUFFAGE
If (Mode_chauffage<=Sonde_oregon) Then
hs.execX10 "M12", "on"
hs.execX10 "M2", "off"
hs.WriteLog "Info", "chauffage Arret"
End If |
Nota les commandes qui commence par "hs" sont propre au système "Homeseer" de gestion domotique
Domotique Exécution d'une commande dès que sonde < Température de consigne Résolu
Bonjour,
Merci à tous de votre contribution même si la solution n'y était pas "L'autodidact" à allumer chez moi une lumière, un éclair de lucidité.
En effet j'avais oublié que le système proposait une fonction permettant de vérifier l'état de la commande cette fonction est "hs.isoff ou hs.ison", il m'a donc suffit d'ajouter un "And hs.isoff ("M2") dans la condition (voir si dessous) ainsi la cmde n'est envoyée qu'une seul fois quelques soit la variation de la sonde de température jusqu'a ce que celle ci atteigne la température de consigne. et la j'suis trop content CA MARCHE COMME JE VEUX. Je colle ci dessous l'extrait du code au cas ou cela servirait à quelqu'un.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| '### DEMARAGE DU CHAUFFAGE
If (Sonde_oregon<Mode_chauffage)and hs.isoff ("M2") Then ' si température sonde < consigne et M2 off (marche chauffage est off alors
hs.execX10 "M2", "on" ' Cmde marche Chaudière sur on
hs.execX10 "M12", "off" ' Cmde arret Chaudiere sur off
hs.WriteLog "Info", "chauffage Marche" ' Pase info marche chaudiere ds journal
End If
'### ARRET DU CHAUFFAGE
If (Mode_chauffage<=Sonde_oregon)and hs.isoff ("M12") Then ' si température sonde >= consigne et M12 off (Arret chauffage est off alors
hs.execX10 "M12", "on" ' Cmde arret Chaudière sur on
hs.execX10 "M2", "off" ' Cmde marche Chaudiere sur off
hs.WriteLog "Info", "chauffage Arret" ' Pase info Arret chaudiere ds journal
End If |