[Python] Bose Soundtouch Multiroom depuis domoticz

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Chrominator »

Turismo a écrit : J'arrive sans problèmes à lancer le script "bose_all.py" directement en ligne de commande avec

Code : Tout sélectionner

python3 bose_all.py --master salon --volume 20 --preset 6 -s on
Sur la ligne de commande, normalement on indique pas l'interpréteur de commande.
Le système le fera tout seul grâce à la première ligne du script qui désigne justement ce qu'il faut employer.
La seule chose à faire et qui ne figure peut-être pas explicitement est de rendre exécutable le script :

Code : Tout sélectionner

chmod +x bose_all.py
Turismo a écrit : la même commande avec python au lieu de python3 me renvoie vers un message d'erreur

Code : Tout sélectionner

pi@raspberrypi:~/domoticz/scripts/python$ python bose_all.py --master salon --volume 20 --preset 6 -s on
Traceback (most recent call last):
  File "bose_all.py", line 25, in <module>
    import requests
ImportError: No module named requests
Il te manque la bibliothèque requests dans l'environnement python 2.7 certainement, un

Code : Tout sélectionner

pip install requests
pourrait solutionner le pb (si la bibliothèque existe pour python 2.7) mais il vaut mieux utiliser le script avec Python3.
Turismo a écrit : Par contre, impossible de lancer le bose depuis Domoticz, mais je n'ai pas de messages d'erreur non plus.

Code : Tout sélectionner

2017-12-03 02:03:53.800 User: Admin initiated a switch command (558/Bose test/On)
2017-12-03 02:03:54.032 Executing script: /home/pi/domoticz/scripts/exec.sh

Si le script bose_all.py n'est pas exécutable ça peut tout à fait produire ceci.
la script exec.h doit l'être lui aussi, sinon ça ne fait rien.

Code : Tout sélectionner

chmod +x exec.sh
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Turismo
Messages : 16
Inscription : 27 avr. 2017, 22:42

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Turismo »

Merci de ta réponse,

J'avais déjà rendu exécutables les deux scripts (j'avais oublié de le préciser). J'ai par contre essayé d'installer la bibliothèque requests, mais j'ai un message d'erreur comme quoi la bibliothèque est déjà installée

Code : Tout sélectionner

pi@raspberrypi:~$ pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python2.7/dist-packages
Cleaning up...
J'ai essayé la mise à jour des composants, mais pas plus de succès.

Code : Tout sélectionner

pi@raspberrypi:~/domoticz/scripts/python$ sudo pip install --upgrade requests
Downloading/unpacking requests from https://pypi.python.org/packages/49/df/50aa1999ab9bde74656c2919d9c0c085fd2b3775fd3eca826012bef76d8c/requests-2.18.4-py2.py3-none-any.whl#md5=eb9be71cc41fd73a51a7c9cd1adde5de
  Downloading requests-2.18.4-py2.py3-none-any.whl (88kB): 88kB downloaded
Downloading/unpacking certifi>=2017.4.17 (from requests)
  Downloading certifi-2017.11.5-py2.py3-none-any.whl (330kB): 330kB downloaded
Downloading/unpacking idna>=2.5,<2.7 (from requests)
  Downloading idna-2.6-py2.py3-none-any.whl (56kB): 56kB downloaded
Downloading/unpacking chardet>=3.0.2,<3.1.0 (from requests)
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB): 133kB downloaded
Downloading/unpacking urllib3>=1.21.1,<1.23 (from requests)
  Downloading urllib3-1.22-py2.py3-none-any.whl (132kB): 132kB downloaded
Installing collected packages: requests, certifi, idna, chardet, urllib3
  Found existing installation: requests 2.4.3
    Not uninstalling requests at /usr/lib/python2.7/dist-packages, owned by OS
  Found existing installation: chardet 2.3.0
    Not uninstalling chardet at /usr/lib/python2.7/dist-packages, owned by OS
  Found existing installation: urllib3 1.9.1
    Not uninstalling urllib3 at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed requests certifi idna chardet urllib3
Cleaning up...
Et enfin, lorsque je retente la commande, toujours le même message d'erreur

Code : Tout sélectionner

pi@raspberrypi:~/domoticz/scripts/python$ python bose_all.py --master salon --volume 20 --preset 6 -s on
Traceback (most recent call last):
  File "bose_all.py", line 25, in <module>
    import requests
ImportError: No module named requests
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Chrominator »

Turismo a écrit :

Code : Tout sélectionner

pi@raspberrypi:~$ pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python2.7/dist-packages
Cleaning up...
J'ai essayé la mise à jour des composants, mais pas plus de succès.
En faisant ça tu cherches à l'installer dans Python2.7, c'est dans le log.
Essaie plutôt la commande suivante :

Code : Tout sélectionner

sudo -H pip3 install requests
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Turismo
Messages : 16
Inscription : 27 avr. 2017, 22:42

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Turismo »

Je viens de tenter et j'ai encore les messages me disant que tout est installé

Code : Tout sélectionner

pi@raspberrypi:~$ sudo -H pip3 install requests
Requirement already satisfied: requests in /usr/local/lib/python3.6/site-packages
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/site-packages (from requests)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/site-packages (from requests)
Requirement already satisfied: idna<2.7,>=2.5 in /usr/local/lib/python3.6/site-packages (from requests)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in /usr/local/lib/python3.6/site-packages (from requests)
J'ai tenté une upgrade mais j'ai les mêmes messages que ceux au dessus.
Il ne m'est toujours pas possible de lancer le script via la commande

Code : Tout sélectionner

python bose_all.py --master salon --volume 20 --preset 6 -s on
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Chrominator »

Pas simple cette histoire... :(

Bon essayons de désinstaller requests dans l'environnement python3 :

Code : Tout sélectionner

sudo pip3 uninstall requests
Pour être sûrs :

Code : Tout sélectionner

sudo -H pip3 uninstall requests
Et ensuite on le remet avec le sudo -H :

Code : Tout sélectionner

sudo -H pip3 install requests
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Turismo
Messages : 16
Inscription : 27 avr. 2017, 22:42

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Turismo »

Au moins ca me rassure un peu, la solution n'était pas sous mon nez !
Chrominator a écrit : Bon essayons de désinstaller requests dans l'environnement python3 :

Code : Tout sélectionner

sudo pip3 uninstall requests

Pour être sûrs :

Code : Tout sélectionner

sudo -H pip3 uninstall requests
La première étape a bien désinstallé requests

Code : Tout sélectionner

  Successfully uninstalled requests-2.18.4
La deuxième (sudo-H) a confirmé qu'il n'y avait plus rien

Code : Tout sélectionner

pi@raspberrypi:~$ sudo -H pip3 uninstall requests
Cannot uninstall requirement requests, not installed
Chrominator a écrit :Et ensuite on le remet avec le sudo -H :

Code : Tout sélectionner

sudo -H pip3 install requests
Installation sans problèmes

Code : Tout sélectionner

pi@raspberrypi:~$ sudo -H pip3 install requests
Collecting requests
  Using cached requests-2.18.4-py2.py3-none-any.whl
Requirement already satisfied: urllib3<1.23,>=1.21.1 in /usr/local/lib/python3.6/site-packages (from requests)
Requirement already satisfied: idna<2.7,>=2.5 in /usr/local/lib/python3.6/site-packages (from requests)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/site-packages (from requests)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/site-packages (from requests)
Installing collected packages: requests
Mais j'ai toujours la même erreur lors de l'éxecution du script

Code : Tout sélectionner

pi@raspberrypi:~/domoticz/scripts/python$ python bose_all.py --master salon --volume 20 --preset 6 -s on
Traceback (most recent call last):
  File "bose_all.py", line 25, in <module>
    import requests
ImportError: No module named requests
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Chrominator »

Turismo a écrit :
Mais j'ai toujours la même erreur lors de l'éxecution du script

Code : Tout sélectionner

pi@raspberrypi:~/domoticz/scripts/python$ python bose_all.py --master salon --volume 20 --preset 6 -s on
Traceback (most recent call last):
  File "bose_all.py", line 25, in <module>
    import requests
ImportError: No module named requests
Tu le lances avec python2.x quand tu fais précéder le nom du script du mot python.

Laisse faire le système et lance

Code : Tout sélectionner

./bose_all.py --master salon --volume 20 --preset 6 -s on
en te plaçant dans le répertoire où est bose_all.py.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Turismo
Messages : 16
Inscription : 27 avr. 2017, 22:42

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Turismo »

Je ne connaissais pas le format, mais j'ai la même erreur qui revient

Code : Tout sélectionner

pi@raspberrypi:~/domoticz/scripts/python$ ./bose_all.py --master salon --volume 20 --preset 6 -s on
Traceback (most recent call last):
  File "./bose_all.py", line 25, in <module>
    import requests
ImportError: No module named 'requests'
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Chrominator »

Bon il est évident que la bibliothèque requests n'est pas située là où Python3.x la cherche.
Je ne suis vraiment pas un spécialiste de Python, peut-être que ça vaudrait la peine de demander de t'aider sur ce sujet précis avec un nouveau post.

Fait un script python du genre :

Code : Tout sélectionner

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import requests

print('Début et fin du programme')
Tu le rends exécutable par un chmod + x <nom du fichier> puis tu les lances par ./<nom du fichier>

Si ça marche ce serait bizarre, sinon quelqu'un essayera de t'aider.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Turismo
Messages : 16
Inscription : 27 avr. 2017, 22:42

Re: [Python][TUTO] Bose Soundtouch Multiroom depuis domoticz

Message par Turismo »

Le script ne se lance pas non plus.
J'ai lancé un nouveau sujet içi, dans tous les cas je ferais un petit point en compte rendu içi pour le cas où d'autres aient le même problème que moi. https://easydomoticz.com/forum/viewtopi ... =10&t=5432

Merci de ton aide Chrominator !
Répondre