jared Posté(e) le 26 janvier 2017 Signaler Posté(e) le 26 janvier 2017 Bonjour, voici mon soucis : Je crée un virtual device avec des boutons, et je souhaite les appeler dans mes scenes avec fibaro:call(id, "pressButton", "n") ou n est la position du bouton. Problème : parfois je rajoute d'autres boutons dans le VD, ce qui change la position... D'où ma question : existe-t-il un moyen d'appeler un bouton uniquement avec le nom du label ? Au pire existe-t-il une fonction qui permet d'avoir le nom du label d'un bouton ? Si c'est le cas on peut imaginer une petite fonction qui prend en entrée le label, parcours tous les label du VD et retourne la bonne position... Merci
Berale64 Posté(e) le 26 janvier 2017 Signaler Posté(e) le 26 janvier 2017 J'avais écrit un petit bout de code pour faire ça: https://www.domotique-fibaro.fr/topic/9092-numã©rotation-des-boutons/?do=findComment&comment=140849
jared Posté(e) le 26 janvier 2017 Auteur Signaler Posté(e) le 26 janvier 2017 Ah oui j'avais pas pensé à faire appel à l'API du device c'est parfait ! Bon ca oblige à mettre la fonction dans toutes les scènes... jusqu'à ce que fibaro se décide à nous autoriser l'inclusion de fichier lua pour avoir des fonctions globales... Un petit bout de code légèrement plus simple pour faire un appel : function callBtn(id, label) local devicesJSon = api.get("/devices/"..id) for k, v in pairs(devicesJSon.properties.rows) do for j = 1,#v.elements do if (v.elements[j].name == label) then fibaro:call(id, "pressButton", v.elements[j].id) return end end end end Merci Berale24 ! 1
Berale64 Posté(e) le 26 janvier 2017 Signaler Posté(e) le 26 janvier 2017 Si tu as des boutons en ligne, ton code ne marche pas.
jared Posté(e) le 26 janvier 2017 Auteur Signaler Posté(e) le 26 janvier 2017 je comprends pas ce que tu veux dire. Si tu parle de bouton simple sur une ligne complète je viens de tester ca marche très bien.
Messages recommandés