/etc/rc.local - RPiCamWebInterface Annotation %a
# Description: use /etc/rc.local to initiate a loop-script which writes to the RPiCamWebInterface Annotation (%a) file. | |
# | |
# servicectl services/timers may not run a 1 second timer at anyhting like 1 second intervals | |
# Whereas a script running a simple loop will. Particualrly if the loops timing accounts for minor variations. | |
# | |
# you can activate this either: | |
# 1) by manually adding the path/filename of the script to /etc/rc.local | |
# or | |
# 2) like I do: (as part of another script that loops through all of my pizerocams) | |
scp -q \ | |
/home/user/documents/scripts/raspberry/home/pi/piinfo.sh \ | |
$targetHost:/home/pi | |
msg1="activating:" ;msg2="user annotation %a"; f_msg | |
ssh -q $targetHost bash <<'EOF' | |
[[ -f /etc/rc.local && -z $(grep -o '/home/pi/piinfo.sh' /etc/rc.local) ]] && sudo sed -Ei 's/exit\ 0/\/home\/pi\/piinfo.sh \# services do not run evenly at actual second precision repeats so just fork a looping script\n\nexit\ 0/' /etc/rc.local | |
EOF |
#!/bin/bash | |
# for use with RPiWebCamInterface %a | |
# initiate this script via /etc/rc.local | |
# or run it as root | |
# if you run it non-root values print to console but RPCWI will not use it as annotiation (%a) | |
# | |
while :; do # services do not run evenly at actual second precision repeats, so just fork a looping script | |
startTime=$(date +%s.%3N) | |
degC="$(echo "scale=1;$(cat /sys/class/thermal/thermal_zone0/temp)/1000"|bc|sed -E 's/^\./0\./')C" | |
annotation="$HOSTNAME ${degC}" | |
# last="$(cat /dev/shm/mjpeg/user_annotate.txt|sed -E 's/.*(.)/\1/')" | |
# [[ "<" == "$last" || "C" == "$last" ]] && annotation+=" >" || annotation+=" <" | |
echo -ne "$annotation" | |
[[ "$EUID" -eq 0 ]] && echo -ne "$annotation" >/dev/shm/mjpeg/user_annotate.txt | |
sleep $(echo "scale=3; 1.000 - ( $(date +%s.%3N) - $startTime )"|bc)s | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment