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! :lol:

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 !