Aller au contenu
mprinfo

Lua - Sceneactivation Et Module Compatible (Déclenchement D'une Scéne Avec Un Bouton)

Recommended Posts

Déclencher des scènes avec les boutons S1 ou S2

reliés aux Micro-modules

(Compatibles avec cette fonction)

 

 

Merci à  Jérôme Massiaux, http://tutoriels.domotique-store.fr/

 

Il est préférable d'utiliser des boutons monostable mais pas obligatoire.

 

 

 

1- Fonction d'activation de scène :


Le module permet d´envoyer des commandes compatibles avec l´activation de scènes.
L´information est envoyée aux périphériques associés au groupe 3. Des contrôleurs comme le Home Center 2 sont capables d’interpréter ces commandes et de se baser dessus pour activer des scènes, auxquelles des ID spécifiques ont été assignés. L´utilisateur peut étendre les fonctions des boutons connectés aux bornes S1 et S2 en séparant les actions de chaque bouton connecté.
Par exemple: un double clic active la scène ËBonne nuitË et un triple clic active la scène ËBonjourË

 

2 - Modules Compatibles :

  • Fibaro FGD-211
  • Fibaro FGRM-222
  • Fibaro FGBS-001
  • Fibaro FGK-101

 

3 - Il faut paramétré le module :

  • FGD-211
Paramètre 19 : ON = contacts connectés / OFF
Paramètre 41 : activation de la fonction
  • FGRM-222
Paramètre 50 : Activation des scènes.
  • FGBS-001

Paramètre 03 : Entrée monostable

Paramètre 04 : Entrée monostable

Paramètre 14 : fonction ON

  • FGK-101

Paramètre 14 : fonction activée

 
Notre module est paramétré pour envoyer des valeurs via sceneActivation

 

4 - Valeur envoyer par sceneActivation :

  • FGRM222
    • Entrée S1 <Bouton Monté> (Avec bouton poussoir)
      • 12 = Un appui long vers le Haut
      • 13 = Relâchement après un appui long vers le haut
      • 14 = Deux clics vers le Haut
      • 15 = Triple clics (Ne fonctionne pas chez moi)
      • 16 = Un clic vers le Haut
    • Entrée S2 <Bouton Descendre> (Avec bouton poussoir)
      • 22 = Un appui long vers le Bas
      • 23 = Relâchement après un appui long vers le Bas
      • 24 = Deux clics vers le Bas
      • 25 = Triple clic vers le Bas
      • 26 = Un clic vers le Bas
  • FGD211
    • Entrée S1  (Avec bouton poussoir)
      • 12 = Un appui long
      • 13 = Relâchement après un appui long
      • 14 = Deux clics
      • 15 = Triple clics
      • 16 = Un clic vers le Haut
    • Entrée S2  (Avec bouton poussoir)
      • 22 = Un appui long
      • 23 = Relâchement après un appui long
      • 24 = Deux clics
      • 25 = Triple clic
      • 26 = Un clic
  • FGBS-001 ("Testé par Berale avec succès")
    • Entrée IN1
      • 10 = Changement de off à  on
      • 11 = Changement de on à  off
      • Les autres ID sont correctement reconnus si le paramètre 3 est fixé à  la valeur 2
      • 12 = Un appui long
      • 13 = Relâchement après un appui long
      • 14 = Double-clic
      • 15 = Triple clic
    • Entrée IN2
      • 20 = Changement de off à  on
      • 21 = Changement de on à  off
      • Les autres ID sont correctement reconnus lorsque le paramètre 4 à  la valeur 2
      • 22 = Un appui long
      • 23 = Relâchement après un appui long
      • 24 = Double-clic
      • 25 = Triple clic
  • FGK-101 (Avec un interrupteur)
    • Entrée IN
      • 10 = Changement de off à  on
      • 11 = Changement de on à  off
      • Les ID restants sont reconnus correctement si la valeur du paramètre
      • 12 = Un appui long
      • 13 = Relâchement après un appui long
      • 14 = Double-clic
      • 15 = Triple clic
  • Cela ne fonctionne pas chez moi
    • FGD211
      • Si le paramètre 19 est réglé à  0: clic simple ID16
        Si le paramètre 19 est réglé à  1, les ID suivants sont envoyés:
        passage de off à  on ID10
        passage de on à  off ID11
         
    • FGRM222
      • Entrée S1 - 15 = Triple clics

5 - Scripts à  mettre dans une scène :

  • Entête de la scéne :

L’entête de la scène doit comprendre l'<ID du module> (FGD ou FGRM) qui doit lancer la scène et sceneActivation

 

Exemple : Nous allons crée une entête qui déclenchera la scène lorsque l'on appuiera sur l’interrupteur du module ID10

  • --[[
    %% properties
    10 sceneActivation
    --]]
    
  • Pour récuperer la valeur que retourne le module déclencheur
  • local ValeurFGD = fibaro:getValue(10, "sceneActivation")
    fibaro:debug("Valeur envoyer par Scène Activation : " ..ValeurFGD)
    
  • Scène qui permet de tester les valeurs retourner lorsque l'on appui sur l’interrupteur relié au module ID10

(les résultats ce trouveront dans la fenêtre du debug de la scène)

  • --[[
    %% properties
    10 sceneActivation
    --]]
    local ValeurSceneActivation = fibaro:getValue(10, "sceneActivation")
    fibaro:debug("Valeur envoyer par Scène Activation : " ..ValeurSceneActivation)
    

Grâce a ce code vous allez pouvoir faire des essais et voir quelles valeurs le module retourne lorsque que l'on appui sur son interrupteur

 

Exemple : 15 = Un triple clic si Entrée est S1

 

  • Pour récuperer la valeur est l'ID du module déclencheur
  • --[[
    %% properties
    10 sceneActivation
    --]]
    ----------------------------------------------------------------------------
    -- Recupération de nom du trigger et de ça valeur
    ----------------------------------------------------------------------------
    local sourceTrigger = fibaro:getSourceTrigger()
    if (sourceTrigger['type'] == 'property') then
      IDmoduledeclencheur = tonumber(sourceTrigger['deviceID'])
      ValeurSceneActivation = tonumber(fibaro:getValue(IDmoduledeclencheur, "sceneActivation"))
      print("ID du Module déclencheur = ", IDmoduledeclencheur, " - Valeurs : ", ValeurSceneActivation)
    else
      fibaro:debug("La scène ne peut être lancer que par l'action d'un module")
      fibaro:abort();
    end
    
    
    
  • Cette scène et un peu plus complète elle vous indiquera l'action que vous venez de faire sur le bouton 
  • --[[
    %% properties
    11 sceneActivation
    --]]
    
    
    local ActionBouton = {
         [10] = "Changement de off à  on bouton 1",
         [11] = "Changement de on à  off bouton 1",
         [12] = "maintenir appui long bouton 1",
         [13] = "relâcher appui long bouton 1",
         [14] = "Double-clic bouton 1",
         [15] = "Triple-clic bouton 1",
         [16] = "Simple clic bouton 1",
         [20] = "Changement de off à  on bouton 2",
         [21] = "Changement de on à  off bouton 2",
         [22] = "maintenir appui long bouton 2",
         [23] = "relâcher appui long bouton 2",
         [24] = "Double-clic bouton 2",
         [25] = "Triple-clic bouton 2",
         [26] = "Simple clic bouton 2"
         }
    
    ----------------------------------------------------------------------------
    -- Recupération de nom du trigger et de ca valeur
    ----------------------------------------------------------------------------
    local sourceTrigger = fibaro:getSourceTrigger()
    if (sourceTrigger['type'] == 'property') then
      IDmoduledeclencheur = tonumber(sourceTrigger['deviceID'])
      ValeurSceneActivation = tonumber(fibaro:getValue(IDmoduledeclencheur, "sceneActivation"))
      local TypeAction = ActionBouton[ValeurSceneActivation]
      print("ID du Module déclencheur = ", IDmoduledeclencheur, " - Valeur Scène Activation : ", ValeurSceneActivation, " = ", TypeAction)
    else
      fibaro:debug("La scéne ne peut être lancer que par l'action d'un module")
      fibaro:abort();
    end
    
    
    
  • Pour changer la valeur d'une variable globale

Exemple :

Variable globale : Present

Valeur de la variable :  OUI    -   NON

2 clics sur le bouton connecté a S1 = OUI

2 clics sur le bouton connecté a S2 = NON

Il y aura un envoi d'un push pour confirmer que l'action a été prise en compte

--[[
%% properties
10 sceneActivation
--]]

local IdTel = 181

----------------------------------------------------------------------
-- Envoi d'un Push pour avertir du changement de valeur
----------------------------------------------------------------------
function EnvoiPush(Message)
        fibaro:debug(Message)
        fibaro:call(IdTel, "sendPush", Message)
end
----------------------------------------------------------------------------
-- Recupération de nom du trigger et de ça valeur
----------------------------------------------------------------------------
local sourceTrigger = fibaro:getSourceTrigger()
if (sourceTrigger['type'] == 'property') then
  IDmoduledeclencheur = tonumber(sourceTrigger['deviceID'])
  ValeurSceneActivation = tonumber(fibaro:getValue(IDmoduledeclencheur, "sceneActivation"))
  print("ID du Module déclencheur = ", IDmoduledeclencheur, " - Valeurs : ", ValeurSceneActivation )
else
  fibaro:debug("La scéne ne peut être lancer que par l'action d'un module")
  fibaro:abort();
end
if IDmoduledeclencheur == 10 then -- Volet Ch Enfant
   if ValeurSceneActivation == 14 then -- Double clic S1
      EnvoiPush("Present = OUI")
      fibaro:setGlobal("Present", "OUI")
   elseif ValeurSceneActivation == 24 then -- Double clic S2
      EnvoiPush("Present = NON")
      fibaro:setGlobal("Present", "NON")
   end
end

Ce tutos et un début d'explication je le compléterai des que j'ai un peu plus de temps

Modifié par Moicphil
  • Like 1
  • Upvote 9

Partager ce message


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

×