Broadlink - Dépendances Dead après maj vers Buster - module python3 cryptography

Merci à Loïc en effet, mais merci aussi à dJuL et surtout à toi, akenad, qui a parfaitement analysé et largement contribué à solutionner le problème ! Ce que j’aurais été incapable de faire… Me trouvant moi aussi confronté à ce satané plugin Broadlink qui relançait sans arrêt l’installation de ses dépendances sans jamais arriver à les afficher OK et que j’ai vu que des gars bien plus calés que moi discutaient de la question, je n’ai pas voulu rouvrir un autre sujet et j’ai suivi avec attention votre discussion…
Quelle merveille d’avoir des gens comme vous au sein de cette Communauté Jeedom !
Bibibe :smiley: :smiley: :smiley: :heart_eyes:

1 « J'aime »

Bonjour,

Je me permet de remonter ce sujet.

Je pense avoir un soucie similaire mais pas exactement le meme.
Je viens d’effectuer la dernière mise à jour de Jeedom (Debian GNU/Linux 10 (buster) 64bits (aarch64))
Suite à cela, impossible de lancer le demon du broadlink.

Voici mon Log :

[2021-02-09 10:50:11][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2021-02-09 10:50:13][INFO] : Lancement démon broadlink : sudo /usr/bin/python3 /var/www/html/plugins/broadlink/resources/broadlinkd/broadlinkd.py --loglevel debug --socketport 55013 --sockethost 127.0.0.1 --callback http://127.0.0.1:80/plugins/broadlink/core/php/jeeBroadlink.php --apikey jqER2XUjqdiSdJWycLyVwvfEKY8Qd1qZ --cycle 0.3 --pid /tmp/jeedom/broadlink/deamon.pid
Traceback (most recent call last):
File "/var/www/html/plugins/broadlink/resources/broadlinkd/broadlinkd.py", line 33, in <module>
from broadlink import broadlink,rm2,a1,mp1,sp2,rm4
File "/var/www/html/plugins/broadlink/resources/broadlinkd/broadlink/broadlink.py", line 12, in <module>
from cryptography.hazmat.backends import default_backend
ModuleNotFoundError: No module named 'cryptography'

Je ne suis pas expert dans la domotique, il est compliquer pour moi de me lancer dans Des lignes de code.
Pouvez-vous m’aider?
Merci.

Salut Nico59,

j’ai exactement le même soucis que toi, est ce que tu as trouvé une solution? en utilisant jeexplorer et en commentant les lignes du log j’arrive à avoir tout au vert mais rien ne fonctionne au niveau des commandes…j’ai épluché tous les post mais là je sèche complet !

Au niveau des dépendances ca bloque au niveau de Rust compiler et cryptography …

Je me répond à moi-même, voici la solution pour notre soucis Nico59 :

Salut fleaux,

ça marche!
Merci pour ton aide.

Bonjour,

Même problème d’un jeedom 4.1.19 sur buster (VM sur Synology) avec broadlink

