Raspberry Pi setup
-
@russ said in Raspberry Pi setup:
systemctl start triggercmdagent
Hi, i'm curious - i use python scripts to trigger my gpio pins on my raspberry... it appears that these are "Foreground" tasks... how do i do this in the background (so that when the pi reboots - it loads automatically again)
Any tips?
-
@atmosphere, in your commands.json file, make the ground field background instead of foreground. That way it will run in the context of the background service.
{ "trigger": "GPIO 6 on", "command": "python /root/gpio6on.py", "ground": "background", "voice": "6 on" },
Run this to install the background service:
/usr/share/triggercmdagent/app/src/installdaemon.sh
-
Hi Russ..
Could you give me some tips about how to remove it from raspbian?
Thank you
-
@gutopa, you could uninstall the Raspberry Pi agent using these commands:
systemctl stop triggercmdagent /usr/share/triggercmdagent/app/src/removedaemon.sh apt remove triggercmdagent
Then you should delete the computer from your account on the website.
-
hello! my end goal is to launch an html file on my raspberry pi 3b+ using IFTTT (i have a small display plugged into my pi on which i'm expecting to see the file). i'm fairly sure i've gotten everything set up correctly in that i can see evidence of the command having run in IFTTT, my TRIGGERcmd dashboard, and in the CLI when i run "systemctl status triggercmdagent".
i have almost no native idea what i am doing, but i'm a pretty good tinkerer and an excellent copy-and-paster so the command i cobbled together is:
{"trigger":"myTriggerName","command":"chromium-browser file:///home/pi/myFile.html","ground":"background","voice":"myTriggerName","allowParams":"false"}when i try to trigger that command via IFTTT or my TRIGGERcmd Triggers list, nothing actually happens other than the three locations i mention above showing some acknowledgement that the command was run. but when i run "chromium-browser file:///home/pi/myFile.html" via the CLI, the file opens in chromium exactly as i expect, so this all leads me to believe i have formatted the command incorrectly somehow.
any help here would be much appreciated!
-
@erin-leiker, I think the problem is you're running the triggercmd agent as a background daemon, and your command is running with "ground": "background", so you can't see the result of your command.
So to make it work, you'll need to:
- Run the agent in the foreground by running the "triggercmdagent" command in a terminal window in X Windows.
- Trigger your command in the foreground with "ground": "foreground" in your commands.json file.
-
@russ thank you for the tips! i did some googling on x windows, and it sounds like it's a way to access or view the pi remotely. do i still need x windows if i have the pi booting to the desktop and i have a screen on it so i can access it directly?
i updated the trigger to "foreground" and tried running triggercmdagent from the cli, but still i just see the log of the command having been run instead of the results of the command (opening that html file).
-
@erin-leiker, that's interesting. You might need to specify the full path of chromium-browser, so your command would be something like:
/path/to/chromium-browser file:///home/pi/myFile.html
To find the path, type this:
which chromium-browser
If you're booting to the GUI, that's X Windows. I'll boot up one of my Pi's and see if I can reproduce the problem you're having.
EDIT: I tried it on my Pi. I found that it worked with or without the full path. I tried /usr/bin/chromium-browser and just chromium-browser and both worked for me, so I don't know what's wrong in your case.
Can you try a simpler command, like echo Testing >> /tmp/test.txt ?
When I did that, it created a /tmp/test.txt file when I remotely ran the command.
-
@russ whew, i think i figured it out! if i'm right, it all comes down to users.
the instructions for installing on a raspberry pi are based on running all the commands/installations as a root user. the "chromuim-browser" command does not work when executed as the root user, only the default "pi" user. so i switched the command from "chromium-browser" to "xdg-open", which does essentially the same thing for my purposes, and it worked! well, almost.
i'm trying to launch an html file, and the mime type is "text/html" which opens with chromium by default for the pi user (yay!), but with the geany text editor for root (boo). i solved this by tweaking the command to run under the pi user, and it works as expected!
{"trigger":"myTriggerName","command":"su - pi -c 'xdg-open /home/pi/myFile.html'","ground":"foreground","voice":"myTriggerName","allowParams":"false"}
the only downside is that there is a noticeable delay in triggering this command. and i also have to open a terminal window, switch to the root user, and then run "triggercmdagent" before i can successfully trigger it. with this info, do you happen to know if/how i can:
-
auto run triggercmdagent on boot? the install instructions seem to state that it will launch in the background on boot, so i changed the command to "background" but no dice. still have to run triggercmdagent from terminal as root.
-
run/install triggercmdagent under the pi user instead of root? i think that would help speed up the execution of the command significantly.
thank you so much!
-
-
@erin-leiker, please give this a try:
- Run this as your pi user to allow root to send stuff to your pi user's Xwindows:
xhost si:localuser:root
- Install the background service as root with:
/usr/share/triggercmdagent/app/src/installdaemon.sh
- Make sure this variable is set when your command runs as root in the context of your triggercmdagent:
export DISPLAY=:0.0
Your agent will be running in background mode, so the commands need "ground": "background" to run that way.
I suggest testing with galculator. It's an xwindows calculator app.