jjacques68 Posté(e) le 8 mars 2020 Signaler Posté(e) le 8 mars 2020 Hello tout le mode ! On a visiblement plus le getSourceTrigger dans la HC3 du coup pour une scène qui a comme trigger ce genre de chose : { operator = "any", conditions = { { type = "device", id = 10, property = "value", operator = "==", value = true, isTrigger = true }, { type = "device", id = 12, property = "value", operator = "==", value = true, isTrigger = true } } } et qu’on cherche à savoir qui à déclenché la scène ? comment fait-on ? merciiiii !
Krikroff Posté(e) le 8 mars 2020 Signaler Posté(e) le 8 mars 2020 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 3
jjacques68 Posté(e) le 8 mars 2020 Auteur Signaler Posté(e) le 8 mars 2020 yes !! merci @Krikroff ! ça marche nickel ! Mais où as tu ces informations, elles ne sont pas renseignées dans les pages d'aide de Fibaro ?
Krikroff Posté(e) le 8 mars 2020 Signaler Posté(e) le 8 mars 2020 Une grande partie des informations existent bien ici https://manuals.fibaro.com/home-center-3-lua-scenes/ Dans la doc: Citation sourceTrigger The variable stores the trigger object that started the scene. It results directly from the triggers defined in the previous section, but is extended by a manual start. Type of the trigger is identified by type property, which can be one of the following: ... Examples values of sourceTrigger variable. Citation json.encode json.encode(table) Convert Lua table to the text represented in JSON format. Parameters: table – Lua table Examples: Display sourceTrigger in the debug console. fibaro.debug("", json.encode(sourceTrigger)) ensuite il faut extrapoler et rétro-ingéniérer et croiser les doigts
jjacques68 Posté(e) le 8 mars 2020 Auteur Signaler Posté(e) le 8 mars 2020 ben j'avais vu ça... mais alors faut vachement extrapoler...
idomotique Posté(e) le 2 mai 2020 Signaler Posté(e) le 2 mai 2020 Hello, Merci pour cet exemple mais est ce que qqn à réussi à faire un déclancheur avec une Keyfob? même en utilisant le code généré automatiquement par Fibaro je n'arrive pas à déclancher la scène: { conditions = { { id = 569, isTrigger = true, operator = "==", property = "centralSceneEvent", type = "device", value = {keyAttribute = "Pressed", keyId = 1} } }, operator = "all" } QQn à une idée?
Krikroff Posté(e) le 2 mai 2020 Signaler Posté(e) le 2 mai 2020 Je pense que tu pourrais essayer un truc du genre pour gérer toutes les actions de ton keyfob dans une même scène { operator = "all", conditions = {{ id = 569, isTrigger = true, operator = "anyValue", property = "centralSceneEvent", type = "device" }} } Ensuite dasn ton LUA: local trigger = sourceTrigger if (trigger.property == "centralSceneEvent") then -- Tu devrais voir ici tout ce qui passe... for key,value in pairs(trigger.value) do debug(key ..": ".. value) end -- exemple.. if (trigger.value.keyId==2) then trace("Circle button "..trigger.value.keyAttribute) end -- etc... end
idomotique Posté(e) le 2 mai 2020 Signaler Posté(e) le 2 mai 2020 Hello, merci pour ta réponse. J'ai déjà essayé cela mais impossible de faire fonctionner le trigger, tu as testé? salutations
Krikroff Posté(e) le 2 mai 2020 Signaler Posté(e) le 2 mai 2020 Ah bas non.. mais logiquement cela devrait fonctionner, tu es certain de l’IDEnvoyé de mon iPhone en utilisant Tapatalk
idomotique Posté(e) le 2 mai 2020 Signaler Posté(e) le 2 mai 2020 Oui justement "logiquement" ça devrait fonctionner. Quand je fais la scène depuis la télécommande en block ca fonctionne. Si je la transforme en lua sans rien modifier ca ne fonctionne plus . C'est pour ça que j aimerais savoir si qqn a testé.
Krikroff Posté(e) le 2 mai 2020 Signaler Posté(e) le 2 mai 2020 Je pense que tout simplement ta scène est en Manuel et pas en auto, tu devrais vérifier 1
idomotique Posté(e) le 2 mai 2020 Signaler Posté(e) le 2 mai 2020 ahhhh quelle connerie, j'ai pas vu cela. en effet lors de la conversion en lua la scène est mise en manuel automatiquement. Merci. 1
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 bonne question... Sinon tu te fais un QA et dedans tu startes les scènes que tu veux au boot...
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 bah pourquoi pas... tu centralises le tout dans un QA...
Krikroff Posté(e) le 21 mai 2020 Signaler Posté(e) le 21 mai 2020 Il y a 5 heures, mprinfo a dit : comment on fait pour que les scenes ce lance au démarrage de la box j’ai bien mis démarrage auto mais ça ne fonctionne il y a quelque chose a mettre dans condition ? https://manuals.fibaro.com/home-center-3-lua-scenes/ Gateway startup For gateway startup, the interpretation of conditions fields is as follows: type – takes value "se-start". property – takes value "start". value – takes value "true". operator – takes one of these values: "==" – are the values the same "!=" – are the values different isTrigger – is the condition also a trigger: true – is a trigger (recommended) false – is only a condition (default) Examples:Trigger on every startup. { type = "se-start", property = "start", operator = "==", value = true, isTrigger = true } 1
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 merde j'ai foiré le print(...) dans la scène, l'ai pas vu passé, bon on re boot encore une fois... 1
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 marrant j'ai mis un fibaro.warning() pour voir le déclenchement au démarrage, et je le vois pas passer... Peut être que c'est parce que il passe avant que j'ouvre la fenêtre de debug...
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 ben c'est ce que je viens de faire, et bien vous savez que ça marche pas chez moi !!
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 nan je confirme ça marche pas.
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 mouai c'est ok. [21.05.2020] [17:00:47] [WARNING] [SCENE6545]: démarrage Je viens de capter que j'utilisais un QA perso pour envoyer les notifications. Et visiblement les scènes sont lancées AVANT l'init des QA, donc forcément, ça passait pas. J'ai fait un push avec fibaro.alert() et ça a marché. Pour les traces que je ne voyais pas dans le debug, je les mettaient après l'appel du QA donc ça bloquais j'imagine... enfin j'extrapole là... enfin ça voudrait dire qu'il ne faut pas faire d'appels aux QA dans une scène en autostart ! ça risque de ne pas marcher...
jjacques68 Posté(e) le 21 mai 2020 Auteur Signaler Posté(e) le 21 mai 2020 c'est pas top en effet... suis d'accord ben d'après le debug ça se joue à quelques milli secondes... si vraiment il le fallait, un setTimeout et puis c'est réglé...
Messages recommandés