Skip to content

Instantly share code, notes, and snippets.

@km4ack
Created January 6, 2019 17:01
Show Gist options
  • Save km4ack/5a2c11b180db77f51559d2a9f35297d1 to your computer and use it in GitHub Desktop.
Save km4ack/5a2c11b180db77f51559d2a9f35297d1 to your computer and use it in GitHub Desktop.
Text Alert for JS8Call Messages
#!/bin/bash
#this script will read the js8 message database
#and send a text message via JS8 to alert you that
#you have messages waiting in JS8
#This script should be run by cron every 30-60 minutes
#This script will continue to alert you until the message
#flag has been cleared in JS8
#Hint: Enter line below in crontab to run every 30 minutes
# */30 * * * * /usr/local/bin/js8alert
#Thanks to Jerry K7AZJ for help cleaning up this script!!
#This script is provided AS IS
#Feel free to mod for your use
#km4ack 20190106
########USER VARIABLES#############
#Enter phone number or alias to text with alert
#more about alias at http://smsgte.wixsite.com/smsgte
#remove me on line below and add phone number. example phone=5551234567
phone=me
#alert text to send to mobile device
#You can change what is in quotes on next line
alert="You have JS8 msgs"
#######END USER VARIABLES#########
#check if sqlite3 is installed
#and give option to install if not
pkg=$(dpkg -l | grep 'sqlite3 ')
if [[ -z "$pkg" ]]; then
echo "SQLite is not installed on this machine"
echo "Would you like to install it now?"
echo "yes or no"
read ans
if [ $ans = "yes" ]
then
sudo apt-get install -y sqlite3
echo
echo
echo "Install Successful"
else
exit 0
fi
else
echo
fi
DBF=$HOME/.local/share/JS8Call/inbox.db3
OUTDIR=$HOME/temp
OUTFILE=$OUTDIR/temp-dbsearch.txt
# make sure the output directory exists
mkdir -p $OUTDIR
# sqlite3 allows us to do a command from the command line
sqlite3 $DBF 'select * from inbox_v1;' > $OUTFILE
# grep "UNREAD" in the output file, we don't care about results, just whether it found any
grep -q "UNREAD" $OUTFILE > /dev/null
# grep -q will set exit variable $? 0 = "UNREAD" found, 1 = not found
if [ "$?" == "0" ]; then
#forward the alert to JS8 for sending
value="\"@ALLCALL APRS::SMSGTE :@${phone} ${alert}\""
printf '{"params": {}, "type": "TX.SEND_MESSAGE", "value": %s}\n' "${value}" | nc -l -u -w 10 2237
else
echo "No New Messages"
fi
#remove temp text file
rm -f $OUTFILE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment