Page 1 sur 1

Activer Jarvis avec un switch virtuel ?

Publié : 16 déc. 2016, 18:38
par Pixelman
Bonjour, je souhaiterai pouvoir lancer Jarvis avec un interrupteur virtuel On/Off.

Pour le lancer en tache de fond la commande est simple:

Code : Tout sélectionner

/home/pi/jarvis/jarvis.sh -b
Pour le couper ce sera avec une commande vocale.

le problème est de vérifier si il est actif ou pas pour cela il y a la commande :

Code : Tout sélectionner

pgrep -lf jarvis.sh
qui si il est actif renvoie :

Code : Tout sélectionner

2624 jarvis.sh
2625 jarvis.sh
Comment récupérer savoir dans un script ou autre, si la commande ne renvoie rien ou si au contraire elle renvoie les deux lignes ?

Re: Activer Jarvis avec un switch virtuel ?

Publié : 16 déc. 2016, 21:26
par patrice
bonsoir

ps -ef |grep jarvis|wc -l

Re: Activer Jarvis avec un switch virtuel ?

Publié : 16 déc. 2016, 21:44
par Pixelman
Merci pour ta réponse j'ai trouvé une méthode qui fonctionne mais qui n'est pas la plus propre du monde.

script_time_jarvis.lua

Code : Tout sélectionner

commandArray = {}

print ("Script detection Jarvis On/Off")			-- un print pour indiquer l'execution du script dans le log

local handle = io.popen("pgrep -lf jarvis.sh")      --
local result = handle:read("*a")					-- recupere la sortie de la commande pgrep -lf jarvis.sh
handle:close()                                      -- le la met dans la variable result

if string.find(result,"jarvis.sh") then 			-- regarde si la chaine "jarvis.sh" ce trouve dans result
	if otherdevices['Jarvis'] == 'Off' then			-- si l'interrupteur est sur off
		print ("Jarvis On")
		commandArray['Jarvis']='On'					-- met le sur on
	end
else 												-- si la chaine "jarvis.sh" ne ce trouve pas dans result
	if otherdevices['Jarvis'] == 'On' then			-- si l'interrupteur est sur on
		print ("Jarvis Off")
		commandArray['Jarvis']='Off'				-- met le sur off
	end
end

return commandArray  
Ta commande me semble plus efficace dans le traitement du retour.
Mon problème maintenant est sur l’exécution du script de Jarvis.

script_device_jarvis.lua

Code : Tout sélectionner

commandArray = {}

if (devicechanged['Jarvis']) == 'On' then 
print ("jarvis On")
os.execute("/home/pi/jarvis/jarvis.sh -b")
end

return commandArray 
Jarvis ne ce lance pas. Je cherche pourquoi.