[SOLVED] Exekvera .py från Bashfil

Moderators: hekj, Telldus

Post Reply
AWulff
Posts: 10
Joined: Thu Jan 18, 2018 11:08 am

[SOLVED] Exekvera .py från Bashfil

Post by AWulff » Thu Jan 18, 2018 11:08 am

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!
Last edited by AWulff on Wed Oct 05, 2016 1:50 pm, edited 1 time in total.

tingo
Posts: 30
Joined: Thu Jan 18, 2018 11:08 am
Location: Oslo, Norway

Re: Exekvera .py från Bashfil

Post by tingo » Thu Jan 18, 2018 11:08 am

Noe sånt i scriptet

Code: Select all

/usr/bin/python /sti/og/navn.py
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.
Torfinn

hekj
Posts: 986
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm
Contact:

Re: Exekvera .py från Bashfil

Post by hekj » Thu Jan 18, 2018 11:08 am

NexaHome beanshell, ersätt filnamnet 203 med ditt eget device id.

203.bsh

Code: Select all

execFile("/usr/bin/python");
execParam("/home/pi/nexahome/python_test.py");
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

AWulff
Posts: 10
Joined: Thu Jan 18, 2018 11:08 am

Re: Exekvera .py från Bashfil

Post by AWulff » Thu Jan 18, 2018 11:08 am

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.

Post Reply