Installation du plugin impossible sur RPI 5 ou Debian 12 et devenir de Odace SFSP

Bonjour,

Comme beaucoup de plugin, il n’est plus possible d’installer ce Plugin sous Debian 12 est ce que quelque-chose est prévus pour ce plugin ?

En plus du problème avec Debian 12 il faut absolument mettre à jour les dépendances, le plugin utilise * pybluez qui n’est plus supporté depuis longtemps et une version ultra obsolète de cryptography cryptography · PyPI qui ne peux plus être compilé.

Pouvez vous nous dire si ce plugin est à l’abandon ? Si oui peut-on donner le code pour permettre à la communauté de le mettre à jour ?

C’est le seul moyen d’utiliser les intérupteurs Odace SFSP avec un système domotique

Merci d’avance pour vos réponses.


Informations Jeedom

Core : 4.4.8.1 (V4-stable)
DNS Jeedom : non

Plugin : Odace SFSP
Version : 2021-03-30 10:25:39 (stable)
Statut Démon : Démarré - (2024-07-17 14:35:01)
1 « J'aime »

Ca ne repondra pas à ton pb, mais j’ai indiqué le plugin comme incompatible dans ce poste de suivi des compatibilité deb12 :

Norbert

1 « J'aime »

Bonsoir,

En complément de la réponse de @ngrataloup Jeedom n’est pas officiellement compatible Debian 12.

Bonjour @iPapy,

Pour moi, si Jeedom est compatible deb12 depuis la version 4.4.7

Gestion des dépendances python en venv (pour etre compatible debian 12) LIEN. Note : le support est que coté core il faudra ensuite des mises à jour coté plugin pour que ca marche

Le PB est seulement côté plugins dont beaucoup ne le sont pas encore

Norbert

Hello Norbert,

Je suis bien d’accord avec toi mais tant que tous les plugins ne sont pas deb12 je préfère me basé sur ce qui est écrit dans la documentation officielle

1 « J'aime »

Bonjour,

Il faudrait les logs d’installation des dépendances.

Est-ce vraiment un problème d’installation ou autre chose?

Bonjour,
J’ai déjà posté à propos du devenir de ce plugin qui est vital pour mon installation domotique

J’ai aussi demandé de mettre le code de ce plugin sur le Github Jeedom (je viens de vérifier il n’y est toujours pas) sans obtenir de réponse.
C’est bien dommage que la team Jeedom nous laisse dans le flou à propos de ce plugin.
De toute façon je n’ai pas le choix (j’ai des dizaines d’interrupteurs, de modules et de boites de centre et il n’y a pas de matériel équivalent) quitte à investir pas mal d’heures s’il le faut il faudra bien que je trouve une solution quitte à redévelopper un plugin !
PS je n’ai pas testé l’installation du plugin sous Debian 12 car ma prod est en Debian 11 et je n’ai pas de clé bluetooth sur mes Jeedom de test. Je vais voir pour acheter une autre clé Sena et tester.

Hello @Mips j’ai testé l’installation de ce plugin sur Debian12 et la dernière stable de Jeedom et je ne m’en souvenais plus mais ce plugin utilise python :

********************************************************
*             Installation des dépendances             *
********************************************************
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://security.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:3 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Hit:4 https://deb.nodesource.com/node_18.x nodistro InRelease
Get:5 http://security.debian.org/debian-security bookworm-security/main Sources [105 kB]
Get:6 http://security.debian.org/debian-security bookworm-security/main amd64 Packages [169 kB]
Get:7 http://security.debian.org/debian-security bookworm-security/main Translation-en [102 kB]
Fetched 480 kB in 0s (1714 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
python3-pip is already the newest version (23.0.1+dfsg-1).
python3-setuptools is already the newest version (66.1.1-1).
python3-setuptools set to manually installed.
The following NEW packages will be installed:
  rfkill
0 upgraded, 1 newly installed, 0 to remove and 106 not upgraded.
Need to get 34.1 kB of archives.
After this operation, 99.3 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 rfkill amd64 2.38.1-5+deb12u1 [34.1 kB]
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin: 
Fetched 34.1 kB in 0s (823 kB/s)
Selecting previously unselected package rfkill.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 73732 files and directories currently installed.)
Preparing to unpack .../rfkill_2.38.1-5+deb12u1_amd64.deb ...
Unpacking rfkill (2.38.1-5+deb12u1) ...
Setting up rfkill (2.38.1-5+deb12u1) ...
Processing triggers for man-db (2.11.2-2) ...
Reading package lists...
Building dependency tree...
Reading state information...
python3-dev is already the newest version (3.11.2-1+b1).
build-essential is already the newest version (12.9).
python3-pip is already the newest version (23.0.1+dfsg-1).
The following additional packages will be installed:
  bluez libbluetooth3 libssl3 openssl
Suggested packages:
  bluez-cups bluez-obexd bluez-meshd pulseaudio-module-bluetooth libssl-doc
The following NEW packages will be installed:
  bluetooth bluez libbluetooth-dev libbluetooth3 libffi-dev
The following packages will be upgraded:
  libssl-dev libssl3 openssl
3 upgraded, 5 newly installed, 0 to remove and 103 not upgraded.
Need to get 7528 kB of archives.
After this operation, 5805 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 bluez amd64 5.66-1+deb12u2 [1155 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 bluetooth all 5.66-1+deb12u2 [38.9 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 libbluetooth3 amd64 5.66-1+deb12u2 [107 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 libbluetooth-dev amd64 5.66-1+deb12u2 [292 kB]
Get:5 http://deb.debian.org/debian bookworm/main amd64 libffi-dev amd64 3.4.4-1 [59.4 kB]
Get:6 http://deb.debian.org/debian bookworm/main amd64 libssl-dev amd64 3.0.13-1~deb12u1 [2435 kB]
Get:7 http://deb.debian.org/debian bookworm/main amd64 libssl3 amd64 3.0.13-1~deb12u1 [2022 kB]
Get:8 http://deb.debian.org/debian bookworm/main amd64 openssl amd64 3.0.13-1~deb12u1 [1418 kB]
apt-listchanges: Reading changelogs...
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin: 
Fetched 7528 kB in 1s (11.5 MB/s)
Selecting previously unselected package bluez.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 73739 files and directories currently installed.)
Preparing to unpack .../0-bluez_5.66-1+deb12u2_amd64.deb ...
Unpacking bluez (5.66-1+deb12u2) ...
Selecting previously unselected package bluetooth.
Preparing to unpack .../1-bluetooth_5.66-1+deb12u2_all.deb ...
Unpacking bluetooth (5.66-1+deb12u2) ...
Selecting previously unselected package libbluetooth3:amd64.
Preparing to unpack .../2-libbluetooth3_5.66-1+deb12u2_amd64.deb ...
Unpacking libbluetooth3:amd64 (5.66-1+deb12u2) ...
Selecting previously unselected package libbluetooth-dev:amd64.
Preparing to unpack .../3-libbluetooth-dev_5.66-1+deb12u2_amd64.deb ...
Unpacking libbluetooth-dev:amd64 (5.66-1+deb12u2) ...
Selecting previously unselected package libffi-dev:amd64.
Preparing to unpack .../4-libffi-dev_3.4.4-1_amd64.deb ...
Unpacking libffi-dev:amd64 (3.4.4-1) ...
Preparing to unpack .../5-libssl-dev_3.0.13-1~deb12u1_amd64.deb ...
Unpacking libssl-dev:amd64 (3.0.13-1~deb12u1) over (3.0.11-1~deb12u2) ...
Preparing to unpack .../6-libssl3_3.0.13-1~deb12u1_amd64.deb ...
Unpacking libssl3:amd64 (3.0.13-1~deb12u1) over (3.0.11-1~deb12u2) ...
Preparing to unpack .../7-openssl_3.0.13-1~deb12u1_amd64.deb ...
Unpacking openssl (3.0.13-1~deb12u1) over (3.0.11-1~deb12u2) ...
Setting up libssl3:amd64 (3.0.13-1~deb12u1) ...
Setting up libffi-dev:amd64 (3.4.4-1) ...
Setting up bluez (5.66-1+deb12u2) ...
Created symlink /etc/systemd/system/dbus-org.bluez.service -> /lib/systemd/system/bluetooth.service.

Created symlink /etc/systemd/system/bluetooth.target.wants/bluetooth.service -> /lib/systemd/system/bluetooth.service.

Setting up libssl-dev:amd64 (3.0.13-1~deb12u1) ...
Setting up libbluetooth3:amd64 (5.66-1+deb12u2) ...
Setting up openssl (3.0.13-1~deb12u1) ...
Setting up bluetooth (5.66-1+deb12u2) ...
Setting up libbluetooth-dev:amd64 (5.66-1+deb12u2) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for dbus (1.14.10-1~deb12u1) ...
Processing triggers for libc-bin (2.36-9+deb12u7) ...
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
********************************************************
*             Installation terminée                    *
********************************************************

Le fait qu’il utilise python n’est pas trop un problème.

Mais soit le plugin doit installer dans un venv lui même soit il doit utiliser le core qui gère.
Vu que c’est un plugin officiel, il devrait utiliser le systeme de packages.json du core.

Je me note un rappel pour fin juillet pour voir si c’est facilement possible de migrer la partie install.
Mais il restera le problème de pybluez… ce n’est pas le seul plugin qui utilise cette lib

Bonjour,

Merci @vedrine d’avoir répondu avant moi avec les logs d’installation sur Debian 12.

Je suis dans la même situation, ce plugin est aussi vital à mon installation.

Pour anticiper les problèmes qui arriveront après il n’y a pas que pybluez qui posera problème.
Le plugin utilise la version 2.6.1 de cryptography qui ne peut plus s’installer non plus. Elle date de 2019, on est à la version 42.0.8

J’ai désactivé les sécurités de python pour installer les packages en tant que root avec la commande suivante :

sudo mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.old

L’installation des deux packages est en échec. Je ne peux pas joindre le log de l’installation car je suis nouvel utilisateur.

Si j’édite le fichier « install_apt.sh » pour inclure le correctif de pybluez et en supprimant la version imposée de cryptography, l’installation va jusqu’au bout mais le deamon Beagle ne fonctionne pas et ne donne d’ailleurs plus aucun log.

Non, c’est parce qu’il ne faut pas « joindre » un fichier mais coller le contenu du log dans un Texte préformaté (bouton </>)

Merci @Mips, mais je ne comprends pas pourquoi personne dans l’équipe Jeedom n’a répondu à mes demandes de mettre le code sur le Github soit pour me dire que ce n’était pas possible soit pour le faire.
C’est dommage car çà ne permet pas de faire des PR.

Ok merci de l’info mais apparement je peux enfin poster des fichiers, je ne peux pas mettre les logs dans le post à cause de la limite de 32000 car

Les logs d’installation sont en PJ:
beagle_update.log (39,6 Ko)

J’ai essayé d’avancer sur ce problème :

  • Suppression des fonctions dependancy_install et dependancy_info de la classe du plugin
  • Creation d’un fichier packages.json mais je n’y installe pas pybluez pour éviter le problème avec use_2to3, je le fait dans un fichier post-install.sh dans resources avec la ligne
sudo /var/www/html/core/class/../../plugins/beagle/resources/python_venv/bin/python3 -m pip install --force-reinstall --upgrade git+https://github.com/pybluez/pybluez.git#egg=pybluez

Je n’ai plus d’erreur lors de l’installation des dépendances mais j’ignore si le plugin fonctionne car je n’ai pas de clé bluetooth sur mes jedom de test.
Avec çà setuptools et cryptography sont installés avec les dernières versions, mais franchement quand je regarde le seul fichier où cryptography est utilisé (resources/beagled/sendadv.py), à part la ligne

from cryptography.hazmat.backends import default_backend

Je ne vois pas ce qui pourrait empécher ce script de marcher avec la dernière version.
Toutefois, il faut bien dire

  • Que je ne suis pas un spécialiste de cryptography, je me suis contenté de parcourir les sources et les exemples
  • Que j’ignore totalement comment le cryptage/decryptage a été implémenté dans les accessoires Odace SFSP par Schneider et pourquoi l’auteur du plugin forçait la vieille version (il y a certainement une raison).
    Donc il y a peut-être un problème avec la dernière version ce qui expliquerai pourquoi @Blackfields n’a pas réussi à faire marcher le démon. Mais l’utilisation de cryptography me semble tout ce qu’il ya de plus basique dans le plugin.

Au point ou j’en suis il faut absolument que je teste aussitôt que possible.

J’avais regardé mais vu que le script d’install comportaient des actions bien spécifiques (installation de version précise, exécution d’autres commandes…), je ne suis pas allé plus loin vu que je n’ai aucun moyen de tester

en cas de problème avec ce plugin pour ceux ne sachant pas comment investiguer / tester eux-même, le mieux est de faire un ticket au support.