Guybrush Posté(e) le 17 septembre 2015 Signaler Posté(e) le 17 septembre 2015 Bonjour, Je suis en train de développer un plugin pour la HC2 et je me demande comment peut-on faire pour debuger les script Lua. En effet, en cas d'erreur (syntaxe, appel de fonction...) le plugin ne tourne pas mais aucune information n'est disponible. Auriez-vous une astuce pour debuger ces scripts ? Merci d'avance
Nico Posté(e) le 17 septembre 2015 Signaler Posté(e) le 17 septembre 2015 Dsl, aucune idée. Il faudrait qu'un des spécialistes comme Krikri passe ici. Il servira àquoi ton plugin ?
Gazous Posté(e) le 17 septembre 2015 Signaler Posté(e) le 17 septembre 2015 Salut, tu t'es basé sur quoi pour faire ce développement ? Quelle documentation ou exemples ?
Guybrush Posté(e) le 17 septembre 2015 Auteur Signaler Posté(e) le 17 septembre 2015 Je suis pour le moment en train de modifier le Sample 2 fourni sur le site de Fibaro (il faut bien commencer par quelque chose...) Le fichier Sample 2 peut être trouvé à la fin de la page ci dessous. https://developer.fibaro.com/docs/plugin-creating Dans un premier temps je voudrais faire des modifications pour prendre en main l'api Fibaro (ajout de bouton, ajout de paramètre...) Lorsque je clique sur l'un des boutons proposé (après avoir ajouté un nouveau bouton), rien ne se passe (or cela fonctionne bien avec le fichier fournit) Le fichier joint est celui de Fibaro Sample2.zip
Gazous Posté(e) le 18 septembre 2015 Signaler Posté(e) le 18 septembre 2015 Ouais, il manque quand même des outils je trouves... FIbaro devrait être en mesure de fournir une environnement pour pouvoir développer et débogguer les Plugin.
jojo Posté(e) le 18 septembre 2015 Signaler Posté(e) le 18 septembre 2015 Gazous, Comme tu es en campagne électorale, tu seras "obligé" de me répondre Quelle est la différence entre un plugin et un virdual device ou une scène ?
jojo Posté(e) le 21 septembre 2015 Signaler Posté(e) le 21 septembre 2015 oui ... j'imagine bien qu'un plugin c'est un bout de code pour faire faire qqch à la box, mais je ne "sens" pas la différence avec un VD. ok, ce serait la même chose qu'un VD, sauf que le layout est plus personnalisable ? Si c'est ça, il faudrait développer le code dans un VD classique, et quand il est validé (car debug possible) le mettre dans le plugin ? Sorry de mon ignorance
Gazous Posté(e) le 21 septembre 2015 Signaler Posté(e) le 21 septembre 2015 Ha ok, je pensais que tu te moquais de moi Un VD c'est un Device dans lequel tu vas être assez limité dans les possibilité. Tu peux ajouter des boutons avec du code, des icônes personnalisées et puis si tu as un code de rafraichissement récurrent tu dois utiliser la MainLoop qui sera exécutée toutes les 3 secondes. Cela permet de faire beaucoup de choses mais cela reste très limité et on est souvent obligé de faire des trucs pas très propres pour arriver au résultat souhaité. Un Plugin, c'est comme si Fibaro te donnais la possibilité de développer toi-même ce que fais ton Virtual Device avec la liberté de personnaliser tes boutons mais aussi la vue réduite de ton Module pour, par exemple placer plusieurs boutons, des symboles particuliers, etc... choses que tu ne peux pas faire avec un simple VD. Jettes un oeil par exemple aux Plugin actuellement disponibles en téléchargement sur la HC2 comme le Plugin Samsung TV. Tu verras que ce Plugin est capable de faire une recherche pour détecter ta TV et simplifier la configuration ou alors que les boutons de la télécommande sont personnalisés ce qui fait un effet plus sympa. Tout ce ci, tu ne peux pas l faire avec un VD. Si on imagine un portage de ma TV Commande LiveBox Play, je pourrais faire un télécommande beaucoup plus sympa esthétiquement et faire tourner en tâche de fond des tâches nécessaires au bon fonctionnement sans pour autant bidouiller en créant des boutons pour lancer des actions etc comme j'ai du le faire dans le VD. Je pourrais aussi avoir un mode d'auto-configuraiton par détection de la LiveBox sur le réseau. 2
jojo Posté(e) le 21 septembre 2015 Signaler Posté(e) le 21 septembre 2015 merci pour ces explications détaillées et la comparaison avec le VD (que je commence à+/- maîtriser) Je comprends mieux maintenant l'impatience de certains pour l'ouverture de la box aux plugins persos, qui viendrait je suppose avec un outil de développement spécifique
Gazous Posté(e) le 21 septembre 2015 Signaler Posté(e) le 21 septembre 2015 Oui c'est sûr que ça sera une belle avancée. Pour l'outil/environnement de développement ça risque de trainer àmon avis...
Guybrush Posté(e) le 21 septembre 2015 Auteur Signaler Posté(e) le 21 septembre 2015 Pour l'outil/environnement de développement ça risque de trainer à mon avis... Oui c'est clair... mais ce sera quand même super d'avoir cet outils pour debuger les plugins... Si quelqu'un a une méthode pour debuger, je suis preneur
Lazer Posté(e) le 21 septembre 2015 Signaler Posté(e) le 21 septembre 2015 J'ajoute que les plugins, contrairement aux VD, sont intégrés nativement dans l'interface, comme un module Z-Wave. Donc les plugins peuvent : - avoir un type (multilevel sensor), remonter une valeur (température, consommation, etc), => voir le plugin Virtual Sensor de Krikroff - agir comme un actionneur (relai, etc) => voir le plugin Virtual Switch de Krikri - avoir leur propre API => Voir le plugin Qubino fil pilote de ...... ah bah krikri, facile Concernant le débuggage, il n'existe rien, mais j'ai souvenir des dires de Krikri (décidément) qui disait que c'était extrêmement compliqué à débugger, et qu'il fallait utiliser des ruses de contournement.... désolé je n'en sais pas plus.... j'imagine qu'il loguait dans des variables globales, ou qu'il envoyait ses logs sur un serveur web externe. Bref de la bidouille. 1
jojo Posté(e) le 22 septembre 2015 Signaler Posté(e) le 22 septembre 2015 merci pour ces explications. Ca m'a l'air bien compliqué tout ça, je vais gentillement rester avec les VD pour l'instant
Gazous Posté(e) le 22 septembre 2015 Signaler Posté(e) le 22 septembre 2015 Un autre intérêt que je vois avec les Plugin, c'est certainement la possibilité de pouvoir logger dans le panneau d'événements. Cela permettra de mettre un capteur ou un éclairage raccordé àun IPX800 au même niveau que tout autre module ZWave standard.
Guybrush Posté(e) le 8 octobre 2015 Auteur Signaler Posté(e) le 8 octobre 2015 Pour information, j'ai mis en place un système de logging externe via serveur WEB / PHP et requête HTTP dans le plugin. Petit bémols : - en cas d'erreur dans la structure du plugin, impossible de deboguer (le plugin ne se lance pas). - les logs ne sont pas forcement dans l'ordre des executions ce qui rend le debug encore plus compliqué... Si vous avez d'autres idées.....
Messages recommandés