Page 3 sur 3
Re: php et os.execute
Publié : 11 nov. 2018, 13:14
par MowokS
Toujours pareil, rien dans les logs avec la commande:
Code : Tout sélectionner
commandArray ={}
local power = os.execute('php /home/osmc/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd \'{"id":1,"method":"get_prop","params":["power"]}\'')
print(power)
return commandArray
La commande dans un terminal
Code : Tout sélectionner
php /home/osmc/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd '{"id":1,"method":"get_prop","params":["power"]}'
affiche la réponse suivante:
Code : Tout sélectionner
Устройство 192.168.1.3 доступно и ответило:
{"result":["off"],"id":1}
Re: php et os.execute
Publié : 11 nov. 2018, 14:09
par MowokS
Bon, ça se complique dès que je veux entrer des valeurs numérique pour modifier la luminosité et la température de couleur.
Code : Tout sélectionner
commandArray = {}
if devicechanged['status tv'] == 'On' then
os.execute('php /home/osmc/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd \'{"id":1,"method":"set_bricct","params":['100','1']}\'')
elseif devicechanged['status tv'] == 'Off' then
os.execute('php /home/osmc/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd \'{"id":1,"method":"set_power","params":["off"]}\'')
end
return commandArray
Il ne digére pas la partie
"params":['100','1']
voici le log:
Error: EventSystem: in AAAA: [string "--..."]:29: ')' expected near '100'
Re: php et os.execute
Publié : 11 nov. 2018, 14:13
par vil1driver
Pourquoi des simples quote tout à coup ?
Soit tu mets des doubles
Soit tu les échap \'
Re: php et os.execute
Publié : 11 nov. 2018, 14:23
par MowokS
Le script php que j'tulise est comme ça, pour entre les valeurs de luminosité et temperature de couleur ça se passe avec un seul guillemet.
Du coup j'ai compris ce que tu voulais dire, et encore une fois ça a fonctionné avec le code suivant:
Code : Tout sélectionner
commandArray = {}
if devicechanged['status tv'] == 'On' then
os.execute('php /home/osmc/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd \'{"id":1,"method":"set_bricct","params":[\'100\',\'1\']}\'')
elseif devicechanged['status tv'] == 'Off' then
os.execute('php /home/osmc/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd \'{"id":1,"method":"set_power","params":["off"]}\'')
end
return commandArray
Vous êtes un génie!

Re: php et os.execute
Publié : 11 nov. 2018, 14:33
par vil1driver
Essai ceci
Code : Tout sélectionner
function os.capture(cmd, raw)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if raw then return s end
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
return s
end
commandArray ={}
local power = os.capture('php /home/osmc/domoticz/scripts/php-miio-master/miio-cli.php --ip MONIP --token MONTOKEN --sendcmd \'{"id":1,"method":"get_prop","params":["power"]}\'', false)
print(power)
return commandArray
Re: php et os.execute
Publié : 11 nov. 2018, 15:08
par MowokS
Super ca fonctionne!
LUA: Устройство 192.168.1.3 доступно и ответило: {"result":["off"],"id":1}
Tu penses que c'est possible de changer la valeur du switch en fonction de la présence du mot "on" ou "off" ?
Re: php et os.execute
Publié : 11 nov. 2018, 15:47
par vil1driver
A tester
Code : Tout sélectionner
if string.find(power, "off") =~ nil then
print("module is off")
-- etc..
elseif string.find(power, "on") =~ nil then
print("module is on")
-- etc..
end
Re: php et os.execute
Publié : 11 nov. 2018, 15:54
par MowokS
Merci pour toutes ces informations, je vais étudier tout cela de plus près quand j'aurais un peu plus de temps.
Encore merci pour ton aide précieuse, tu m'as fais avancé à pas de géant !