Problème pour lancer script depuis interrupteur

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Problème pour lancer script depuis interrupteur

Message 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.
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
jule1986
Messages : 68
Inscription : 02 nov. 2015, 18:30
Localisation : Loiret (45)

Re: Problème pour lancer script depuis interrupteur

Message par jule1986 »

Un problème de droit ?


Envoyé de mon iPhone en utilisant Tapatalk
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Problème pour lancer script depuis interrupteur

Message 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 ?
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: Problème pour lancer script depuis interrupteur

Message 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.
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: Problème pour lancer script depuis interrupteur

Message 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
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877
Répondre