Page 1 sur 1

Effectuer une action pendant une certaine durée

Publié : 08 nov. 2018, 19:17
par getget
Bonjour, je voudrai faire la chose suivante :

Si on appuie sur le bouton "Commande poele"
- Eteindre la VMC
- Allumer le circulateur d'air
- Mettre le stripled sur rouge
- Mettre le chauffage sur HG

Jusque là tout va bien avec un scenario.

Ensuite, ça se corse.
Je voudrai que quoi qu'il arrive la première heure il ne se passe rien.
Ensuite, si la température est descendue au dessous de 21°
- Rallumer le chauffage
- Rallumer la VMC
- Mettre le stripled sur bleu
- Eteindre le circulateur d'air

Comment faire "attendre une heure" (le reste je saurai faire) ?

Merci :)

Re: Effectuer une action pendant une certaine durée

Publié : 08 nov. 2018, 21:41
par cyberbob
Je crois que le seul moyen est de le faire en script LUA (ou autres language)

Code : Tout sélectionner

--Cette fonction calcule la différence de temps (en secondes) entre maintenant
--et la date passée en paramètre.
function timedifference (s)
  year = string.sub(s, 1, 4)
  month = string.sub(s, 6, 7)
  day = string.sub(s, 9, 10)
  hour = string.sub(s, 12, 13)
  minutes = string.sub(s, 15, 16)
  seconds = string.sub(s, 18, 19)
  t1 = os.time()
  t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
  difference = os.difftime (t1, t2)
  return difference
end
Avec cette fonction, qui renvoie la différence de temps entre maintenant et une date passée en paramétre :

Code : Tout sélectionner

if timedifference(otherdevices_lastupdate['mon_inter'] > 600
 then
 ...
 ...
 end
Ce if va appeler la fonction dans le script, et si le dernier changement de l'inter 'mon_inter' est supérieur a 600 seconde (10 min) il fait le "then"

Ce n'est qu'un exemple, mais quand on a compris on lui fait faire n'importe quel application ;)

Re: Effectuer une action pendant une certaine durée

Publié : 08 nov. 2018, 23:23
par getget
Merci :)
J'ai fait autrement, j'ai mit un Switch avec un délai OFF d'une heure qui s'active en même temps que j'active mon script. Puis j'ai un blockly quand il repasse a 0 :)

Re: Effectuer une action pendant une certaine durée

Publié : 09 nov. 2018, 09:18
par lost
getget a écrit : 08 nov. 2018, 19:17 Je voudrai que quoi qu'il arrive la première heure il ne se passe rien.
Ensuite, si la température est descendue au dessous de 21°
- Rallumer le chauffage
- Rallumer la VMC
- Mettre le stripled sur bleu
- Eteindre le circulateur d'air
1h00 après que le poêle ait été allumé, je vois mal la température descendre... pour devoir rallumer le chauffage (en doublon?), la VMC (poêle en fonctionnement, risque d'inverser le tirage et d'aspirer fumée/CO: Danger!) en eteignant le circulateur (et ne pas profiter à plein de la chaleur accumulée par le poêle)!

Ou alors il manque un truc!

Re: Effectuer une action pendant une certaine durée

Publié : 09 nov. 2018, 09:28
par getget
Justement, je ne fais ces actions que quand la temperature est redescendue à moins de 21°. Sauf qu'à l'allumage elle l'est déjà donc j'ai un blockly qui vérifie seulement quand la tempo est écoulée.