Aller au contenu

Stop Scène


Rem's

Recommended Posts

Bonjour à  tous,
J'ai une scène en script Lua que j'appelle Réveil. Seulement voila, comment faire si je décide de faire la grasse matinée ...?
Est-il possible de faire une scène ou un module virtuel qui peut stopper ou désactiver une scene (par quel code) ?
 
Merci de vos réponses.

Lien vers le commentaire
Partager sur d’autres sites

Suffit de te créer une variable globale avec une valeur oui ou non.

Et dans un ta scene tu rajoute

 

if global dodo = non

 

elseif dodo =oui.

 

C'est pas le vrai code mais juste l'idée générale ^^

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...
  • 11 months later...

Salut !

 

Un petit "up" avec une variante... et si je veux stopper une scène depuis une autre scène... que code LUA ?...

 

-> J'ai une scène "matin" qui allume la télé dans la chambre (je sais, c'est pas bien mais le matin c'est dur donc...) et lance la senséo puis le miroir chauffant pour la douche, joue avec un DIM sur la lumière etc etc...

Par contre, quand c'est madame seule qui se lève, j'ai peut être envie de dormir, moi... donc j'aurais voulu faire une scène "muteMatin" qui stoppe la scène matin en cours pour lancer d'autres actions à  la place......

 

Bonne journée !!...

 

Info : neige ce matin sur Bordeaux !... tapis blanc...

 

Christophe

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

la même chose que récedemment je pense avec une variable gloable (VG)

 

soit VG s'appelle TOTO

 

IF TOTO = jemeleve

then "scene matin"

elseif 'scene mutematin"

 

Ca devrait fonctionner, attendons d'autres reponses ;-) au cas ou ;-)

Lien vers le commentaire
Partager sur d’autres sites

c'est bien cela dans la meme scene tu lances telle ou telle action en fonction de la variable globale

 

si TOTO = oui (la c'est toi qui te leves)

then "tes action du matin, allumage tele, dim...."

elseif "les autres actions quand mme se leve"

Lien vers le commentaire
Partager sur d’autres sites

Suis sur iPad, mais je fais ca chez moi :

Scene enanable pour cocher ou décocher la case "scene active", ça sera "true" ou "fasse"

Au cas où elle soit encours et stopper la lecture du script, fibaro abort

Rmq : attention àla syntax, je vous mets ca pour l'idée

Sinon je vous mettrai le bout de code

Voilou

Lien vers le commentaire
Partager sur d’autres sites

Oui Rem's, c'est cette version que je cherche à  mettre en place. L'idée de la variable globale est bien pour choisir à  un instant T de faire telle ou telle chose mais cela ne permet pas de "tuer" une scène en cours... c'est bien une fonction "Abort" ou "Scène.False/True",

Apparemment, la syntaxe semble être :

 

fibaro:killScenes(ID_Scène à  stopper);

 

Pour la relancer :

 

fibaro:startScene(ID_Scène à  relancer);

 

Enfin, pour vérifier si ou non une scène est en cours d'exécution et le cas échéant le nombre d'instances de cette dernière :

 

fibaro:countScenes(ID_Scène si appel de la fonction depuis une autre scène...);

sinon

fibaro:countScenes();

 

Bonne nuit ;-)

Lien vers le commentaire
Partager sur d’autres sites

Avec ça, je coche la case "scene activée" de la scène 85  

fibaro:setSceneEnabled(85,true); -- Réveil Sem
fibaro:setSceneEnabled(86,true); -- Réveil WE
fibaro:debug("Réveil activé"); 

Avec ça, je décoche "scène activée" de la scène 85 + j'arrête la lecture du script

fibaro:setSceneEnabled(85,false); -- Réveil Sem
fibaro:killScenes(85)

et voilou, si ça peut aider ... :)

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Ok,

 

Dis moi si je me trompe :

setSceneEnabled(ID,true);   permet de rendre la scène "lançable" alors que

setSceneEnabled(ID,false);   permet de rendre la scène inactive donc non "lançable" c'est ça... ?

 

;-)

Lien vers le commentaire
Partager sur d’autres sites

  • 6 months later...

 J'ai réussi à  mettre ça en place dans un module virtuel.

Merci @Rem's.

Mais pourquoi arrêter la lecture du script (killScenes)?

Elle reprend normalement quand on la ré-active?

Lien vers le commentaire
Partager sur d’autres sites

Lorsque je pars de chez moi, pendant la scene du couchée du soleil, alors j'etteinds les lumières via une scene et je stoppe ce qui est en route.

Ou alors, j'ai un VD nomme stop scene dans lequel je désactive et stoppe si la scene est en cours. Réveil semaine, week end, couchée du soleil terrasse, scene présence.

Voilà, si ca peut donner des idees

Lien vers le commentaire
Partager sur d’autres sites

 Alors j'ai mis pour l'activer

fibaro:setSceneEnabled(39,true);
fibaro:startScene(39);

et ceci pour l'arrêter

fibaro:setSceneEnabled(39,false);
fibaro:killScenes(39);

Merci @Rem's.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Sur HCL, en mode block, c'est pas un problème.

Il faut un VD qui met àjour une ou des variables globales (Il y a des tutos pour ça).

Puis la scène test les variables globales pour effectuer ou non les actions.

On ne stoppe pas la scène, mais elle effectue les actions sous condition.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

Oui mais le fait de la killer ne la desactive pas. J'ai une scene ou j'ai un setTimeout(Run, delay*1000)

 

En etant plus precis j'aurais du parler de :

 

fibaro:unactivateScenes(39)

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...