Bonsoir et encore bravo @kimagure pour ce plugin qui nous sert trop peu souvent!
Je viens de ressortir ma guirlande (en fait j’en ai acheté une autre mais ne le dite à personne) et je me souviens que l’année passée je gérais celle-ci via animation et que je n’uiilisais pas les playlist (qui semble il ont été évoquées à plusieurs réprises ici)
Lorsque j’ai donc créé mon nouvel équipement j’ai voulu simplifier les choses en pensant utiliser une playlist… Mais voilà que je m’apperçois que la gestion des playlist n’est pas présente dans le plugin.
Qu’en est il de l’évolution de ce point ?? (rien de rédibitoire, je viens juste aux nouvelles )
Il faut utiliser la version beta pour l’instant. Je ne vais pas tarder à publier en version stable.
K.
Salut,
Très bon plugin, j’ai pu ajouter la guirlande sans soucis et je peux l’allumer et l’éteindre via jeedom.
par contre j’ai un soucis sur les dépendances, elles ne s’installent pas.
j’ai ça en log si tu as une idée
-
Install kTwinkly plugin dependencies *
Progress file: /tmp/jeedom/kTwinkly/dependencies
Wed Dec 1 22:42:59 CET 2021
- Update package list
Hit:1 Index of /debian-security bullseye-security InRelease
Hit:2 Index of /debian bullseye InRelease
Hit:3 Index of /debian bullseye-updates InRelease
Reading package lists…
*
- Remove apt package for mitmproxy
Reading package lists…
Building dependency tree…
Reading state information…
Package ‹ mitmproxy › is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 84 not upgraded. - Looking for Python 3.7
** Python 3.7 not installed - Looking for Python 3.7 package in Debian repositories
** Python 3.7 found. Installing with apt-get
Reading package lists…
Building dependency tree…
Reading state information…
Package python3.7 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‹ python3.7 › has no installation candidate
/var/www/html/plugins/kTwinkly/core/class/…/…/resources/install_apt.sh: line 74: python3.7: command not found
*
- Install mitmproxy module and dependencies on Python 3.7
Reading package lists…
Building dependency tree…
Reading state information…
libffi-dev is already the newest version (3.3-6).
0 upgraded, 0 newly installed, 0 to remove and 84 not upgraded.
/var/www/html/plugins/kTwinkly/core/class/…/…/resources/install_apt.sh: line 80: python3.7: command not found
Wed Dec 1 22:43:03 CET 2021
-
End dependencies Installation *
C’est effectivement un cauchemar
Est-ce avec la version stable ou bêta?
Peux-tu preciser ta version de jeedom et d’OS et m’envoyer la log d’installation complete en mp ?
K.
Bonjour,
En bullseye il y a beaucoup de chances que les dépendances ne passent pas…
Python 3.9
La dépendance avec Python 3.x (x>=7) est nécessaire pour l’utilisation du module mitmproxy (pour la capture des animations).
La version initiale du plugin était prévue pour fonctionner avec Debian Stretch, qui ne contient que Python 3.5 dans son repo, et dans ce cas une version 3.7 était compilée à partir des sources et installée à coté de la version de l’OS.
Les versions supérieures de Debian/Raspbian ont toutes une version compatible (3.5 ou 3.9).
Dans ce cas, le script installait la version 3.7 du repo, mais effectivement avec Bullseye, on est sur du 3.9.
@VibeHD, tes logs semblent indiquer sur tu es sur la version stable (il recherche Python 3.7 et pas 3.7 + ). Il y a eu un gros correctif du script des dépendances sur la version beta, peux-tu passer sur cette branche?
En Debian Buster (10), le script actuel devrait fonctionner.
Comme tu es en Debian Bullseye (11), il faut une correction dans le script, mais je ne pourrai pas la publier avant ce soir . Le correctif à été poussé sur la version beta. Je laisse quand meme la manip manuelle pour référence:
Il faut modifier 2 lignes dans resources/install_apt.sh
de la version beta:
- sur la ligne 39, remplacer
sudo apt-cache show python3.7
parsudo apt-cache show python3 | grep 'Version: 3\.[7-9]'
- sur la ligne 42, remplacer
sudo apt-get install -y python3.7 python3-setuptools
parsudo apt-get install -y python3 python3-setuptools
Je n’ai jamais testé sur cette version (je ne sais même pas si Jeedom la supporte officiellement )
Je vais probablement mettre à jour la stable ce soir à partir de la dernière beta.
Il reste encore quelques petites choses à faire pour la gestion du Twinkly Music, mais les corrections apportées sont suffisamment importantes pour justifier un passage en stable.
K.
@VibeHD : sous Bullseye il est possible que tu rencontres des problèmes de dépendances avec d’autres plugins. A toi de voir.
Pour le moment le support est fait uniquement sous Buster.
@kimagure : super support de ton très bon plugin. Ces guirlandes me font de l’œil depuis un moment. Peut-être au prochain Noël !
Ayant ressorti ma guirlande hier et relancé en fin de journée les scénario dédié a celle ci je rencontre des erreurs durant ceux ci…
Pourtant je ne connaissait pas ce genre d’erreur l’année dernière…
Les erreurs sont les suivantes :
Impossible d’exécuter la commande sur le contrôleur Twinkly : add_movie : not enough memory left on controler (size = 900 / remaining = 417)
Pourtant si l’on se fie à cette infirmation on est à la moitié ce qui pourrait paraitre suffiant, en faisant un check sur l’app elle m’indique 14% (certes plus leger mais tout de même…
Impossible d’exécuter la commande sur le contrôleur Twinkly : add_movie step 1 error [POST : movies/new] data=Array ( [code] => 1106 )
En vérifianr via l’app la guirlande apparait comme éteinte, en effet lorsque l’on envoi l’ordre « on » celle ci reprend l’animation (mais sur la base de sa mémoire et non celle qui était en cours)
J’avoue ne pas comprendre, je vais essayer d’utiliser moins d’animations pour mes scénarios dans un premier temps concernant la mémoire, toutefois ceux ci n’ont pas changé et tournaient convenablement l’année passée.
Concernant les problème de guirlande qui « s’éteind » j’avoue là ne pas comprendre, j’ai essayé de diminué la fréquence de rafraichisseemnt automatique sans avoir de résultat…
PS : question peut être bête mais comment vide t’on la mémoire du controleur de la guirlande?? (en installant la béta dans les paramètre de playlist, je confirme que coté mémoire je suis repassé à 100%, a voir si cela résoud un de mes problèmes)
J’ai complétement désactivé le rafraichissement auto de mon coté, beaucoup de moins de problème liés à l’authent sur l’API comme ça. C’est vraiment dommage qu’ils n’aient pas prévu qu’on pouvait avoir 2 périphériques de commande en même temps. Bon d’un autre côté, c’est une API privée…
Si tu utilises uniquement Jeedom pour le contrôle ca ne change rien.
Si tu utilises simultanément l’appli mobile et jeedom, l’état courant peut etre désynchronisé, mais il suffit de faire un refresh.
Lors du chargement d’une animation, la guirlande s’éteint, la mémoire est mise à jour et la guirlande est allumée, donc en cas d’erreur comme tu as lors de l’upload de la nouvelle animation, c’est « normal » que la guirlande reste allumée. Ce qui ne l’est pas, c’est que le chargement ne se passe pas bien. Tu confirmes que l’appli Twinkly n’est pas lancée sur un smartphone en parallèle ?
Pour vider la mémoire, il faut utiliser le bouton disponible sur l’écran de gestion des playlists.
La version stable actuelle est vraiment trop ancienne et beaucoup de bugs on été corrigés en beta.
Je vais passer ces modifications en stable d’ici une heure.
K.
Comme prévu, passage en stable des dernières modifications (depuis presque un an !).
Référez-vous au changelog pour l’historique des modifications.
IMPORTANT : Il est nécessaire de supprimer et recréer les équipements pour recréer les commandes et les identifiants internes. Ce n’est pas nécessaire si vous venez de la dernière beta.
La suppression des équipements efface également les animations liées à la guirlande stockées dans le plugin. Si vous avez capturé des animations, pensez à les télécharger sur votre ordinateur pour pouvoir les recharger en suite après mise à jour des équipements.
Bon n’ai réinstallé tout cela proprement,
je suis donc passé syr la dernière version stable, recréé l’appareil, refait l’enregistrement des animations (je sais pas pourquoinjrai bien galéré pour cela, lorsque je configurais le proxy sur le téléphone je perdais la connexion internet et il m’était impossible de connecter à la guirlande…)
retouché comme il se devait les scénario et tout roule depuis…
Au passage merci d’avoir poussé la précédente béta en stable cela permettant de gérer simpleme t la mémoire du controleur!!
Après test plus approfondi en cette après midi, j’ai malgré tout parfois l’erreur suivante qui viens assomobrir l’utilisation du pkugin.
Voici l’erreur :
Impossible d’exécuter la commande sur le contrôleur Twinkly : add_movie step 1 error [POST : movies/new] data=Array ( [code] => 1106 )
Suite a cela la guirlande s’éteint et généralement la communication ne se reprend pas même si d’autres animations sont uploadées par la suite dans le scénario.
Si cela persevère je oasserais peu être par un controle d’état (mais ceka alourdira considérablement le scénario -controle de l’état on/off, si off, alors on et upload, sinon upload anipation)
PS : j’ai aussi un soucis concernant la sauvegarde des animations, lorsque je vais dans la page de gestion d’animation, que je coche l’une de celle ci afin de la sauvegarder, lorsque je clique sur sauvegarder jeedom me met sa « petie roue de loading » mais aucune option de sauvegarde de quelconque type de fichier. Je reviens juste sur la page de gestion des animations sans reussir à sauvegarder une ou plusieurs animations…
PSS : Dans un premier temps je passe par des commandes pas très propres, mais le résultat semble être celui attendu bien que l’erreur soit toujours présente…
upload de l’animation (erreur)
pause (essai avec 10 secondes)
commande on (qui étrangement du coup la,ce l’animation précedemment uploadée mais cela laisse du coup forcement un temps de pause prédéfini entre chaque animation)
Cela ne marche pas malheureusement à chaque animation comme si il n’avait pas eu le temps suffisant pour chaque upload…(mais mettre une pause supérieur semble d’autant plus dommageables…)
bon après d’autres test ce n’est clairement pas une question de temps, certaines animations ne se chargent pas ou alors la donction on n’appekke pas la dernière animation chargée…
Voici mon debug :
[2021-12-04 20:46:58][DEBUG] Send new movie metadata to controller
[2021-12-04 20:46:58][DEBUG] ## CALL TWINKLY API [POST : movies/new] - auth=1 verifyauth=1
[2021-12-04 20:46:58][DEBUG] POST data : {"code":0,"descriptor_type":"rgb_raw","fps":15,"frames_number":75,"id":0,"leds_per_frame":400,"name":"Arc-en-ciel","unique_id":"9fc3a3b6-8107-48e7-a910-0b44aef64c9e"}
[2021-12-04 20:46:58][DEBUG] # Check validity of current token
[2021-12-04 20:46:58][DEBUG] Token is still valid. No need to re-authenticate
[2021-12-04 20:46:58][DEBUG] API RESULT : {"code":1106}
[2021-12-04 20:46:58][DEBUG]
[2021-12-04 20:46:58][ERROR] add_movie step 1 (movies/new) error : {"code":1106}
[2021-12-04 20:46:58][DEBUG]
[2021-12-04 20:47:08][DEBUG] TwinklyString::new(4c:11:ae:fc:02:99, 192.168.1.147)
[2021-12-04 20:47:08][DEBUG] Reading auth data from /tmp/jeedom/kTwinkly/twinkly_4c11aefc0299_auth.txt : {"auth_token":"0vKpUDzaywk=","expiry":1638652892}
[2021-12-04 20:47:08][DEBUG]
[2021-12-04 20:47:08][DEBUG] TwinklyString::set_mode(playlist)
[2021-12-04 20:47:08][DEBUG] ## CALL TWINKLY API [POST : led/mode] - auth=1 verifyauth=1
[2021-12-04 20:47:08][DEBUG] POST data : {"mode":"playlist"}
[2021-12-04 20:47:08][DEBUG] # Check validity of current token
[2021-12-04 20:47:08][DEBUG] Token is still valid. No need to re-authenticate
[2021-12-04 20:47:08][DEBUG] API RESULT : {"code":1105}
[2021-12-04 20:47:08][DEBUG]
[2021-12-04 20:47:08][DEBUG] set_mode error : {"code":1105}
[2021-12-04 20:47:08][DEBUG] TwinklyString::set_mode(movie)
[2021-12-04 20:47:08][DEBUG] ## CALL TWINKLY API [POST : led/mode] - auth=1 verifyauth=1
[2021-12-04 20:47:08][DEBUG] POST data : {"mode":"movie"}
[2021-12-04 20:47:08][DEBUG] # Check validity of current token
[2021-12-04 20:47:08][DEBUG] Token is still valid. No need to re-authenticate
[2021-12-04 20:47:08][DEBUG] API RESULT : {"code":1000}
[2021-12-04 20:47:08][DEBUG]
[2021-12-04 20:47:08][DEBUG] TwinklyString::get_mode
[2021-12-04 20:47:08][DEBUG] ## CALL TWINKLY API [GET : led/mode] - auth=1
[2021-12-04 20:47:08][DEBUG] # Check validity of current token
[2021-12-04 20:47:08][DEBUG] Token is still valid. No need to re-authenticate
[2021-12-04 20:47:08][DEBUG] API RESULT : {"value":100,"mode":"enabled","code":1000}
[2021-12-04 20:47:08][DEBUG]
Tu confirmes que tu n’as aucune autre application qui tourne en parallèle (appli mobile, autre installation jeedom avec le plugin en autorefresh) ?
Je peux forcer une réauthentification avant chaque commande, mais pas au milieu de la séquence d’upload d’une animation. Je vais voir si je peux ajouter réauthentification juste avant le démarrage de l’upload.
Je ne suis pas sur de comprendre ce que tu essayes de faire.
Pour télécharger une animation qui a été capturée sur le disque du PC local pour pouvoir la réutiliser plus tard, il faut cliquer sur l’icone avec la petite flèche. Ca doit provoquer le téléchargement d’un zip contenant l’animation et les métadonnées. C’est ce zip qu’on peut ensuite utiliser avec le bouton « Ajouter… » pour recharger une animation sauvegardée vers un équipement.
Le gros bouton « Sauvegarder » est pour sauvegarder la liste courante des animations, en prenant en compte les changements effectuées sur les titres et l’ordre des animations dans la liste (qu’on peut changer par glisser/déplacer).
Les cases à cocher servent pour la suppression : le bouton Supprimer va supprimer (!) les animations sélectionnées.
Tout est documenté ici. Si la doc n’est pas claire, dis-le moi, je verrai comment améliorer.
K.
Apeès de nouveaux tests ce matin même er pour répondre à tes duifférentes interrogations.
Je n’ai qu’un seul jeedom en utilisation, lors de mes tests ce matin je n’ai pas même lancé l’application sur le téléphone qui avait été redémarré quelques temps avant.
A chaque upload d’une animation sur la guirlande j’ai encire et toujours la même erreur, ayant piur résultat une guirlande qui s’éteind (normal duranr l’upload de l’animation) mais qui ne se rallume pas après plusieurs secondes avec l’animation uploadée (comportement qui devrait être celui attendu)
Voivi un nouvel extrait du log, l’erreur reste la même que précedement;…
[2021-12-05 09:46:44][DEBUG] : Commande 'on' GEN2 -> changement mode : playlist ip=192.168.1.147 mac=4c:11:ae:fc:02:99
[2021-12-05 09:46:58][DEBUG] : Commande 'movie' avec value=movie_373_20211203195443_Feuxdartifice.zip ip=192.168.1.147 mac=4c:11:ae:fc:02:99
[2021-12-05 09:46:58][DEBUG] : Envoi de l'animation GEN2 fichier=/tmp/jeedom/kTwinkly/movie_373_20211203195443_Feuxdartifice.zip.bin
[2021-12-05 09:46:59][ERROR] : Erreur exécution de la commande [Aucun][Twinkly][Animation] : Impossible d'exécuter la commande sur le contrôleur Twinkly : add_movie step 1 error [POST : movies/new] data=Array ( [code] => 1109 )
[2021-12-05 09:47:13][DEBUG] : Commande 'on' GEN2 -> changement mode : playlist ip=192.168.1.147 mac=4c:11:ae:fc:02:99
[2021-12-05 09:47:23][DEBUG] : Commande 'movie' avec value=movie_373_20211203195444_Peachy.zip ip=192.168.1.147 mac=4c:11:ae:fc:02:99
[2021-12-05 09:47:23][DEBUG] : Envoi de l'animation GEN2 fichier=/tmp/jeedom/kTwinkly/movie_373_20211203195444_Peachy.zip.bin
[2021-12-05 09:47:23][ERROR] : Erreur exécution de la commande [Aucun][Twinkly][Animation] : Impossible d'exécuter la commande sur le contrôleur Twinkly : add_movie step 1 error [POST : movies/new] data=Array ( [code] => 1109 )
[2021-12-05 09:47:34][DEBUG] : Commande 'on' GEN2 -> changement mode : playlist ip=192.168.1.147 mac=4c:11:ae:fc:02:99
Je ne comprends pas la log, il manque des étapes. Je ne suis pas exactement sûr de comprendre à quel endroit ça plante.
Peux-tu s’il te plait:
- supprimer les fichiers de log du plugin (Analyse > Logs, puis supprimer tous les fichiers kTwinkly_*)
- activer le mode debug sur le plugin (Gestion des Plugins > kTwinkly, activer debug + save)
- activer le mode « debug avancé » (Gestion des Plugins > kTwinkly, cocher « logs de debuggage additionnelles » et sauvegarder la configuration)
- effectuer les commandes suivantes sur ta guirlande : on, off, chargement d’une animation
- m’envoyer TOUS les fichiers de log kTwinkly_* COMPLETS en message privé (sous forme de fichiers, pas dans corps du message). M’envoyer aussi le fichier zip de l’animation « feux d’artifices » que tu essayes d’envoyer à ta guirlande.
- désactiver le mode « debug avancé » et sauvegarder
Merci
K.
pour info, j’avais la même erreur. mais en cherchant un peu et en cochant la fonction « toujours vider la mémoire lors du chargement de la playlist » l’erreur a « quasi » disparu.
manifestement l’ecriture dans la mémoire quand elle est déjà un peu rempli pose pb… mais c’est juste un constat.
par contre du coup, si je veux la modifier, il faut la refaire à zéro… je suppose que c’est parce que je demande à vider la mémoire lors du chargement.
mais au moins le chargement d’animation marche, et le démarrage de playlist aussi. moins d’erreur dans les logs.
je dis « quasi » car voici qques petits bugs observés :
- je peux charger et allumer une animation seule alors que etat affiché = OFF et mode courant = OFF (peut être lié au taux de rafraichissement
- si je change trop rapidemment d’animation , j’ai l’erreur code 1106
- aléatoirement sans que je puisse l’expliquer, j’ai l’erreur code 1106 qd même
- le bouton ON démarre la playlist par défaut même si on jouait une animation avant (mais je crois que c’est le fonctionnement normal. pas sur que ce soit un bug)
pas de pb quand je lance la playlist après une animation. c’est plutot dans l’autre sens que ça bug
Au passage j’en profite pour féliciter le développeur !! je n’ai eu aucn pb à configurer la guirlande, à importer les animations, le ON/OFF marche, et la création et le démarrage des playlists aussi.
reste des petits bugs sur le passage entre le mode animation et le mode playlist, pas encore très clair pour moi
et aussi je pose la question de l’ajout d’un Etat binaire qui puisse être utilisable par d’autres plugin, car actuellement c’est une info string
Merci pour ton retour.
Je vais regarder ça en détail.
Le souci avec l’API Twinkly, c’est que c’est une API privée non documentée, donc la signification des différents codes retours n’est pas claire…
Je vais refaire des tests dans la situation dont tu parles.
Pour info, quel type de guirlande utilises tu (info disponible dans l’écran de l’équipement, sous l’image) ?
K.
Merci !
Twinkly Strings 250 / TWS250STP
firmware 2.8.3
gen 2
ah oui j’ai remarqué un truc , des fois j’ai mode courant 0 (je crois depuis la maj)
et effectivement j’ai activé le log API, j’ai essayé de comprendre, tout semble identique sauf que parfois t’as le code 1106, au lieu d’avoir le code 1000
et ce code « 1106 » ne semble pas exister dans RESTAPI Twinkly que j’ai trouvé ici (mais bon après ça dépasse complètement mes compétences :-)) mais je suppose que tu connais cette doc :
https://xled-docs.readthedocs.io/en/latest/rest_api.html#application-responses
Oui, c’est le module python qui m’a inspiré pour développer le code php qui me servait à piloter mes guirlandes via le plugin script avant de packager sous forme d’un plugin.
J’avais intégré les API pour les guirlandes v2 avant qu’ils les ajoutent également, donc la plupart des informations proviennent des captures de l’API locale.
Je vais refaire quelques captures avec l’app mobile pour vérifier si je ne vois pas des codes 1106 même sans erreur.
K.
J’avais effectivement oublié de rafraichir l’état on/off lors du chargement d’une animation. Ce sera corrigé dans la prochaine version.
Oui, lorsqu’on fait un « on », sur un GEN2, le plug-in essaye de démarrer la playlist courante. Si aucune playlist n’est chargée, elle passe en mode « movie » (=animation). Il faudrait sauvegarder l’état de la guirlande lors d’un OFF, mais si une commande est passée par l’appli mobile, on perdra de toutes façons la synchro. Autre solution, avoir une option pour choisir si un veut être par défaut en mode « movie » ou « playlist » lors d’un ON.
Pour les codes 1106, il faudrait que je réussisse à reproduire pour voir si on peut les ignorer ou pas…
K.