souci d'exécution scipt sh

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 <\>.
jolepsi
Messages : 2
Inscription : 14 nov. 2021, 12:46

souci d'exécution scipt sh

Message 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 !
Dernière modification par Keros le 14 nov. 2021, 13:16, modifié 1 fois.
Raison : Ajout des balises [code] pour le script
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: souci d'exécution scipt sh

Message 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
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
jolepsi
Messages : 2
Inscription : 14 nov. 2021, 12:46

Re: souci d'exécution scipt sh

Message 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.
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: souci d'exécution scipt sh

Message 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é 1033 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é 1033 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é 1033 fois
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
Répondre