Aller au contenu
mprinfo

Tout Sur Le Déclenchement D'une Scéne En Lua (By Steven)

Recommended Posts

J'ai décidé de faire ce tuto avec l'accord de Steven

 

Activé ou Désactivé une Scéne :

 

Une scène non activé ne peut être exécuté que manuellement.

 

Capture d'écran pour une Scéne LUA

post-374-0-87672300-1427017700_thumb.jpg

 

Capture d'écran pour une Scéne BLOC

post-374-0-85844800-1427017747_thumb.jpg

 

On peut remarqué une différence entre ces 2 captures d'écran

 

Pour lancé une scéne au démarrage de la HC2

 

- En mode Bloc on doit coché la case : Lancer au Démarrage du Home Center 2

- En mode LUA on doit ajouter dans l'entête : %% autostart

  (Attention parfois il faut ajouter un petit SLEEP d'environ 10s pour que cela fonctionne "Merci Steven pour cette astuce")

 

Pour ceux qui connaissent MSDOS autostart peut être comparer à  l'autoexec.bat

 

Tous ce qui va suivre n'est pas de moi mais de Steven, je trouvais dommage qu'une explication aussi clair ce trouve dans un post perdu sur le forum

 

Non, l'entête n'est pas obligatoire, il l'est uniquement si l'on souhaite utilisé les déclencheurs automatiques tel que 

 

%% autostart      -- démarrage automatique au redémarrage

%% properties    -- sur changement d'une propriété d'un module

%% globals        -- sur changement d'une variable globale

 

Exemple :

 

--[[

%% properties

63 power

37 value

--]]

 

Dès que la consommation de mon module ID 63 change OU que la valeur de mon module ID 37 change, la scène sera executée.

 

--[[

%% globals

Chauffage

--]]

 

Dès que la variable global "Chauffage" changera de valeur (attention, changer sa valeur depuis le panneau des variables ne fonctionne pas)

 
 
Si plusieurs déclencheurs arrivent en même temps, il y a aura plusieurs scènes lancées en parallèle.
Beaucoup de personne n'aime pas cela est commence le code de leur scène par
 
if (fibaro:countScenes() > 1) then
  fibaro:abort()
end

Pour s'assurer de n'avoir qu'une instance de scène en même temps.

 

Après, comme tu l'as déjà  dis, il est possible de savoir "qui" a déclenché la scène :

 
local trigger = fibaro:getSourceTrigger()
 
if (trigger['type'] == 'property') then
  -- Déclenché par le changement de valeur d'un module
  fibaro:debug('Source device = ' .. trigger['deviceID'])
elseif (trigger['type'] == 'global') then
  -- Déclenché par le changement d'une variable globale
  fibaro:debug('Global variable source = ' .. trigger['name'])
elseif (trigger['type'] == 'autostart') then
  -- Déclencher au démarrage de la box
  fibaro:debug('Autostart')
elseif (trigger['type'] == 'other') then
  -- Déclencher manuellement ou par une autre scène ou un appel API.
  fibaro:debug('Other source.')
end

Merci pour tous ce que tu fais sur le forum

 

Voici des liens vers de la documentation en FRANà‡AIS

 

Description détaillée des l’API Fibaro : http://domotique-home.fr/category/docs-fibaro-fr/

 

Index des Fonctions : http://domotique-home.fr/docs-fibaro-francais-index-des-fonctions-thematique/

 

Une application Android sur le Play store : http://play.google.com/store/apps/details?id=appinventor.ai_rems99.FibaroDocsFr

 

Introduction à  la programmation LUA : http://www.luteus.biz/Download/LoriotPro_Doc/LUA/LUA_Training_FR/Introduction_Programmation.html
  • Upvote 19

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×