Effectuer une action pendant une certaine durée

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Répondre
getget
Messages : 63
Enregistré le : 05 janv. 2018, 03:21

Effectuer une action pendant une certaine durée

Message par getget » 08 nov. 2018, 19:17

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 :)

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


cyberbob
Messages : 353
Enregistré le : 28 nov. 2016, 19:43
Localisation : Belgique

Re: Effectuer une action pendant une certaine durée

Message par cyberbob » 08 nov. 2018, 21:41

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 ;)
Domoticz Stable V4.9700 sur Synology DSM 6.2 / 2 x RFlink V48.4 - 433.92MHz & 433.42MHz / Script en LUA & Blocky

getget
Messages : 63
Enregistré le : 05 janv. 2018, 03:21

Re: Effectuer une action pendant une certaine durée

Message par getget » 08 nov. 2018, 23:23

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 :)

lost
Messages : 279
Enregistré le : 12 nov. 2016, 11:01

Re: Effectuer une action pendant une certaine durée

Message par lost » 09 nov. 2018, 09:18

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!

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


getget
Messages : 63
Enregistré le : 05 janv. 2018, 03:21

Re: Effectuer une action pendant une certaine durée

Message par getget » 09 nov. 2018, 09:28

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.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre