Hej,
Jag har en installation av nexahome på en raspberry pi där jag har en sensor kopplad som en dummy-enhet. Jag har sen skapat en .bsh-fil i nexahomekatalongen som triggas av sensorn för att kunna utföra vissa kommandon. I det här fallet så skickar den ett kommando gällande deviceOn för att tända en lampa när sensorn löser ut. Så långt fungerar allt fint.
Vad jag nu skulle vilja göra är att i Bashscriptet exekvera ett Pythonscript i en fil i nexahome-katalogen som i sin tur skickar instruktioner till tjänsten Pushover för att skicka en pushnotis till min telefon.
Pythonscriptet fungerar bra om jag exekverar det manuellt från terminalen. Och Bashscriptet fungerar så långt att lampan tänds. Men hur kan jag få Bashscriptet att köra Pythonscriptet? Jag är nybörjare på detta så tänk dig att du pratar med en tolvåring eller något i den stilen
Stort tack på förhand!
[SOLVED] Exekvera .py från Bashfil
[SOLVED] Exekvera .py från Bashfil
Last edited by AWulff on Wed Oct 05, 2016 1:50 pm, edited 1 time in total.
Re: Exekvera .py från Bashfil
Noe sånt i scriptet
for eksempel?
Du må selvfølgelig justere slik at det passer ditt miljø, eksempelvis dersom python finnes et annet sted enn /usr/bin, eller den heter python3, osv.
Håper dette hjelper.
Code: Select all
/usr/bin/python /sti/og/navn.py
Du må selvfølgelig justere slik at det passer ditt miljø, eksempelvis dersom python finnes et annet sted enn /usr/bin, eller den heter python3, osv.
Håper dette hjelper.
Torfinn
Re: Exekvera .py från Bashfil
NexaHome beanshell, ersätt filnamnet 203 med ditt eget device id.
203.bsh
python_test.py
203.bsh
Code: Select all
execFile("/usr/bin/python");
execParam("/home/pi/nexahome/python_test.py");
Code: Select all
#!/usr/bin/python
print "Hello world"
2016-10-01 15:29:23 Script executed (203.bsh), result: [[exec, /usr/bin/python, /home/pi/nexahome/python_test.py]]
2016-10-01 15:29:23 Exec (python)
2016-10-01 15:29:23 Output: Hello world
Henrik | http://easyhomeauto.se
Re: Exekvera .py från Bashfil
Tack för svar och tips.
Jag löste det slutligen med:
Process P = Runtime.getRuntime().exec("python3 mittfilnamn.py");
i bashfilen.
Pythonfilen ligger i samma mapp som Bashfilen. Pythonfilen är exekverbar med chmod +x.
Om det är någon som är intresserad av detta och vill göra liknande saker så fungerar det toppenbra.
Jag löste det slutligen med:
Process P = Runtime.getRuntime().exec("python3 mittfilnamn.py");
i bashfilen.
Pythonfilen ligger i samma mapp som Bashfilen. Pythonfilen är exekverbar med chmod +x.
Om det är någon som är intresserad av detta och vill göra liknande saker så fungerar det toppenbra.