-
Notifications
You must be signed in to change notification settings - Fork 907
Action Buttons
Starting with version 20151230, motionEyeOS can be configured to overlay buttons on top of a camera frame. These buttons will then execute custom commands when clicked.
Action buttons are particularly useful when you need to turn on/off the light next to a camera or trigger an alarm when you see an intruder entering the camera's field of view.
For more details on available actions and how they work, see the motionEye article on Action Buttons.
You'll need to decide which of the available actions is the closest to your needs. Then, using an SSH client, log in remotely to your motionEyeOS and create the corresponding file in /data/etc/
, using nano
.
Let's say that you want to turn on a light bulb that's controlled via GPIO number 18 on a Raspberry PI, when you click on the "turn light on" action button of your first camera (with id 1
). Create the following bash script:
nano /data/etc/light_on_1
Then type in (or paste) the following contents, save and exit nano (Ctrl-O, Enter, Ctrl-X):
#!/bin/bash
GPIO=18
test -e /sys/class/gpio/gpio$GPIO || echo $GPIO > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio$GPIO/direction
echo 1 > /sys/class/gpio/gpio$GPIO/value
Don't forget to make the script executable:
chmod +x /data/etc/light_on_1
Similarly, to turn off your light bulb, create a file called /data/etc/light_off_1
and change echo 1 > ...
to echo 0 > ...
.
Let's say now that you want to issue an HTTP request to a certain URL when you click the "turn alarm on" button of your second camera (with id 2
). Create the following bash script:
nano /data/etc/alarm_on_2
Then type in (or paste) the following contents, save and exit nano (Ctrl-O, Enter, Ctrl-X):
#!/bin/bash
URL="http://192.168.1.123/webhook/alarm/"
METHOD="POST"
TIMEOUT="5"
curl -X $METHOD --connect-timeout $TIMEOUT "$URL" > /dev/null
Don't forget to make the script executable:
chmod +x /data/etc/alarm_on_2