Page 1 sur 1

Problème pour lancer script depuis interrupteur

Publié : 08 déc. 2016, 02:11
par rapinou
Bonjour,

Je bloque actuellement sur un projet pour mon fils.
J'aimerais lancer la lecture d'un mp3 lors de l'activation d'un interrupteur sur Domoticz.
J'ai donc créé un script, mais alors qu'il fonctionne très bien depuis la console, il ne fonctionne pas lorsque j'utilise l'interrupteur Domoticz.

Mon script :

Code : Tout sélectionner

#!/bin/bash
nohup omxplayer -o alsa:pulse /home/pi/le_vilain_petit_canard.mp3 &
Et l'appel dans l'interrupteur :

Code : Tout sélectionner

script:///home/pi/domoticz/scripts/sh/bt_petit_canard.sh
Je ne comprends pas pourquoi, j'ai déjà créé d'autres scripts du même genre qui fonctionnent correctement.

Merci de votre aide.

Re: Problème pour lancer script depuis interrupteur

Publié : 08 déc. 2016, 06:43
par jule1986
Un problème de droit ?


Envoyé de mon iPhone en utilisant Tapatalk

Re: Problème pour lancer script depuis interrupteur

Publié : 08 déc. 2016, 07:37
par patrice
bonjour
oui un pb de droits sur ton script
que ce passe t'il si au lieu de lancer ta commande alsa ... tu lance directmetn ton script en .sh ?

Re: Problème pour lancer script depuis interrupteur

Publié : 08 déc. 2016, 12:20
par rapinou
Bonjour,

Effectivement ce serait un problème de droit.

J'ai renvoyé la sortie vers un fichier et voilà ce qu'il en ressort :

Code : Tout sélectionner

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
D'après ce que j'ai trouvé comme infos sur le net, c'est pulseaudio qui n'accepte pas les scripts en root, et apparemment Domoticz s'exécute en root...
Voir ici, un autre forumeur pense la même chose : viewtopic.php?p=3659&sid=bfe61b56c6954d ... 98ca#p3659

Le soucis c'est que je n'ai pas trouvé d'autre solution que pulseaudio pour diriger le son vers mon enceinte bluetooth.

Y aurait-il un moyen pour forcer Domoticz à exécuter le script comme pi et non comme root ?

Patrice, que veux-tu dire exactement ?
patrice a écrit :que ce passe t'il si au lieu de lancer ta commande alsa ... tu lance directmetn ton script en .sh ?
Si je lance mon script tel quel depuis la console en SSH ça fonctionne, le mp3 démarre et le son est renvoyé vers mon enceinte bluetooth. Mais si je le lance depuis Domoticz, il ne se passe rien.
Si je retire du script le "-o alsa:pulse", j'arrive à lancer le script depuis Domoticz mais alors le son sort sur ma TV reliée en HDMI au raspi.
Ce qui semble donc confirmer le problème de droit entre Domoticz et pulseaudio.

Re: Problème pour lancer script depuis interrupteur

Publié : 08 déc. 2016, 13:47
par rapinou
Ok je valide le problème de droit, j'ai réussi à lancer le script en cherchant une solution de ce côté là.

Le script qui fonctionne bien :

Code : Tout sélectionner

#!/bin/bash
su - pi -c "omxplayer -o alsa:pulse /media/freebox/musique/le_vilain_petit_canard.mp3" &
Le deuxième pour stopper la lecture :

Code : Tout sélectionner

#!/bin/bash
pkill omxplayer
Les deux sont lancés en action On et Off sur un interrupteur piloté par un bouton dash.

Me reste plus qu'à bricoler un bel habillage pour l'enceinte et les boutons pour offrir au loulou, j'ai hâte :D