j’ai suivi la procédure indiquée (copier les fichiers broadlink via jeexplorer dans mon Jeedom.
Messages d’erreurs sur les .htaccess et puis, rien ne se passe.
Toujours le même blocage de broadlink.
Toujours la même consigne de procéder à : /bin/bash /var/www/html/plugins/broadlink/core/class/…/…/resources/install_apt.sh /tmp/jeedom/broadlink/dependance
qui ne résoud rien.

Qulequ’un auarit une idée pour décoincer ?
Merci pour votre aide

Bonjour,

la solution de contournement appliquée par fleaux a consisté à récupérer une ancienne version du plugin-broadlink qui utilisait encore python2.
Ce qui au moins depuis le 01/01/2021 ne peut pas être pérenne. A la prochaine mise à jour du plugin le problème apparaitra de nouveau.

Si on utilise la méthode officielle qui consiste à télécharger le plugin broadlink via le Market Jeedom, il y a actuellement un souci.

Dans la Log Debug Broadlink :

ModuleNotFoundError: No module named ‹ cryptography ›

C’est un problème d’installation de la dépendance python3 « cryptography » utilisé par le plugin broadlink.
La version du plugin broadlink du 15/01/2021 (beta et stable) fonctionnait le 15/01/2021, et installait cryptography-3.3.1.

Le script d’installation des dépendances contient la commande :

sudo pip3 install cryptography

Depuis le 9 février c’est cryptography-3.4.x qui est installé (voir ici : cryptography · PyPI)

A partir des images de Jeedom SAS (https://images.jeedom.com) rpi, smart et x86-64 (antérieures au 04/01/2021), pip (l’installateur de modules Python) est initialement en version pip 18.1.

Pour l’installation du module python3 cryptography :

  • dans une VM (architecture x86_64/amd64)
    c’est un fichier de type wheel qui est téléchargé : cryptography-3.4.5-cp36-abi3-manylinux2014_x86_64.whl
    et le module est correctement installé.
    (EDIT : en fait ce n’est plus le cas avec la dernière image Jeedom du 03/02/2021 : jeedom-debian-buster-amd64-4.1.19.iso)

  • sur une Smart ou sur un RPi 3B+ ou 4, en Buster 64 Bits (architecture arm64/aarch64)
    c’est le fichier de type source qui est téléchargé : cryptography-3.4.5.tar.gz
    il y a donc une compilation qui est lancée mais elle n’est pas complète parce que le compilateur Rust est manquant.

Dans la Log Broadlink_update :
l’extrait intéressant est le suivant :

[…]
running build_rust
=============================DEBUG ASSISTANCE=============================
If you are seeing a compilation error please try the following steps to
successfully install cryptography:

  1. Upgrade to the latest pip and try again. This will fix errors for most
    users. See: This page has moved - pip documentation v24.0
  2. Read Installation — Cryptography 43.0.0.dev1 documentation for specific
    instructions for your platform.
  3. Check our frequently asked questions for more information:
    Frequently asked questions — Cryptography 43.0.0.dev1 documentation
  4. Ensure you have a recent Rust toolchain installed:
    Installation — Cryptography 43.0.0.dev1 documentation
  5. If you are experiencing issues with Rust for this release only you may
    set the environment variable CRYPTOGRAPHY_DONT_BUILD_RUST=1.
    =============================DEBUG ASSISTANCE=============================
    error: Can not find Rust compiler
    […]

Cela dit en premier lieu de mettre à jour pip.
Ce qui aura pour effet de télécharger le fichier de type wheel au lieu de télécharger le fichier de type source et la compilation ne sera alors pas nécessaire.
Mais, /!\ ATTENTION, Jeedom n’utilisant pas d’environnement virtuel python,
depuis le 23/01/2021 la mise à jour de pip peut avoir un impact non maitrisé sur les plugins de jeedom qui sont toujours en python2.
Je suggère de bien lire aussi le flash sur python ici : [Présentation] akenad - #22 par akenad

Donc un sujet de méditation pour Jeedom SAS.

Cas de mise en pratique :

après installation de jeedom-debian-buster-amd64-4.1.19.iso

(Les commandes pip, pip2 et pip3 ci-après ne modifient rien. Elles permettent seulement de visualiser les versions avant et après les commandes python et python3 pour la mise à jour de pip)

si on met à jour pip (root ou sudo) :

avant la mise à jour :

# pip --version
pip 18.1 ... (python 2.7)

# pip2 --version
pip 18.1 ... (python 2.7)

# pip3 --version
pip 18.1 ... (python 3.7)

python -m pip install -U pip

# pip --version
pip 20.3.4 ... (python 2.7)
 
# pip2 --version
pip 20.3.4 ... (python 2.7)

# pip3 --version
pip 18.1 ... (python 3.7)

python3 -m pip install -U pip

# pip --version
pip 21.0.1 ... (python 3.7)

# pip2 --version
pip 20.3.4 ... (python 2.7)
 
# pip3 --version
pip 21.0.1 ... (python 3.7)

alors l’installation des dépendances du plugin-broadlink fonctionne (le module python3 cryptography s’installe).
Mais /!\ ATTENTION si les commandes de mises à jour indiquées ci-dessus sont lancées il y a un impact sur les plugins toujours en python2 qui utilisent encore la commande pip (et pas pip2) lors de l’installation des dépendances et la commande python (et pas python2) lors du lancement du démon.

Une alternative à la mise à jour de pip, pour l’instant, pour le cas précis qui nous intéresse ici, et donc un contournement temporaire, est de fixer la version du module cryptography qui s’installait encore au 15/01/2021, à savoir le 3.3.1 :

sudo pip3 install cryptography==3.3.1

akenad :slight_smile:

2 « J'aime »

En fait il ne faudrait ni utiliser pip ni pip2 ni pip3 mais ceci

Ou ça pour python3

selon moi qui évite bien des problèmes avec pip.

Bonjour,

sudo python3 -m pip install cryptography

indique la même erreur , si pip n’est pas mis à jour.

akenad :slight_smile:

1 « J'aime »

Je n’ai pas été clair désolé: oui il faut mettre à jour pip semble-t-il pour cryptography, je te fais confiance sur ce point.

Mais si on fait cela il y a un problème avec le fait d’utiliser pip ensuite qui pointe vers pip3
Donc soit utiliser pip2 ou python -m pip install ou probablement python2 -m pip install pour être sur d’être sur python2

j’ai expliqué en effet dans ce sujet (et dans mon flash concernant python) qu’il va y avoir un problème avec Jeedom pour certains plugins dont le démon est en python2.
concrétement éventuellement :
-dans le script d’installation des dépendances
-dans la commande de lancement du démon
-dans les commandes manuelles lancées par les utilisateurs trouvées sur internet, en espérant résoudre un problème et en l’aggravant.

Par exemple les plugins openzwave et openenocean qui utilisent actuellement la commande « pip » pour installer les modules et la commande « python » pour lancer le démon.

akenad :slight_smile:

Bonsoir akenad,
Je suis sur une smart avec buster et broadlink est actuellement nok,
Tes explications sont trop compliquées pour moi. Je voudrais juste savoir si ce problème sera résolu dans une prochaine maj, je suis patient.

Bonsoir Montalbe,

Concernant le problème d’installation de la dépendance cryptography, une modification a été apportée par Jeedom SAS le 18/02/2021 sur la branche Beta du plugin broadlink : update packages · jeedom/plugin-broadlink@b32c638 · GitHub
EDIT : passé en stable le 06/03/2021.

akenad :slight_smile:

Merci , je vais attendre la version stable.

bonjour,
je viens de réinstaller jeedom sur un orange PI PC+ tout c’est bien passé sauf les dépendances broadlink

je pensais que comme le dit AKENAD le problème avait été résolu mais :


faut-il que je bricole ou est ce que j’ai un autre problème?

Hello

désactive le plug

Connecte toi en ssh a jeedom

installe ceci

sudo apt-get install -y python3-dev build-essential python3-requests python3-setuptools python3-serial python3-pyudev bluetooth libffi-dev libssl-dev libbluetooth-dev libopenjp2-7 libtiff5 libatlas-base-dev rfkill

reboot jeedom
Active le plugin , et relance les dependances

salut
j’ai fait la manip il a mouliné 2 minutes
redémarrage
résultat identique meme message sur le log

Bonsoir,
J’avais eu un problème similaire que j’avais résolu en faisant cette manip :

sudo pip3 install cryptography==2.6.1

Dernièrement une personne a appliqué cela :

No module named ‹ cryptography › - Plugins / Protocole domotique - Communauté Jeedom

Lydie

1 « J'aime »

Merci Lydie ça marche

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.