Page 3 sur 6

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

Publié : 21 nov. 2017, 23:24
par ayziaa
Essaye de voir si en ligne de commande le script fonctionne en faisant:

Code : Tout sélectionner

python bose.py
Sinon d'après ce que j'ai vu sur le net l'erreur : returned: 256 indique que le script ne s'est pas terminé correctement. Attends t'il un "return" de quelque chose? Mais il me semble que ça n'indique pas que le script n'a pas été exécuté, car sinon ça ne fonctionnerais pas chez moi.

Edit: apparemment il est possible de mettre un

Code : Tout sélectionner

exit()
à la fin du script pour terminer plus proprement

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

Publié : 21 nov. 2017, 23:41
par lreymond
voici ce qu'il me retour lors que je lance:

Code : Tout sélectionner

python bose.py

Code : Tout sélectionner

Traceback (most recent call last):
  File "bose.py", line 16, in <module>
    import libsoundtouch
  File "/usr/local/lib/python2.7/dist-packages/libsoundtouch/__init__.py", line 9, in <module>
    from libsoundtouch.device import SoundTouchDevice
  File "/usr/local/lib/python2.7/dist-packages/libsoundtouch/device.py", line 15, in <module>
    from .utils import Key, Type
  File "/usr/local/lib/python2.7/dist-packages/libsoundtouch/utils.py", line 6, in <module>
    from enum import Enum
ImportError: No module named enum
l'ajout de:

Code : Tout sélectionner

exit()
ne change pas la donne... :cry:

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

Publié : 22 nov. 2017, 09:57
par ayziaa
J'ai réussi à supprimer l'erreur 256 sur un de mes scripts en mettant la fin de mon script dans un bloque if ex:

Code : Tout sélectionner

if n_enceintes == 2: 
	enceinte_salon.create_zone([enceinte_ma_chambre]) 


enceinte_salon.set_volume(50)
enceinte_ma_chambre.set_volume(50) 

presets = enceinte_salon.presets()
enceinte_salon.select_preset(presets[0]) 

devient

Code : Tout sélectionner

if n_enceintes == 2: 
	enceinte_salon.create_zone([enceinte_ma_chambre]) 
	enceinte_salon.set_volume(50)  
	enceinte_ma_chambre.set_volume(50) 
	presets = enceinte_salon.presets() 
	enceinte_salon.select_preset(presets[0]) 
lreymond ton erreur vient d'ailleurs car tu ne peut pas exécuter ton script en ligne de commande. Si tu as des erreur pendant l'installation ça ne peut pas marcher correctement. Essaye peut être de mettre à jour python.

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

Publié : 22 nov. 2017, 20:55
par Chrominator
En faisant ça tu changes le processus.

Chez moi ça marche maintenant, j'ai résolu mon problème en réinstallant la bibliothèque libsoundtouch.

Pour cela, j'ai lancé dans le terminal :

Code : Tout sélectionner

sudo -H pip install libsoundtouch
Et sans rien changer d'autre je n'ai plus eu d'erreur 256 ! :)

En prime je vous livre ce que j'ai mis sur le action off :lol:

Code : Tout sélectionner

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

import libsoundtouch

from libsoundtouch import discover_devices

#Cherche les enceintes et les met dans la list devices
devices = discover_devices(timeout=5)

#On éteint toutes les enceintes
for device in devices:
	device.power_off()

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

Publié : 22 nov. 2017, 22:06
par ayziaa
super! ça fait quoi -H ?

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

Publié : 22 nov. 2017, 22:10
par Chrominator
En tout cas un grand merci à ayziaa sans qui je n'aurais probablement mis les doigts dans un script Python :ugeek:

Il reste toujours cette histoire de presets() qui ne fonctionne pas avec les radios qui ont un nom avec des accents bizarres, genre OÜI FM.
J'irais peut-être visiter d'un peu plus près la bibliothèque libsoundtouch pour voir si je peux faire quelque chose pour ça.

En tout cas j'ai en tête de faire maintenant une page spéciale dans monitor pour le multiroom.

Vivement le week-end ! :D

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

Publié : 22 nov. 2017, 22:14
par ayziaa
Bah de rien ;) ;) content de pouvoir aider.

J'me suis étonné moi même, j'ai fait ça sans tuto juste avec la libraire, c'est la première fois.

Moi j'utilise Reacticz, c'est juste à tomber comme c'est bien 8-) 8-)

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

Publié : 22 nov. 2017, 22:16
par Chrominator
ayziaa a écrit :super! ça fait quoi -H ?
Ca change la home directory lors de l'exécution de la commande vers celle de root, au lieu de celle de l'utilisateur qui a lancé la commande sudo.
J'ai suspecté que le script ne trouvait pas la bibliothèque lors du lancement par Domoticz (qui lance sous root) lorsque j'ai eu l'erreur 256 avec un script qui ne comportait que l'import de la bibliothèque ! :(

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

Publié : 23 nov. 2017, 12:31
par lreymond
Bonjour à vous deux,

Je vous lis avec attention et je réalise pas mal de test sans grand résultat,

J'ai toujours l'erreur 256 malgrès avoir fait:

Code : Tout sélectionner

sudo -H pip install libsoundtouch
Voici le retour que j'ai....

Code : Tout sélectionner

pi@raspberrypi:~ $ sudo -H pip install libsoundtouch
Requirement already satisfied (use --upgrade to upgrade): libsoundtouch in /usr/local/lib/python2.7/dist-packages
Cleaning up..
Louis

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

Publié : 23 nov. 2017, 22:36
par Chrominator
Essaie de le désinstaller d'abord ;

Code : Tout sélectionner

 sudo pip uninstall libsoundtouch
Ensuite tu réinstalles avec

Code : Tout sélectionner

 sudo -H pip install libsoundtouch
Et puis tu nous débriefes.