Suite à la migration de jeedom vers un autre controlleur et bullseye via un backup/restore, le plugin Pushbullet ne fonctionne plus. Le daemon ne démarre plus.
J’ai essayé d’appliquer la sollution décrite dans le poste:
Malheureusement cela ne fonctionne plus du fait que python 2.x n’est plus disponible sur bullseye, il y a seulement la version python3.9. Et même en utilisant le websocket de 3.9, ça ne donne rien.
Est-ce que quelqu’un a déjà tenté l’expérience avec succès?
Hello,
tous les plugins qui utilise du python 2.x seront non compatible pour Debian 11 et au delà, il faut que le développeur passe le plugin en python 3.x
Bon aujourd’hui j’ai tenté la méthode « brute force ». J’ai utilisé le tool 2to3 pour convertir tous les scripts python en version 3. J’ai ensuite constaté qu’il y avait encore des problèmes avec la création du fichier pid. Il reste des commandes qui étaient « built-in » dans la version 2 de python et qui n’étaient pas converties, aini le fichier pid pour le démarrage du daemon n’était pas écrit. Il s’agissait du keyword file qui n’existe plus en version 3:
Mais j’ai toujours un problème, le script écrit « pid » dans le fichier au lieu du process id. Pourtant la synthaxe me parait correcte ( pid = str(os.getpid()) ).
Comme je ne suis pas spécialiste de python, je ne sais pas si quelqu’un voit le bug?
DEBUG:pushbullet:Check PID file
DEBUG:pushbullet:PID file ‹ /var/www/html/plugins/pushbullet/ressources/pushbullet_daemon/…/…/…/…/tmp/pushbullet.« some_key ».pid ›
DEBUG:pushbullet:Write PID file
DEBUG:pushbullet:Start daemon
DEBUG:pushbullet:Writing PID 27271 to /var/www/html/plugins/pushbullet/ressources/pushbullet_daemon/…/…/…/…/tmp/pushbullet.« some_key ».pid
DEBUG:pushbullet.Listener:Listener open
DEBUG:pushbullet.Listener:Message received:{« type »:« nop »}
ERROR:root:‹ NoneType › object is not callable
Traceback (most recent call last):
File « /var/www/html/plugins/pushbullet/ressources/pushbullet_daemon/pushbullet/listener.py », line 73, in on_message
self.on_ping(json_message)
TypeError: ‹ NoneType › object is not callable
DEBUG:pushbullet.Listener:Message received:{« type »:« nop »}
ERROR:root:‹ NoneType › object is not callable
Traceback (most recent call last):
File « /var/www/html/plugins/pushbullet/ressources/pushbullet_daemon/pushbullet/listener.py », line 73, in on_message
self.on_ping(json_message)
TypeError: ‹ NoneType › object is not callable
Est-ce que quelqu’un sait si le contenu du répertoire /var/www/html/plugins/pushbullet/ressources/pushbullet_daemon/pushbullet est spécifique à jeedom, ou cela fait partie des sources de pushbullet?
Bonjour à tous,
Je viens de passer sur bullseye et évidemment j’ai le même problème…
Quelqu’un a-t-il une solution en restant sur pushbullet que j’utilise pour d’autres choses ?
Merci d’avance.
fabrice
Désolé, je n’ai pas avancé sur le sujet. J’ai aussi passé à Pushover. Avec Pushover, il me manque l’interraction qui était possible avec Pushbullet.
Malheureusement, je n’ai pas beaucoup de ressouces en ce moment. J’ai aussi essayer de contacter le développeur, mais il ne semble plus du tout atteignable.
Bonjour,
J’ai a mon tour migrer en debian11 et réussi a lancer le daemon du plugin.
installation du paquet python2.7 : apt install python2.7
modification de la ligne 744 $cmd = 'nice -n 19 /usr/bin/python ' . $daemon_path . '/pushbullet.py '.$this->getConfiguration('token');
par $cmd = 'nice -n 19 /usr/bin/python2.7 ' . $daemon_path . '/pushbullet.py '.$this->getConfiguration('token');
modification de la ligne 778 $result = exec('cat /proc/' . $pid . '/cmdline | grep "pushbullet" | wc -l', $output, $retcode);
par $result = exec('cat /proc/' . $pid . '/cmdline | grep -a "pushbullet" | wc -l', $output, $retcode);
en cas de problème supression des fichier /tmp/pushbullet*
En debian 10 la commande python est un lien vers python2.7 et il existe aussi une commande python3 qui est un lien vers python3.7
En debian 11 il n’y a de base que la commande python3 ( lien vers python 3.9 )
La modif de la ligne 744 fait appel explicite a python2.7
La modif de la ligne 778: rajout de l’option -a à la commande grep sinon grep répond grep: cmdline: binary file matches
Avec ces modifs de mon coté le daemon du plugin pushbullet ce lance
l’envoi de push par jeedom fonctionne
la réception par jeedom de push depuis un mobile ou depuis la page https://www.pushbullet.com fonctionne et lance bien les interractions jeedom
Je ne crois pas qu’il y ai besoin que le daemon tourne pour l’envoi de push par jeedom,
c’est directement le code php du module qui fait des curl.
Par contre ATTENTION lors de mes tests, la sauvegarde d’un equipement pushbullet dans jeedom ne fonction pas correctement !!
en mettant deb11push comme Nom du device Pushbullet ( pour ne pas mélanger avec la prod ) et en sauvegardant j’ai vu apparaître plus de 3 commandes deb11push dans jeedom et pareil dans la listes des équipement sur le site de pushbullet. Et dans les logs du module on voit bien des appels successifs générant de multiples devices deb11push