Page 1 of 1

[SOLVED] Exekvera .py från Bashfil

Posted: Fri Mar 17, 2023 9:45 am
by AWulff
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!

Re: Exekvera .py från Bashfil

Posted: Fri Mar 17, 2023 9:45 am
by tingo
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.

Re: Exekvera .py från Bashfil

Posted: Fri Mar 17, 2023 9:45 am
by hekj
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

Re: Exekvera .py från Bashfil

Posted: Fri Mar 17, 2023 9:45 am
by AWulff
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.