Pb avec os.execute

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 <\>.
vrolland
Messages : 43
Inscription : 25 mars 2015, 16:35
Localisation : RP 78

Pb avec os.execute

Message par vrolland »

Bonjour à tous,

J'ai un petit problème sur un script lua qui lance un script shell via la fonction os.execute

le code lua ressemble a ça :

Code : Tout sélectionner

commandArray = {}
if (devicechanged['test'] == 'On') then
print ('confort')
os.execute('/home/pi/domoticz/scripts/bash/ipx800.sh 1 4 confort')
end
if (devicechanged['test'] == 'Off') then
print ('eco')
os.execute('/home/pi/domoticz/scripts/bash/ipx800.sh 1 4 eco')
end
return commandArray
Dans les logs de domoticz, lorsque j'actionne mon interrupteur "test", je vois bien le "eco ou le "confort" passer...mais le script n'est pas exécuté.
Je lance sans problème la ligne de commande via une console ssh avec l'utilisateur "pi".
A savoir que j'ai un autre script dans ce même répertoire qui est lancé par un autre script lua sans problèmes, la seule
différence à mes yeux c'est qu'il y a moins d'arguments dans l'autre appel...
Auriez vous une idée svp ?
Merci d'avance.

Vincent
Pi3 - Raspbian wheezy 4.14.98-v7
Domoticz V4.10619
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Pb avec os.execute

Message par Neutrino »

bonjour,
essaye plutôt

Code : Tout sélectionner

os.execute('sh /home/pi/domoticz/scripts/bash/ipx800.sh 1 4 confort')
et dis nous si c'est mieux.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
vrolland
Messages : 43
Inscription : 25 mars 2015, 16:35
Localisation : RP 78

Re: Pb avec os.execute

Message par vrolland »

Salut,
Merci pour ta réponse.
Le "sh" ne change rien, j'ai toujours les "eco" ou "confort" dans les logs de domoticz mais les relais sur mon ipx800 ne changent pas d'état.
Je rappelle que le script fonctionne correctement lorsqu'il est lancé manuellement (avec le chemin complet...pas d'erreur la dessus !) c'est le lancement
via domoticz qui pause problème mais aucun infos dans les logs, c'est dommage !

Aurai je trop d'arguments ?
Pi3 - Raspbian wheezy 4.14.98-v7
Domoticz V4.10619
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Pb avec os.execute

Message par Neutrino »

Ton script ipx800.sh commence par quelle ligne ?
Sh est peut-être à remplacer par bash (dans le lua ).
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
vrolland
Messages : 43
Inscription : 25 mars 2015, 16:35
Localisation : RP 78

Re: Pb avec os.execute

Message par vrolland »

le script commence par #!/bin/bash
Pi3 - Raspbian wheezy 4.14.98-v7
Domoticz V4.10619
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Pb avec os.execute

Message par Neutrino »

Alors je dirais

Code : Tout sélectionner

os.execute('bash /home/pi/domoticz/scripts/bash/ipx800.sh 1 4 confort')
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Pb avec os.execute

Message par rimram31 »

A ta place, je décortiquerais le script -> le remplir de debug echo "Coucou, ça c'est fait ..." >> /tmp/debug_log un peu partout pour voir ce qui marche ou pas. Entre un script exécuté en étant user pi et domoticz, ce qui peut changer c'est l'environnement d'exécution, effectivement shell par défaut mais tu préfixes #!/ mais aussi par exemple la variable PATH ou autre.

Le seul moyen de savoir ce qui se passe c'est de mettre des debug dans le script lui-même.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
vrolland
Messages : 43
Inscription : 25 mars 2015, 16:35
Localisation : RP 78

Re: Pb avec os.execute

Message par vrolland »

Neutrino a écrit :Alors je dirais

Code : Tout sélectionner

os.execute('bash /home/pi/domoticz/scripts/bash/ipx800.sh 1 4 confort')
Merci pour ton aide c'est ça, le bash en début de ligne, j'y aurais pas pensé surtout que j'ai un autre os.execute dans un autre script qui fonctionne sans.
Pi3 - Raspbian wheezy 4.14.98-v7
Domoticz V4.10619
Lamusicadomi
Messages : 107
Inscription : 22 avr. 2017, 11:01

Re: Pb avec os.execute

Message par Lamusicadomi »

Bonjour,

J'ai le même problème avec un script faisant appel à un acript en .sh :

Code : Tout sélectionner

#!/bin/bash
os.execute('bash home/pi/domoticz/scripts/http/FenetreParentFROST.sh')

J'ai essayé sans mettre "bash" mais rien y fait. Systématiquement j'ai la même erreur, à savoir :
./FPOFF: ligne 2: erreur de syntaxe près du symbole inattendu « 'bash home/pi/domoticz/scripts/http/FenetreParentFROST.sh' »
./FPOFF: ligne 2: `os.execute('bash home/pi/domoticz/scripts/http/FenetreParentFROST.sh')'

De plus sous domoticz si je lance au niveau de l'interrupteur le shell FenetreParentFROST.sh, il ne se passe rien en action...
Je vous indique le code de script shell :

Code : Tout sélectionner

#!/bin/bash
# la commande me permettant d'obtenir une cle token
# curl https://api.myfox.me/oauth2/token -d 'grant_type=password&client_id=CLIEN_ID&client_secret=CLIENT_SECRET&username=USERNAME&password=PASSWORD'
# je mets le resultat de mon appel URL dans la variable CLETOKEN
cletoken=$(curl https://api.myfox.me/oauth2/token -d 'grant_type=password&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&username=USERNAME&password=PASSWORD')

# J'extrait la cle token de la reponse
codetoken=${cletoken:17:40}

# j'affiche les resultats pour verif
#echo "$cletoken"
#echo ${cletoken:17:40}

# Ci-dessous les adresses URL suivant les commandes
# Je ferme le radiateur de Chambre Parents
#curl https://api.myfox.me:443/v2/site/siteID/device/deviceID/heater/off?access_token="$codetoken"

# Liste des devices
curl https://api.myfox.me:443/v2/site/siteID/device/heater/items?access_token="$codetoken"
Pouvez vous m'aider sachant que le script shell fonctionne très bien en terminal... ?
A bientôt !
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Pb avec os.execute

Message par vil1driver »

Salut,

as tu vu dans les exemples ci dessus le / avant home ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre