Hello
J’avais promis une mise à jour aujourd’hui, la voilà.
Bon, techniquement on est déjà « demain »…
Grosse update, je ne garantis pas d’avoir tout testé à fond, je rappelle qu’on est encore sur une branche « unstable »
Il y a encore beaucoup (trop) de logs de debuggage et il faudra refaire une passe de nettoyage du code (factorisation, commentaires, etc.)
Comme je l’avais dit dans mon précédent message, il est possible d’interrompre la mise à jour automatique (état, luminosité, etc.) équipement par équipement en décochant la case dans les paramètres de l’équipement (sous l’IP et la mac address. Ca permet d’utiliser l’application mobile pendant ce temps sans risque de se faire déconnecter (note pour plus tard : prévoir une désactivation du refresh auto pendant la phase de capture)
La fréquence de refresh est également paramétrable dans les paramètres globaux du plugin (c’est donc commun à tous les équipements).
L’image de l’équipement devrait s’afficher en fonction du produit. J’utilise les images et le fichier de mapping issue de l’appli mobile Android officielle, donc ça devrait correspondre.
Gros changement dans la gestion des fichiers d’animation pour pouvoir gérer simultanément les « gen1 » et les « gen2 » : maintenant, une animation est systématiquement un fichier zip contenant le binaire de l’animation elle même, ainsi qu’un fichier json de description.
Lors de l’upload, je génére un nom unique (guid), c’est pas super sexy, donc à voir comment faire évoluer ça. Il est possible de télécharger le zip depuis la liste des animations associées à l’équipement pour la sauvegarder et la réuploader plus tard. Lors de l’upload, il y a quelques tests basiques pour vérifier que le zip correspond au bon type de guirlande (génération et nombre de leds).
La grosse nouveauté, pas encore tout à fait sèche, c’est la possibilité de capturer directement les animations, aussi bien pour les guirlandes gen1 que gen2.
En appuyant sur le gros bouton « Démarrer la capture », on lance un proxy « mitmdump » sur le serveur jeedom (port 14233, fixe pour l’instant).
Il suffit ensuite de configurer ce proxy dans les paramètres wifi du smartphone, de lancer l’appli Twinkly, et de télécharger des animations vers l’équipement en cours.
On clique ensuite sur « Arrêter la capture » et les animations capturées sont remontées dans la liste.
Pour les gen1, il n’y a pas de nom, donc il faut le mettre à la main.
Pour les gen2, le nom de l’animation est dans les métadonnées, donc il est récupéré directement dans la liste.
Attention : j’utilise pour l’instant un mitmdump « tout en un » pour éviter d’avoir à gérer les dépendances. Malheureusement, cet executable n’existe que pour processeur x86 64 bits, donc le process de capture ne marchera que sur cette plateforme. Pour devenir multiplateforme, il va falloir que je passe par les packages python, donc c’est un peu plus impactant…
Evidemment, une fois l’animation chargée, il est possible de l’envoyer vers la guirlande, aussi bien pour les gen1 que les gen2. Pour ces derniers, c’est une toute première version du code qui date de ce soir, mais ça semble marcher sur mon sapin Je ne gère toujours pas les playlists, donc un envoi d’animation effacera la playlist en cours. Il faut d’ailleurs que j’ajoute une nouvelle commande « playlist » en plus de on et off.
J’espère avoir assez avancé sur le debug et le nettoyage de code d’ici la fin du week-end pour passer en beta…
K.