Page 1 sur 1

souci d'exécution scipt sh

Publié : 14 nov. 2021, 13:09
par jolepsi
Bonjour,

j'ai un script SH assez basique qui me sert de sonnette depuis des années.
Suite à des upgrades il ne fonctionne plus ..; je soupçonne un problème de sh assez basique mais je ne mets pas le doigt dessus...

la conf du bouton "Doorbell":
script://sonnette.sh

le script:

Code : Tout sélectionner

#!/bin/bash
# redirect stdout/stderr to a file
exec >logsonnette.txt 2>&1

aplay /home/pi/Musique/TrainWhistle.wav
aplay /home/pi/Musique/TrainWhistle.wav
aplay /home/pi/Musique/TrainWhistle.wav

exit
il fonctionne en interactif et me créée de la log .. pas en mode domoticz (même user PI pourtant)
droits sur le fichier: rwxr-xr-x

la log ne renvoie rien de particulier:
2021-11-14 12:52:03.184 Rfx: Lighting 2 (Sonnette2)
2021-11-14 12:52:03.180 Status: User: jolepsi (IP:XXX) initiated a switch command (85/Sonnette2/On)
2021-11-14 12:52:03.392 Status: Executing script: /home/pi/domoticz/scripts/sonnette.sh


du coup je sèche un peu sur la suite de l'analyse. votre expertise serait la bienvenue !

Re: souci d'exécution scipt sh

Publié : 14 nov. 2021, 15:34
par Chrominator
Le user de Domoticz n'est pas pi normalement mais root.
Ton script est simple, donc soit Domoticz ne le trouve pas quand tu spécifies script://sonnette.sh (je n'y crois pas trop si le script est dans le répertoire des scripts de Domoticz) ou alors aplay n'est pas trouvé lorsque c'est root qui exécute le script dans Domoticz.
Vérifie que la variable d'environnement PATH de root contient bien le chemin d'accès vers aplay (le contraire serait bizarre aussi).

Code : Tout sélectionner

sudo bash
su - root
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Ou alors modifie le script pour désigner explicitement où l'exécutable se trouve, par exemple :

Code : Tout sélectionner

/usr/bin/aplay /home/pi/Musique/TrainWhistle.wav

Re: souci d'exécution scipt sh

Publié : 14 nov. 2021, 16:16
par jolepsi
Merci de m'avoir répondu déjà !

Effectivement c'est root désolé pour le raccourci.

aplay est dans /usr/bin qui est bien dans le path de root.

même en explicitant le chemin je n'ai pas de changement...
et si c'était ça je trouverais logiquement un message d'erreur dans logsonette.txt qui n'est en fait même pas généré

c'est comme si ça ne rentrait même pas dans le script.

Re: souci d'exécution scipt sh

Publié : 14 nov. 2021, 17:49
par Chrominator
C'est étrange et rassurant à la fois ; je parviens sans peine à recréer ton souci sur mon pi. :)

J'ai un palliatif à proposer.
En général, pour éviter au gestionnaire d'évènements de Domoticz d'attendre trop longtemps la fin d'un script, on conseille de les lancer en batch via un petit script générique, par exemple exec.sh :

Code : Tout sélectionner

pi:~/domoticz/scripts$ cat exec.sh
#!/bin/sh
/home/pi/domoticz/scripts/$1 $2 $3 $4 $5 $6 $7 $8 $9> /dev/null 2>&1 &
En appliquant cette technique à ton cas, ça fonctionne correctement.
Screenshot 2021-11-14 at 17-44-19 Domoticz_dev.png
Screenshot 2021-11-14 at 17-44-19 Domoticz_dev.png (232.25 Kio) Consulté 1031 fois

Après appui du bouton, on voit dans le log ceci :
Screenshot 2021-11-14 at 17-45-38 Domoticz_dev.png
Screenshot 2021-11-14 at 17-45-38 Domoticz_dev.png (4.73 Kio) Consulté 1031 fois
Et on trouve bien le log généré :
Capture d’écran 2021-11-14 174823.png
Capture d’écran 2021-11-14 174823.png (20.94 Kio) Consulté 1031 fois