php et 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 <\>.
MowokS
Messages : 46
Inscription : 21 mars 2018, 23:17

php et os.execute

Message par MowokS »

Bonjour à tous,
j'arrive à passer une commande php dans un script bash:
php miio-cli.php --ip AdresseDeLampoule --token IciMaCléToken --sendcmd '{"id":1,"method":"get_prop","params":["power"]}'
Du coup je lance ce batch en lua avec la commande os.execute('bash monscript.sh').
Je souhaiterais lancer directement ma commande php avec os.execute sans passer par le script bah mais je n'y arrive pas, les -- ainsi que les { } semblent ne pas passer.
Est ce possible de faire une commande qui ressemblerait à
os.execute('php miio-cli.php --ip AdresseDeLampoule --token IciMaCléToken --sendcmd '{"id":1,"method":"get_prop","params":["power"]}')?


La commande exact qui fonctionne dans mon script bash est la suivante:

#!/bin/bash
cd /home/pi/domoticz/scripts/php-miio-master/
php miio-cli.php --ip MONIP --token MON TOKEN --sendcmd '{"id":1,"method":"set_power","params":["on"]}' > /dev/null ;;


Par avance merci de votre aide.
Dernière modification par MowokS le 10 nov. 2018, 17:12, modifié 2 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver »

Salut,

Il faut être rigoureux avec les "

Ceci par exemple est étrange

Code : Tout sélectionner

"params":["power]
Même chose avec '
Tu ouvres 2 fois et ne fermes qu'1fois..

Probablement mettre également le chemin complet pour php
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
MowokS
Messages : 46
Inscription : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS »

bonjour et merci pour ta réponse, il s'agit d'une erreur de recopie, désolé. Je vais modifier mon post.
Cordialement
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver »

il faut bosser le copier/coller dans ce cas ;)

il s'empêche que tu ne fermes toujours pas le premier ' ouvert et que tu n'as pas indiqué le chemin complet de php (typiquement /usr/bin/php)

essai de ne pas t'arrêter la la première phrase des réponses faites ;)
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
MowokS
Messages : 46
Inscription : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS »

Merci vil1driver, j'ai édité mon post en espérant être plus clair.
J'ai encore beaucoup à apprendre dans l'art du copier/coller, mais je ne désespère pas :D
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver »

essai ceci (si c'est plus parlant)

la fin (avant la dernière parenthèse) c'est 2 ' et non pas un "

Code : Tout sélectionner

commandArray ={}
local power = os.execute('/usr/bin/php /home/pi/domoticz/scripts/php-miio-master/miio-cli.php --ip AdresseDeLampoule --token IciMaCléToken --sendcmd '{"id":1,"method":"get_prop","params":["power"]}'')
print(power)
return commandArray
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
MowokS
Messages : 46
Inscription : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS »

En suivant ta recommandation, j'ai créé un evenement device, portant le nom de "status"

Code : Tout sélectionner

commandArray ={}
local power = os.execute('/usr/bin/php /home/pi/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd '{"id":1,"method":"get_prop","params":["power"]}'')
print(power)
return commandArray
voici le log:
2018-11-10 17:53:40.153 Error: EventSystem: in status: [string "commandArray ={}..."]:2: ')' expected near '{'
2018-11-10 17:53:40.192 Error: EventSystem: in status: [string "commandArray ={}..."]:2: ')' expected near '{'
2018-11-10 17:53:40.234 Error: EventSystem: in status: [string "commandArray ={}..."]:2: ')' expected near '{'
Dernière modification par MowokS le 10 nov. 2018, 18:46, modifié 1 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver »

et comme ceci ?

Code : Tout sélectionner

commandArray ={}
local power = os.execute('/usr/bin/php /home/pi/domoticz/scripts/php-miio-master/miio-cli.php --ip AdresseDeLampoule --token IciMaCléToken --sendcmd "{'id':1,'method':'get_prop','params':['power']}"')
print(power)
return commandArray
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
MowokS
Messages : 46
Inscription : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS »

voici le script lua:

Code : Tout sélectionner

commandArray ={}
local power = os.execute('/usr/bin/php /home/pi/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd "{"id":1,"method":"get_prop","params":["power"]}"')
print(power)
return commandArray
Pas de message d'erreur dans le champ de saisi, rien dans les logs.
J'ai passé le script en TIME pour voir, toujours rien.
J'ai essayé un autre script device avec une autre commande suivant ton conseil:

Code : Tout sélectionner

commandArray = {}
if devicechanged['status tv'] == 'On' then
    os.execute('/usr/bin/php /home/pi/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd "{"id":1,"method":"set_power","params":["on"]}"')
end
return commandArray
Aucun message dans les logs, rien ne se passe
Dernière modification par MowokS le 10 nov. 2018, 18:45, modifié 1 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver »

sérieusement tu tapes tout à la main sans usage de copier/coller ?

et svp, utilises les balises code dans tes réponse pour poster du code
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