Aller au contenu
MAM78

VD Minuteur

Recommended Posts

Est-ce vous savez s'il existe déjà un VD minuteur qui :

  • Décompte les secondes jusqu'à zéro
  • Affiche le temps restant
  • Peut être programmé avec des boutons + et - pour les minutes et secondes

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour@MAM78,

Je crois me souvenir qu il y a un VD COUPATAN sur le forum qui decomptait pour une pompe et d autres peripheriques.
Faudrait le retrouver.

Envoyé de mon Nexus 5X en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour le lien.

J’ai entre-temps développé le VD, mais il me reste à trouver la meilleure des solutions pour gérer le décompte du timer en secondes tout en minimisant la consommation du CPU et en évitant le plus possible l’usage du main loop qui je pense est gourmand.
Si vous avez des suggestions, je suis preneur ;)


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
Partager sur d’autres sites

Question bête : Comment être précis à la seconde prêt avec un main loop qui tourne toutes les 3 secondes ? Avec un sleep(x) lors du dernier passage ?

 

Autre question bête ... allez, soyons fou ;) ... quel intérêt de ce genre de module pour de la domotique ? (Comme le disait @Berale24 lui-même c'est un gadget et il gérait des minutes ce que je peux comprendre mais des secondes ?) Perso, je n'arrive pas trouver de réponse mais il doit y avoir un usage auquel je ne pense pas et je serais curieux d'avoir des suggestions ... donc je m'abonne à ce topic non pas pour embêter comme à l'accoutumée :rolleyes: mais par curiosité.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Si vous regardez mon VD, vous verrez que je n'utilise pas le main loop.

Et oui, c'est un gadget pour des trucs pas trop précis.

Moi, c'était au départ pour démarrer une pompe qui remplit une cuve et éviter que ça déborde si j'ai le dos tourné.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

L'objetif est de pouvoir allumer un groupe d'ampoules Phillips Hue selon une durée limitée (ex. durée 20 secondes) et paramètrable également via l'interface utilisateur (smartphone, tablette, ???).

 

L'allumage du groupe d'ampoules externes sert de confirmation visuelle lors d'un déclanchement d'un sénario.

Exemples :

  • armement / desarement de l'alarme,
  • visuel lors du déclenchement de l'alarme, en complément de la sirène ou lors d'alarmes silentieuses.
  • déclanchement lors d'une détection d'une présence de nuit autour de la maison.
  • Mise en lumière des exterieurs pour déclencher l'enregistrement vidéo de meilleur qualité pour une durée donnée.

Je suis en cours de construction d'un VD de pilotage d'un groupe d'ampoules ou de rubans led HUE avec gestion de scénaris (allumage constant, clignotement, séquence de couleurs, arc en ciel) selon un timer modifiable via l'interface utilisateur :74:

 

Dès que celui-ci sera suffisement avancé, je le partagerais évidement pour obtenir vos critiques et améliorations :13:

Il est déjà bien avancé, il reste néanmoins quelques optimisations et perfectionnement du fonctionnement du timer afin de pas trop pénaliser le fonctionnement de nos HC2. Livraison probable ce soir.

 

A vrai dire l'affichage du décomptes des secondes n'est pas primordial, mais parcontre j'ai besoin à minima d'avoir le décompte du timer avec la possibilité de l'interrompre pour éteindre le groupe d'ampoules.

 

Je sais bien que GEA est en mesure de faire une partie des fonctions, mais ne permet pas d'interagir simplement via une interface utilisateur. Peut-être que mes idées pourront faire l'objet d'une évolutions de GEA ? :huh:

 

CQFD ;) cf. : @Steven quel intérêt de ce genre de module pour de la domotique

 

Modifié par MAM78
  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, MAM78 a dit :

pourront faire l'objet d'une évolutions de GEA ? :huh:

un VD qui permettrait de de parametrer des interactions/actions un peu comme GEA Alarm pour les horaires ?

Partager ce message


Lien à poster
Partager sur d’autres sites

L'objectif n'est pas de déclencher des scènes mais de lancer des notifications/actions visuelles sur les ampoules Hue selon une durée déterminée et modifiable

 

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, Steven a dit :

Question bête : Comment être précis à la seconde prêt avec un main loop qui tourne toutes les 3 secondes ? Avec un sleep(x) lors du dernier passage ?

Réponse bête du coup :P

 

Puisque la Main Loop est une simple boucle avec un sleep() de 3s, il suffit de faire sa propre boule avec un sleep de 1h à l'intérieur de celle-ci.

En pratique, on ne passera qu'une seule fois dans la boucle de la main loop, et le script fera son exécution dans sa propre boucle.

 

Je n'ai jamais testé car je n'ai jamais eu besoin d'avoir une précision inférieure à 3s, mais je ne vois aucune raison pour laquelle ça ne fonctionnerait pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

On avait déjà remarqué qu'un "Sleep" supérieur à ~40mn dans le main loop fait explosé ce dernier. Il fallait mieux créer une variable global (non pas une VG fibaro) qui laisse s'exécuter le Main Loop et qui vérifie quand l'action doit être effectuée.

 

Je ne sais pas si c'est toujours d'actualité car cela date de quelques versions mais pour palier à cela j'utilisais un code du style :

 

local nbHeure = 12
 
function doIt()
   -- VOTRE CODE --
   fibaro:log(os.date("%d %B %Y - %H:%M:%S"))
   fibaro:call(fibaro:getSelfId(), "setProperty", "logTemp", "TxtGray" )  
end
 
if (not instance) then
   instance = { lastrun = os.time(), every = nbHeure }
end
 
diff = os.date("*t", os.difftime(os.time(), instance.lastrun))
 
if (diff.hour >= instance.every) then
   doIt()
   instance.lastrun = os.time()
end

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, MAM78 a dit :

Je sais bien que GEA est en mesure de faire une partie des fonctions, mais ne permet pas d'interagir simplement via une interface utilisateur. Peut-être que mes idées pourront faire l'objet d'une évolutions de GEA ? :huh:

Je comprends mieux le besoin.

 

Non, en effet, GEA n'est pas du tout prévu pour ce genre de cas, il tourne toutes les X secondes et l'idée de le faire tourner plus rapidement lui ferais perdre tout son utilité.

 

Pour une intégration avec GEA ou n'importe quel autre scénario, il suffirait que tu ais un label qui change d'état une fois la durée atteinte et on pourrait le récupérer dans l'entête de n'importe quel scénario (ou une variable globale) :

 

%% propeties

100 ui.lblReady.value

 

GEA.add({"Label", 100, "lblReady", "OK"}, -1, "Décompte terminé", ...)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven merci pour ta suggestion, mais si je comprends bien ta suggestion de passer par l'usage du Main Loop, je vais avoir un risque d'attendre potentiellement de 1 à 3 secondes au-delà de la fin du timer. théorique.

Rien de grave en soit pour mon usage mais c'est bien ça ?

Est-ce que ta suggestion peut également s'intégrer directement dans un bouton du VD sans utiliser le Mail Loop, dans une boucle qui attend la fin du timer ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah non, attention, je ne suggère rien du tout, c'était juste une mise en garde sur une constatation qu'on avait fait sur le "main loop".

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 33 minutes, Steven a dit :

On avait déjà remarqué qu'un "Sleep" supérieur à ~40mn dans le main loop fait explosé ce dernier. Il fallait mieux créer une variable global (non pas une VG fibaro) qui laisse s'exécuter le Main Loop et qui vérifie quand l'action doit être effectuée.

Oui tout à fait, mais là on ne parle pas d'utiliser un grand sleep ( :D ) mais un tout petit sleep ( re - :D )

Donc je ne pense pas que ce bug se produise.

 

D'ailleurs avec le grand sleep, rien ne dit que c'était la main loop qui plantait.... mais plutôt la fonction sleep() elle-même.

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Il ne faut pas présumé du contenu du sleep  ( :D ).

 

J'envisage pour ce même VD de pouvoir mettre un tempo de plusieurs heures. Exemple lancer une animation lumineuse dans le jardin pour 1h30 ou bien jusqu'à une heure donnée.

Partager ce message


Lien à poster
Partager sur d’autres sites

1h30 ... c'est un Sleep Kangourou ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas encore terminé.

 

Mais voici en avance de phase un avant goût du VD de pilotage des ampoules Philips HUE :74:

 

5a8392056103b_Sanstitre7.thumb.png.7104704b340c20aeee90c55e6191949f.png

  • Like 5

Partager ce message


Lien à poster
Partager sur d’autres sites

Punaise, c'est beau, j'ai envie de l'installer rien que pour te piquer les idées d'icones !!

Partager ce message


Lien à poster
Partager sur d’autres sites

Vous trouverez ci-dessous l'aboutissement de ma recherche sur la mise en place d'un minuteur pour piloter mes ampoules Philips HUE

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Amis testeurs, j'attends vos retours :13:

Partager ce message


Lien à poster
Partager sur d’autres sites

×