Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

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
  • 3 semaines après...
  • 11 mois après...
Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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"

Posté(e)

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

Posté(e)

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

Posté(e)

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
Posté(e)

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... ?

 

;-)

  • 6 mois après...
Posté(e)

 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?

Posté(e)

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

Posté(e)

 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
Posté(e)

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.

  • 1 an après...
Posté(e)

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

 

fibaro:stopScenes(39);

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

Posté(e)

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)

 

 

 

Posté(e)

Ca existe ;-)

fibaro:setSceneEnabled(sceneID, enabled)

 

Pour désactiver enabled = false

Pour activer enabled = true

 

 

  • Upvote 1
×
×
  • Créer...