I hadn't followed this topic before, but if you have a machine you can run perl on, this is trivially easy. I just whipped up this script and tested it. Replace the callsign, recipient, and sender addresses, and run it periodically.<div>
<br></div><div>It will store the last position found for the callsign, then, then next time it runs, if the lat/long differ, it will send an email. Most cell providers provide an email gateway to allow you to email SMS messages to someone.</div>
<div><br></div><div>Obviously you'd want to surpress position changes within some window ( i.e., less than 100 feet ). Plus probably some more error checking. ;-)</div><div> <br><div>---</div><div><div>#!/usr/bin/perl</div>
<div><br></div><div>use strict;</div><div>use Ham::APRS::LastPacket;</div><div>use Storable;</div><div>use Email::Sender::Simple qw(sendmail);</div><div>use Email::Simple;</div><div>use Email::Simple::Creator;</div><div>
<br>
</div><div><br></div><div>my $callsign = "MYCALLSIGN";</div><div>my $recipient = "blah\@<a href="http://blah.com">blah.com</a>";</div><div>my $sender = "myposition\@<a href="http://blah.com">blah.com</a>";</div>
<div>my %lastPosition;</div><div><br></div><div>my $aprs = Ham::APRS::LastPacket->new;</div><div>$aprs->set_callsign($callsign);</div><div><br></div><div># Load the last position, if we've stored it</div><div>if( -r $callsign ) {</div>
<div> %lastPosition = %{retrieve $callsign};</div><div>}</div><div><br></div><div><br></div><div>my $packet = $aprs->get_data;</div><div>die $aprs->error_message if $aprs->is_error;</div><div><br></div><div># get the position report</div>
<div>print "$callsign is at $packet->{position}->{latitude}->{degrees},$packet->{position}->{longitude}->{degrees}\n";</div><div><br></div><div># If the position has changed, send out an email</div>
<div>if( ( $lastPosition{latitude} != $packet->{position}->{latitude}->{degrees} ) ||</div><div> ( $lastPosition{'longitude'} != $packet->{position}->{longitude}->{degrees} ) ) {</div><div> sendEmail();</div>
<div>}</div><div><br></div><div># Save the position</div><div>$lastPosition{'latitude'} = $packet->{position}->{latitude}->{degrees};</div><div>$lastPosition{'longitude'} = $packet->{position}->{longitude}->{degrees};</div>
<div>store \%lastPosition, $callsign;</div><div><br></div><div><br></div><div>sub sendEmail {</div><div> print "Sending a movement report\n";</div><div><br></div><div> my $email = Email::Simple->create(</div>
<div> header => [</div><div> To => $recipient,</div><div> From => $sender,</div><div> Subject => "$callsign position report",</div><div> ],</div><div> body => "$callsign has moved",</div>
<div> );</div><div><br></div><div>sendmail($email);</div><div>}</div><div><br></div><br><div class="gmail_quote">On Wed, Feb 16, 2011 at 12:19 AM, Steve Hanis <span dir="ltr"><<a href="mailto:dmesteve@gmail.com">dmesteve@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">On Tue, Feb 15, 2011 at 10:22 PM, John Gorkos <<a href="mailto:jgorkos@gmail.com">jgorkos@gmail.com</a>> wrote:<br>
><br>
> On Friday, February 11, 2011 09:51:24 AM Steve Hanis wrote:<br>
> > Hi John,<br>
> ><br>
> > I have no intention of irritating anyone one the list, and apologize<br>
> > if I have done so. I haven't written any programs since college back<br>
> > in the early 90's and don't consider myself programmer, I use Linux<br>
> > occasionally. I was made aware of this list after I posed this same<br>
> > question on the APRS Yahoo group.<br>
> ><br>
> > What I am looking for is something like what is described on<br>
> > <a href="http://www.aprs.org/aprs-messaging.html" target="_blank">http://www.aprs.org/aprs-messaging.html</a>:<br>
> ><br>
> > "APRS Messages to Your Cellphone: . N3FLR Frank Rossi reports that he<br>
> > uses "YahooAlert" to send all of his APRS messages to his cell phone.<br>
> > First, Find-U has RSS output capability so he has his computer RSS<br>
> > Feed Reader watching his Feed From FindU, and YahooAlert also<br>
> > watching. After setting up Yahoo Alert for a pager, he uses his<br>
> > phone's text e-mail address such as <a href="mailto:xxxxxxxxxx@txt.att.net">xxxxxxxxxx@txt.att.net</a> . Then you<br>
> > just need to know what your phone's "e-mail address" to "text address"<br>
> > is. You don't need mobile internet to do it this way, just text<br>
> > ability. That will work with a text pager also. . When FINDU sees a<br>
> > message to him on APRS it generates an RSS Feed that now Yahoo-Alerts<br>
> > is watching. YahooAlerts then forwards the RSS Message as Text to his<br>
> > cell phone. Although this is only one way communications, it still<br>
> > lets him receive his APRS messages. He also says that you can set up<br>
> > RSS feeds from FindU for weather alerts, or APRS users X amount of<br>
> > miles from you. You can make the miles anything you want. He has not<br>
> > tried that function yet."<br>
> ><br>
> > I've tried this to no avail, but was wondering if anyone else had come<br>
> > up with a different way to accomplish the same goal. I have no<br>
> > commercial interest in this, I just want to be pinged on my cell phone<br>
> > (SMS, Email, IM) when my friend goes mobile, or for special cases like<br>
> > a high altitude balloon with a known call sign goes active on APRS.<br>
> ><br>
> > Kind Regards,<br>
> > Steve<br>
> ><br>
> > On Fri, Feb 11, 2011 at 7:35 AM, John Gorkos <<a href="mailto:jgorkos@gmail.com">jgorkos@gmail.com</a>> wrote:<br>
> > > It "can" be done. It hasn't yet. What you're asking for is 4-6 hours of<br>
> > > custom coding (mostly for the web interface). Do you have a web server<br>
> > > that can host something like this? I've got a few hours this weekend I<br>
> > > can use to code this.<br>
> > > Let me make sure I've got the requirements right:<br>
> > > You want a web interface that allows you to enter a "monitored" call<br>
> > > sign, and an email address to send a message to when that position<br>
> > > report from that monitored callsign indicates movement. You want one<br>
> > > message only. Then, time passes and the monitored station stops moving.<br>
> > > Once the station starts moving again, you want another text message.<br>
> > > The SMS messages will have to be sent via email (i.e.<br>
> > > <a href="mailto:2125551212@sms.verizon.com">2125551212@sms.verizon.com</a>), since a direct SMS interface is spendy and<br>
> > > less standard.<br>
> > ><br>
> > > Do you have any programming skills you could apply to this? Web design,<br>
> > > maybe? I hate web design, but the back-end portion isn't too difficult.<br>
> > > This request will probably irritate some people on this list, FWIW.<br>
> > > Everyone has an imaginary line they draw between "ham radio" and<br>
> > > "commercial radio and internet." Using your cellphone/commercial radio<br>
> > > to get updates about APRS happenings on ham radio is probably on the far<br>
> > > side of some peoples' lines.<br>
> > ><br>
> > > John Gorkos<br>
> > > AB0OO<br>
> > ><br>
> > > On Thursday, February 10, 2011 18:48:04 Steve Hanis wrote:<br>
> > > > Thank you for your reply. I am looking for a way to trigger an email,<br>
> > > > IM or SMS using existing web interfaces. A way to "push" an alert to<br>
> > > > me when I am working or relaxing at home. Can this be done?<br>
> > > > Kind Regards,<br>
> > > > Steve<br>
> > > ><br>
> > > ><br>
> > > ><br>
> > > > On Tue, Feb 8, 2011 at 10:41 AM, Guido Trentalancia<br>
> > > > <<a href="mailto:iz6rdb@trentalancia.com">iz6rdb@trentalancia.com</a><br>
> > > ><br>
> > > > > wrote:<br>
> > > > ><br>
> > > > > Hello Steve !<br>
> > > > ><br>
> > > > > On Mon, 07/02/2011 at 22.19 -0600, Steve Hanis wrote:<br>
> > > > > > A friend and I just starting using APRS. Is there way to trigger a<br>
> > > > > > SMS<br>
> > > > ><br>
> > > > > text<br>
> > > > ><br>
> > > > > > message or email via Internet monitoring when his APRS goes active<br>
> > > > > > or<br>
> > > > ><br>
> > > > > moving?<br>
> > > > ><br>
> > > > > > This would let me know he is mobile and available to chat or view<br>
> > > > > > his<br>
> > > > ><br>
> > > > > location<br>
> > > > ><br>
> > > > > > on a map. My apologies if the question is too simplistic for this<br>
> > > > > > list, I am a newbie.<br>
> > > > > ><br>
> > > > > > Thanks,<br>
> > > > > > Steve<br>
> > > > > > AB5ID<br>
> > > > ><br>
> > > > > Suppose your friend has call AB4HB, then you could use something<br>
> > > > > like:<br>
> > > > ><br>
> > > > > FROMEMAILADDRESS=<a href="mailto:dmesteve@gmail.com">dmesteve@gmail.com</a><br>
> > > > > MYEMAILADDRESS=<a href="mailto:dmesteve@gmail.com">dmesteve@gmail.com</a><br>
> > > > > APRSCALLSIGN=AB4HB<br>
> > > > > SMTP_SERVER=<a href="http://smtp.ab5id.org" target="_blank">smtp.ab5id.org</a><br>
> > > > > axlisten -a | grep -q " fm $APRSCALLSIGN to " && echo "An APRS packet<br>
> > > > > from $APRSCALLSIGN has been heard" > /tmp/aprs_message.txt && env<br>
> > > > > MAILRC=/dev/null from=$FROMEMAILADDRESS smtp=$SMTP_SERVER mailx -v -n<br>
> > > > > -s "Mail from APRS" $MYEMAILADDRESS < /tmp/aprs_message.txt && rm -f<br>
> > > > > /tmp/aprs_message.txt<br>
> > > > ><br>
> > > > > Note that APRSCALLSIGN is case sensitive (unless you pass the -i<br>
> > > > > option to grep). Note that SMTP_SERVER needs to be defined according<br>
> > > > > to your actual smtp server.<br>
> > > > > Most importantly note that the above will send out an email message<br>
> > > > > for every packet that is received from APRSCALLSIGN and this might<br>
> > > > > not be desirable as there might be a lot of packets coming<br>
> > > > > continuously (so you might do things better with some extra code<br>
> > > > > that checks whether a message has already been sent recently, for<br>
> > > > > example by creating a temporary file each time a message is sent and<br>
> > > > > then checking that the timestamp of such file is not too recent<br>
> > > > > before sending a new email message).<br>
> > > > ><br>
> > > > > Or otherwise you can download a tiny program that I wrote<br>
> > > > > (ax_emergency_listen) which is generally used to monitor APRS<br>
> > > > > emergency packets and adapt it to your needs (by modifying the C<br>
> > > > > source code):<br>
> > > > ><br>
> > > > > <a href="http://iz6rdb.trentalancia.com/en/aprs_igate.html" target="_blank">http://iz6rdb.trentalancia.com/en/aprs_igate.html</a><br>
> > > > ><br>
> > > > > 73,<br>
> > > > ><br>
> > > > > Guido IZ6RDB<br>
><br>
> Believe it or not, I've not forgotten about this. I've spent about 10 hours<br>
> so far doing design and outline work on the code. I've also had to hunt down<br>
> some extremely nasty off-by-one bugs in the Java AVRS position parsers. Now<br>
> that I'm getting reliable, accurate positions from all 4 types of position<br>
> packets (compressed, uncompressed, MICe, and raw NMEA) I can move on to<br>
> alarms.<br>
> In the AVRS sourceforge repo, there is a new package called Wedjet<br>
> (net.ab0oo.aprs.wedjet) that contains some rudimentary code for monitoring<br>
> positions. The alerting portion will come later. I'm using a Spring-injected<br>
> Jetty container as a base web-server, so the whole thing can be self-<br>
> contained.<br>
> Give me another few days and I'll have something you can play with. Once we<br>
> reach a stable beta point, we'll look for hosting options.<br>
><br>
> John Gorkos<br>
> AB0OO<br>
<br>
</div></div>John,<br>
<br>
A sincere thank you. I had no idea how much work would be involved.<br>
<br>
Kind Regards,<br>
Steve<br>
AB5ID<br>
<div><div></div><div class="h5"><br>
_______________________________________________<br>
aprssig mailing list<br>
<a href="mailto:aprssig@tapr.org">aprssig@tapr.org</a><br>
<a href="https://www.tapr.org/cgi-bin/mailman/listinfo/aprssig" target="_blank">https://www.tapr.org/cgi-bin/mailman/listinfo/aprssig</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><a href="mailto:rich@mulveyfamily.com">rich@mulveyfamily.com</a><br>
</div></div>