php et os.execute

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
MowokS
Messages : 31
Enregistré le : 21 mars 2018, 23:17

php et os.execute

Message par MowokS » 10 nov. 2018, 15:20

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.
Modifié en dernier par MowokS le 10 nov. 2018, 17:12, modifié 2 fois.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


vil1driver
Messages : 4560
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver » 10 nov. 2018, 15:50

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

Domoticz v4.10078 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

MowokS
Messages : 31
Enregistré le : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS » 10 nov. 2018, 16:59

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 : 4560
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver » 10 nov. 2018, 17:10

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 ;)

Domoticz v4.10078 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


MowokS
Messages : 31
Enregistré le : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS » 10 nov. 2018, 17:15

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 : 4560
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver » 10 nov. 2018, 17:22

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

Domoticz v4.10078 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

MowokS
Messages : 31
Enregistré le : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS » 10 nov. 2018, 17:58

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 '{'
Modifié en dernier par MowokS le 10 nov. 2018, 18:46, modifié 1 fois.

vil1driver
Messages : 4560
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver » 10 nov. 2018, 18:08

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

Domoticz v4.10078 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

MowokS
Messages : 31
Enregistré le : 21 mars 2018, 23:17

Re: php et os.execute

Message par MowokS » 10 nov. 2018, 18:25

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
Modifié en dernier par MowokS le 10 nov. 2018, 18:45, modifié 1 fois.

vil1driver
Messages : 4560
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php et os.execute

Message par vil1driver » 10 nov. 2018, 18:38

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

Domoticz v4.10078 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098


modules.lua

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre