Aller au contenu

Debug Plugin Developer


Guybrush

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

 

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 

Lien vers le commentaire
Partager sur d’autres sites

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.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

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.....

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...