Calling Shell command

@roberto1979 here’s another link that may be of interest to you from the old HomeGenie forum

A lot of what you are probably trying to achieve has probably already been done in the old forum. That’s where most users get their tips from. A google search should include the words old HomeGenie forum which allows you to search the old HomeGenie forum. You should find most of what you are looking for that way.

Hi Pretediscrete,
Thank you for your answer.
As I said a few posts above, unfortunately I have already tried all these methods of your links present in the old homegenie forum.
I have also tried to change file permissions, and much more, but it doesn’t work.
Please, maybe are you able to send a shell command with other methods (although less secure), exactly as if you were typing via ssh? (For example using python or Java?)

Have you tried the following. This should sort out your PATH issues

In order to rule out privileges issues from within HG have you tried using sudo /home/pi/share/

@roberto1979 your issue may e you haven’t made your sh file executable. If it isn’t ececutable it wont run

I think he’s already stated that he has it running from the command line in the OP.

Thanks for your answers. Unfortunately I have already tried all these things. I made the executable file, granted privileges to the file, to the directory, and much more…
This is why I was wondering if perhaps you are able to send commands in other ways, for example via phyton script.

P.S.I use this bash file, to launch an RF command using a Phyton script of rpi-rf. The strange thing, of which I don’t know the reason, (but maybe could help you to understand the problem), is that if I add sudo to the from the shell, I get an error. So, i can lunch the program simple with the command “”, but not with the command “sudo”.

Did you set the privileges and permissions correctly when using the chmod command to create your executable script. Type ls -l at the command line and paste the output

Did you add a shebang as the first line of your script like this

#! /bin/bash

and set the executable rights like this

sudo chmod +x

1 Like

Currently the file permissions are root root … I had also tried with Pi … all user…

[email protected]:/ $ ls -l
-rwxr-xr-x 1 root root 63 nov 10 02:01

Could you post your script

#! /bin/bash
cd /
/usr/bin/python3 /usr/local/bin/homegenie/ 000000

What version of Python are you using. If I recall HG only supported Python 2.x yet you are using a Python 3.x script

What does python —version report

Homegenie uses python2 … But by running the script from Shell I use python3 and all work fine. (rpi-rf call a python3).
Recalling the file from Shell, it should not affect the Pyhthon version of HG, is that correct? (In fact from Shell the Bash file is executed correctly).

and… The system default Python version is 2.7… but the script calls python3 for the execution of the preogram.

Please, also consider that the script works without any problems even from the raspbian crontab…For this reason I was wondering if perhaps you are able to call the script from homegenie via other ways…

What exactly is the purpose of your Python program. What does it do and why did you create it in Python 3.

Mixing Python versions is not something I’ve ever needed to do but this might give you an insight into how it can be done.

I’m assuming you created your bin bash script correctly, made it executable properly and had the absolute path correctly defined.

As you say it runs fine from the cli so I imagine your problem is either path related or there’s a problem between Python versions.

Ok I remember seeing a problem similar to yours in the old forum. Read through this as it may contain a solution for you. It explains why you can run as a user from the command line but not as sudo

1 Like

Thank you very much Tuiceman and Pretediscrete, because with your help I finally managed to send the Shell command via HG.

I don’t know why, but after so many tests this is the complete script that works:

var proc = new System.Diagnostics.Process {
StartInfo = new System.Diagnostics.ProcessStartInfo {
FileName = “/bin/bash”,
Arguments = "-c “sudo -H -u pi " + “”/usr/local/”,
UseShellExecute = false,
RedirectStandardOutput = true,
Program.Notify("xxx: ", “xxx”);