Aller au contenu
jjacques68

getSourceTrigger

Recommended Posts

faudrait essayer, j'ai pas de device de ce type

 

{
  conditions = { {
      id = 87,
      isTrigger = true,
      operator = "!=",
      property = "sceneActivationEvent",
      type = "device",
      value = 0
    } },
  operator = "all"
}


----ACTION----


print("value = ", sourceTrigger.value)

quand tu appuies sur un bouton, tu devrais avoir la valeur du bouton...

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci je teste

 

A lala nous somme perdu sans GEA :D

Partager ce message


Lien à poster
Partager sur d’autres sites

salut

 

bon ça commence à fonctionner

 

local val = tonumber(json.encode(sourceTrigger.value))

local device01 = tonumber(fibaro.getValue(107, "value"))
print("value = ", device01)
if (val == 1) then 

if (device01 > 0) then
		fibaro.call(107, 'setValue', 0)
    
	else
		fibaro.call(107, 'setValue', 99)
	end
    end

 

mai je n'arrive pas à rajoutée un autre device sur les autre bouton

 

J'ai essayer d'ajouter ça a la suite mai, rien ne fonctionne 

 

Si bouton 2 alors allume device 134

 

local device02 = tonumber(fibaro.getValue(134, "value"))
if (val == 2) then 

if (device02 == "false") then
        fibaro.call({134}, "turnOn")
    	else
	fibaro.call({134}, "turnOff")
	end
    end

 

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai tester ça mai rien 

 

local device02 = fibaro.getValue(134, "value")
print("value modul 2 = ", device02)

if     (val == 2) and (device02 == "true") then fibaro.call(134, "turnOff")
elseif (val == 2) and (device02 == "false") then fibaro.call(134, "turnOn")

 

Partager ce message


Lien à poster
Partager sur d’autres sites

es-tu sûr que "val" est bien égal 2 avec le bouton 2 ?

Tu devrais faire un print de val pour voir quelle est sa valeur lors de l'appui sur un bouton !

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai fini par trouver, merci pour vos conseilles

 

----DÉCLARATIONS (Conditions/Déclencheurs)
{
    conditions = { {
          id = 87,
        isTrigger = true,
        operator = "anyValue",
        property = "sceneActivationEvent",
        type = "device",
              }
                  
      },
    operator = "any"
  }

-------ACTION

----local ButtonPressed = fibaro:getValue(87, "sceneActivationEvent") 
local sa = tonumber(json.encode(sourceTrigger.value))

---BOUTON 1 et 2
if (sa == 1) then fibaro.call(91, 'toggle') end
if (sa == 2) then fibaro.call(89, 'toggle') end

---BOUTON 3 et 4
if (sa == 3) then fibaro.call(98, 'open') end
if (sa == 3) then fibaro.call(95, 'open') end

if (sa == 4) then fibaro.call(98, 'close') end
if (sa == 4) then fibaro.call(95, 'close') end

---BOUTON 7 et 8
---if (sa == 7) then fibaro.call(98, 'close') end
if (sa == 8) then fibaro.profile(4, 'activateProfile') end

 

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai un autre problème, comment évitée qu'un TRIGGER d'déclenche tout un scene 

 

  J'ai 2 module 110  et 112 (volet roulant)

 

dans ma scène j'ai plusieurs actions

 

En gros si un appelle arrive du 110 active uniquement le code correspondant 

 

Pour le moment si 110 ou 112 s'active j'ai tout la scène qui s'exécute.

 

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 08/03/2020 à 07:27, Krikroff a dit :

Le GetSourceTrigger est remplacé par sourceTrigger accessible directement dans le global LUA.

 

Voici un code qui devrait t'aider à mieux comprendre le fonctionnement, 


do
local trigger = sourceTrigger
print("property:"..trigger.property) -- ex: "centralSceneEvent", "value" etc...
print("id:"..trigger.id) -- l' ID de la condition. ex: 12
print("type:"..trigger.type) -- le type déclaré dans la condition ex: "device"
for key,value in pairs(trigger.value) do
  print(key ..": ".. value) -- toutes les valeurs déclarées lorsqu'elles existent
end
end

ex: pour une KEYFOB Fibaro / centralSceneEvent cela devrait donner quelque chose comme cela pour capter l'appui sur la touche "rond"

 


local trigger = sourceTrigger
if (trigger.property == "centralSceneEvent") then
    print("id:"..trigger.id)
    print("type:"..trigger.type)
    for key,value in pairs(trigger.value) do
        print(key ..": ".. value)
    end
    if (trigger.value.keyId==2) then
        print("Circle button "..trigger.value.keyAttribute)
    end
end

Dites-moi :)

 

 

 

 

 est-il possible de lire également un Minimote de chez AEON LABS

 

local sa = tonumber(json.encode(sourceTrigger.value))

---BOUTON 1 et 2
if (sa == 1) then fibaro.call(91, 'toggle') end  ----bouton 1
if (sa == 2) then fibaro.call(89, 'toggle') end  ----bouton 2

etc

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @jjacques68

 

bon ce week-end j’ai chercher le déclic sur le QA et c’est pas encore ça 

 

c’est vrai que la notice est un peu faible et pas très bien ludique surtout pour les débutants

 

désolée de t’embêter mais je veux vraiment apprendre et comprendre 

 

si tu à un tuto des exemples je suis preneur 

 

merci d’avance 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×