send ssh command via script possible?
Moderator: leecollings
-
- Posts: 232
- Joined: Wednesday 17 February 2016 22:55
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: Germany
- Contact:
send ssh command via script possible?
Hi, I have a question.
With a virtual switch in domoticz I would like to switch a camera on another Raspberry.
With command in a terminal ssh [email protected] "echo 'motion_enable on' > /home/pi/pikrellcam/www/FIFO" I can enable motion and with off disable.
I tried to integrate the command into event lua script without success.I got unexpected symbol '@' near pi. Is it possible to use ssh in event or do I have to use a seperate script?
Any help would fine,
Thx and regards Mike
With a virtual switch in domoticz I would like to switch a camera on another Raspberry.
With command in a terminal ssh [email protected] "echo 'motion_enable on' > /home/pi/pikrellcam/www/FIFO" I can enable motion and with off disable.
I tried to integrate the command into event lua script without success.I got unexpected symbol '@' near pi. Is it possible to use ssh in event or do I have to use a seperate script?
Any help would fine,
Thx and regards Mike
Re: send ssh command via script possible?
Use a separate bash script which you call from LUA (os.execute) maybe?
- cyberclwn
- Posts: 103
- Joined: Thursday 20 August 2015 22:53
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: The Netherlands
- Contact:
Re: send ssh command via script possible?
Hey,
If you use a switch, can't you use the "On Action" field?
I use that to turn on/off the screen of another pi (which i use as a PhotoFrame.)
The setup is like
the script contains:
(it has to run with user "pi" because i have setup trusted ssh-login, so no password required)
And i have another for the turning off part.
That script then calls another script on the "receiving" pi called start_slideshow.sh.
I have done this because that script also uses the "and that messes up the first script.
But i use for another script, that doesn't use much "or ' this:
Hope that helps
If you use a switch, can't you use the "On Action" field?
I use that to turn on/off the screen of another pi (which i use as a PhotoFrame.)
The setup is like
Code: Select all
script:///home/pi/start_fotolijstje.sh
Code: Select all
runuser -l pi -c "ssh -n -f <user>@<ip or hostname> '~/start_slideshow.sh > /dev/null 2>&1 &'"
And i have another for the turning off part.
That script then calls another script on the "receiving" pi called start_slideshow.sh.
I have done this because that script also uses the "and that messes up the first script.
But i use for another script, that doesn't use much "or ' this:
Code: Select all
runuser -l pi -c "ssh -n -f <user>@<ip or hostname> 'irsend SEND_ONCE something something'"
3xPi 2B (Domoticz "live", Domoticz "sandbox", PhotoFrame)
RFXCom433(E), KaKu, Oregon Scientific, Keyes 2-relay, Logitech Media Server, MiLight, Smartwares heating controller(2x), IR Send/Receive, Keyes PIR, XH-M131 DuskSensor, DHT22/11
RFXCom433(E), KaKu, Oregon Scientific, Keyes 2-relay, Logitech Media Server, MiLight, Smartwares heating controller(2x), IR Send/Receive, Keyes PIR, XH-M131 DuskSensor, DHT22/11
- Egregius
- Posts: 2582
- Joined: Thursday 09 April 2015 12:19
- Target OS: Linux
- Domoticz version: v2024.7
- Location: Beitem, BE
- Contact:
Re: send ssh command via script possible?
Why not just do a curl of the command to pikrellcam?
You can also trigger a record, in case motion detect didn't work or something.
I have this when someone presses the doorbell:
wich records a movie 5 seconds before the doorbell and 55 seconds after it.
And to answer to your original question:
Best way to go is enable login without password, with a certificate. Then you can use that certificate to login and send your commands
This is a command that is in my backup script.
Code: Select all
http://192.168.2.11/fifo_command.php?cmd=motion_enable%20on
http://192.168.2.11/fifo_command.php?cmd=motion_enable%20off
I have this when someone presses the doorbell:
Code: Select all
http://192.168.2.11/fifo_command.php?cmd=record%20on%205%2055
And to answer to your original question:
Best way to go is enable login without password, with a certificate. Then you can use that certificate to login and send your commands
This is a command that is in my backup script.
Code: Select all
ssh [email protected] -p 1234 -i /root/.ssh/certificate "rm -f /volume1/homes/Guy/backup/domoticz/__prev; ln -s /volume1/homes/Guy/backup/domoticz/$NOW /volume1/homes/Guy/backup/domoticz/__prev;
-
- Posts: 232
- Joined: Wednesday 17 February 2016 22:55
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: Germany
- Contact:
Re: send ssh command via script possible?
I took egregius code and put it direct in domoticz into my virtual switch. It works but each time when I change the switch I got an error in domoticz.
Error: Error opening url: http://192.x.x.x/fifo_command.php?cmd=m ... nable%20on
or Error: Error opening url: http://192.x.x.x/fifo_command.php?cmd=m ... able%20off
the other way.
Does anyone know why?
Thx
Error: Error opening url: http://192.x.x.x/fifo_command.php?cmd=m ... nable%20on
or Error: Error opening url: http://192.x.x.x/fifo_command.php?cmd=m ... able%20off
the other way.
Does anyone know why?
Thx
- Egregius
- Posts: 2582
- Joined: Thursday 09 April 2015 12:19
- Target OS: Linux
- Domoticz version: v2024.7
- Location: Beitem, BE
- Contact:
Re: send ssh command via script possible?
Maybe because there's nothing in the response? Don't know. I don't use on/off actions, they're to slow.
-
- Posts: 232
- Joined: Wednesday 17 February 2016 22:55
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: Germany
- Contact:
Re: send ssh command via script possible?
@egregius With blockly, some virtual switches, real switches and sensors and a keypad I built a simple alarm system. By arm the system with the keypad I turn motion enable on pikrellcam. I already took your code from pikrellcam to turn a virtual switch in Domoticz. If motion detected and alarm armed I will get an email. I don't want to create video files all-day long, I need them just when nobody is at home. My experience in writing scripts is nearly zero. That's the reason why I always try to keep it as simple as possible. I read a lot in forums to find something which is similar to my problems. Sometimes I'm lucky to find a solution. And this time I asked here and got the right answer from you. Thank you very much and also to all the others who taking time to answer questions of a noob.
What do you mean with maybe there's nothing in the response?
Regards Mike
What do you mean with maybe there's nothing in the response?
Regards Mike
- Egregius
- Posts: 2582
- Joined: Thursday 09 April 2015 12:19
- Target OS: Linux
- Domoticz version: v2024.7
- Location: Beitem, BE
- Contact:
Re: send ssh command via script possible?
If you open that url in a browser the command is accepted, but not one character is returned. Maybe Domoticz expect something in return.
You could edit the fifo_command.php file in pikrellcam and add something simple like this:
Then the page will return a simple 'ok' and maybe that's enough to get rid of the error.
You could edit the fifo_command.php file in pikrellcam and add something simple like this:
Code: Select all
<?php
require_once(dirname(__FILE__) . '/config.php');
$fifo = fopen(FIFO_FILE,"w");
fwrite($fifo, $_GET["cmd"]);
fclose($fifo);
echo 'ok';
-
- Posts: 232
- Joined: Wednesday 17 February 2016 22:55
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: Germany
- Contact:
Re: send ssh command via script possible?
I put your code in fifo_command.php, the domoticz switch didn't change pikrellcam anymore. And I wasn't able to reboot pikrellcam with the reboot button in UI. I deleted your code and am able to enable/disable motion and get no error messages anymore . If it stay like this I'm happy even if it is strange.
Who is online
Users browsing this forum: No registered users and 0 guests