Lua: lancer une application du pi ???
Lua: lancer une application du pi ???
Bonjour,
Et bien voila, je veux faire mon premier programme en Lua et je me casse les dents depuis plusieurs jour sur quelque chose qui doit surement être très simple mais que je n'ai trouvé nul par dans mes recherches sur le net.
Donc voici ce que je veux faire :
Avoir un interrupteur virtuel sur domoticz qui une fois mis sur On lance un scripte Lua qui lui même exécute un lanceur rapide .desktop sur mon Rasperry Pi.
J'ai mis dans l'interrupteur virtuel la commande :
script://home/pi/domoticz/scripts/lua/script_device_WebTV_NRJ12.lua
qui fonctionne et lance mon script.
Sur le Pi j'ai créé un lanceur qui fonctionne très bien quand je double clic dessus :
[Desktop Entry]
Version=1.0
Name[fr]=WebTV_NRJ12
Comment[fr]=Utiliser en ligne de commande
Icon=/home/pi/domoticz/www/monitor/Diriger_pi/Icons/NRJ12.jpg
Type=Application
Terminal=false
Exec=xdg-open http://www.wiiz.tv/regarder_nrj12.php
maintenant je n'arrive pas à lier le tout en Lua. Si quelqu'un veut bien m'aider...
Voici ce que j'ai essayer :
commandArray = {}
if (devicechanged['WebTV_NRJ12'] == 'On') then
os.execute('/home/pi/domoticz/www/monitor/Diriger_pi./WebTV_NRJ12.desktop')
end
return commandArray
C'est ma troisième ligne mon problème...
Et bien voila, je veux faire mon premier programme en Lua et je me casse les dents depuis plusieurs jour sur quelque chose qui doit surement être très simple mais que je n'ai trouvé nul par dans mes recherches sur le net.
Donc voici ce que je veux faire :
Avoir un interrupteur virtuel sur domoticz qui une fois mis sur On lance un scripte Lua qui lui même exécute un lanceur rapide .desktop sur mon Rasperry Pi.
J'ai mis dans l'interrupteur virtuel la commande :
script://home/pi/domoticz/scripts/lua/script_device_WebTV_NRJ12.lua
qui fonctionne et lance mon script.
Sur le Pi j'ai créé un lanceur qui fonctionne très bien quand je double clic dessus :
[Desktop Entry]
Version=1.0
Name[fr]=WebTV_NRJ12
Comment[fr]=Utiliser en ligne de commande
Icon=/home/pi/domoticz/www/monitor/Diriger_pi/Icons/NRJ12.jpg
Type=Application
Terminal=false
Exec=xdg-open http://www.wiiz.tv/regarder_nrj12.php
maintenant je n'arrive pas à lier le tout en Lua. Si quelqu'un veut bien m'aider...
Voici ce que j'ai essayer :
commandArray = {}
if (devicechanged['WebTV_NRJ12'] == 'On') then
os.execute('/home/pi/domoticz/www/monitor/Diriger_pi./WebTV_NRJ12.desktop')
end
return commandArray
C'est ma troisième ligne mon problème...
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Lua: lancer une application du pi ???
Salut,
Ne pas mettre de script lua dans action On ou action Off,
Ces scripts doivent être lancé par domoticz lui même..
Surtout que ce n'est pas utile car un script_device se lancera sur l'action de ton switch de toute façon.
D'ailleurs ton script est bien fait (à condition qu'il soit bien de type device)
A mon avis os.execute ne sait pas lancer de .desktop
Je pense qu'il est de trop...
Que donnerait
Ne pas mettre de script lua dans action On ou action Off,
Ces scripts doivent être lancé par domoticz lui même..
Surtout que ce n'est pas utile car un script_device se lancera sur l'action de ton switch de toute façon.
D'ailleurs ton script est bien fait (à condition qu'il soit bien de type device)
A mon avis os.execute ne sait pas lancer de .desktop
Je pense qu'il est de trop...
Que donnerait
Code : Tout sélectionner
os.execute('xdg-open http://www.wiiz.tv/regarder_nrj12.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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Lua: lancer une application du pi ???
merci pour l'aide, malheureusement rien non plus...
quand j'ouvre un terminal sur le pi et que je met :
xdg-open /home/pi/domoticz/www/monitor/Diriger_pi/WebTV_NRJ12
et bien cela lance bien mon lanceur et la page web s'ouvre alors que quand je fais sur ma 3ème ligne :
os.execute('xdg-open /home/pi/domoticz/www/monitor/Diriger_pi/WebTV_NRJ12')
rien ne se passe .... bizard
quand j'ouvre un terminal sur le pi et que je met :
xdg-open /home/pi/domoticz/www/monitor/Diriger_pi/WebTV_NRJ12
et bien cela lance bien mon lanceur et la page web s'ouvre alors que quand je fais sur ma 3ème ligne :
os.execute('xdg-open /home/pi/domoticz/www/monitor/Diriger_pi/WebTV_NRJ12')
rien ne se passe .... bizard
Re: Lua: lancer une application du pi ???
Regarde du côté des path... Si ça se trouve, l'utilisateur sous lequel tourne domoticz n'a pas le bon path pour trouver xdg_open
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Lua: lancer une application du pi ???
Ce n'est pas ce que j'ai dit...Phebus06 a écrit : os.execute('xdg-open /home/pi/domoticz/www/monitor/Diriger_pi/WebTV_NRJ12')
+1aleph0 a écrit :Regarde du côté des path... Si ça se trouve, l'utilisateur sous lequel tourne domoticz n'a pas le bon path pour trouver xdg_open
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Lua: lancer une application du pi ???
Pardon je me suis mal exprimé vil1driver, j'ai bien fait ce que tu m'as demandé, mais cela ne marche pas non plus...du coup j'ai aussi mis un de mes innombrable essais qui je pensais devait fonctionner.
aleph0, je suis désolé mais tu parles à un néophyte. Comment je dois faire pour vérifier les path ???
Si tu peux me donner la marche à suivre ça serai super cool. Merci
aleph0, je suis désolé mais tu parles à un néophyte. Comment je dois faire pour vérifier les path ???
Si tu peux me donner la marche à suivre ça serai super cool. Merci
Re: Lua: lancer une application du pi ???
ok, alors en un peu plus détaillétu parles à un néophyte
le PATH est une variable qui contient la liste des répertoires où le système doit regarder pour trouver un exécutable. Il peut-être configuré différemment pour chaque utilisateur.
- D'abord, on va déterminer sous quel utilisateur tourne ton domoticz. Prends un terminal sur l'ordi qui fait tourner ton domoticz et lance la commande
Code : Tout sélectionner
ps -fe | grep domoticzCode : Tout sélectionner
root 17645 2247 1 févr.26 ? 00:21:00 /usr/bin/python /usr/bin/gigasetelements-cli -tt -l /var/log/domoticz/gigaset.log
domoticz 26325 1 3 févr.26 ? 01:13:18 /opt/domoticz/domoticz -daemon -dbase /opt/domoticz/db/domoticz.db -userdata /opt/domoticz/ -pidfile /var/run/domoticz/domoticz.pid -www 8080 -sslwww 8443 -log /opt/domoticz/log/domoticz.log -loglevel 0
root 27765 19475 0 10:46 pts/0 00:00:00 grep --color domoticz
Passe ensuite sous cet utilisateur avec la commande
Code : Tout sélectionner
su domoticzCode : Tout sélectionner
sudo su domoticzPour la suite, on suppose donc que tu as eu un message d'erreur. Pour corriger, il faut savoir où est ton xdg_open. sort de l'utilisateur domoticz pour revenir à ton utilisateur "normal" (celui avec lequel ta commande marche) avec la commande
Code : Tout sélectionner
exitCode : Tout sélectionner
which xdg_openCode : Tout sélectionner
/usr/local/bin/xdg_openPour celà, 2 possibilités :
- la simple : Rajoute le dans ton os.execute :
Code : Tout sélectionner
os.execute("xdg_open blabla")Code : Tout sélectionner
os.execute("/usr/local/bin/xdg_open blabla") - la plus compliquée : Rajoute le chemin trouvé dans la variable environnement de l'utilisateur concerné. Dis moi ce que donne les tests précédents avant que je fasse une tartine qui sert à rien si le problème n'est pas celui là !
Re: Lua: lancer une application du pi ???
alors la chapeau bas, j'ai compris toutes tes explications.
Vivement ce soir que j'essaie
Vivement ce soir que j'essaie
Re: Lua: lancer une application du pi ???
donc en tapant ça dans le terminal
j'obtiens :
donc je suppose que l'utilisateur est pi
et si je fais :
alors il me demande mon mot de passe, que je met.
Puis je tape la commande :
et ça fonctionne.
Du coup je me demande si c'est le mot de passe qui empêche l'exécution de la demande dans Lua ?
Et si c'est ça, comment faire ?
Code : Tout sélectionner
ps -fe | grep domoticzet si je fais :
Code : Tout sélectionner
su piPuis je tape la commande :
Code : Tout sélectionner
xdg-open http://www.wiiz.tv/regarder_nrj12.phpDu coup je me demande si c'est le mot de passe qui empêche l'exécution de la demande dans Lua ?
Et si c'est ça, comment faire ?
Re: Lua: lancer une application du pi ???
ahah.... si je met
il ne me demande plus le code et la demande d'ouverture de la page web fonctionne...
donc il faudrait que dans le script Lua la demande soit précédée de sudo quelque part non ???
Code : Tout sélectionner
sudo su pidonc il faudrait que dans le script Lua la demande soit précédée de sudo quelque part non ???