Aller au contenu
Rem's

Stop Scène

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.

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci de ta réponse, désolé de ne pas l'avoir fait avant, j'avais perdu mes identifiant.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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 ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

En fait, je ne cherche pas àchoisir entre une scène ou une autre mais par le biais d'une scène, àstopper l'exécution d'une autre scène... ou alors j'ai mal compris t

Partager ce message


Lien à poster
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"

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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 ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai lâché ma HC2 pour une paire de ski ce weekend, je te bazarde des que je rentre

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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... ?

 

;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

 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?

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

sur une HCL, on peux faire cela aussi ?

car je n'ai pas de ID qui s'affiche pour les scènes (?!)

Partager ce message


Lien à poster
Partager sur d’autres sites

Sur HCL, ça va être compliqué car tu n'as pas de Lua.

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

pourquoi ils n'ont pas fait tout simplement une fonction :

 

fibaro:stopScenes(39);

Ca fonctionne bien en True et False. Juste pour savoir :D

Partager ce message


Lien à poster
Partager sur d’autres sites

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)

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca existe ;-)

fibaro:setSceneEnabled(sceneID, enabled)

 

Pour désactiver enabled = false

Pour activer enabled = true

 

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×