Find my iDevices!

Posted on
Sun Jun 19, 2011 6:58 am
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Find my iDevices!

Folks,

It's time!

The new version of Find My iPhone has been tested, and I'm confident to open it up to outside Beta testors!

Please note, it's now called "Find My iDevices".

It has a new improved Google Maps viewer... The only issues I have seen are:

1 - MobileMe seems to be caching location information... So I have seen a issue where the time/stamp on the location isn't up to date...

2 - MobileMe sometimes takes quite a while to retrieve location information, which can make the process slow down quite a bit if you have multiple idevices... (I'm testing with 8 )

If a device can't be located, it won't be on the google maps display...

Next steps:

* A table that lists all idevices, even the ones that can't be located.
* Options to remote lock the device

Future steps:

* Option to send a remote message
* Option to remote wipe a device

Please contact me, via benjamin AT schollnick DOT net if you are interested in beta testing.

Oh, and by the way, Happy Fathers Day!

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Thu Jun 23, 2011 6:45 am
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Re: Find my iDevices!

bschollnick2 wrote:
Please note, it's now called "Find My iDevices".

It has a new improved Google Maps viewer...


Now that the beta is actually shipping, I wanted to include a screen shot of it...

Image

As you can see, dramatic differences from the original Find my iPhone.

The next step will be in adding the ability to find how far away a device is from your "home location".

Please contact me, if you wish to help beta test the plugin.

v0.85 - http://dl.dropbox.com/u/241415/Find%20M ... 0v0.85.zip

v0.90 - will be available soon...
Last edited by bschollnick2 on Sat Jun 25, 2011 9:56 pm, edited 1 time in total.

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Sat Jun 25, 2011 8:30 pm
hammer32 offline
Posts: 66
Joined: May 13, 2006
Location: Copperas Cove, TX

Re: Find my iDevices!

Do you have a link to download?

Thanks!

Posted on
Sat Jun 25, 2011 9:55 pm
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Re: Find my iDevices!

hammer32 wrote:
Do you have a link to download?

Thanks!


Opps....

http://dl.dropbox.com/u/241415/Find%20M ... 0v0.85.zip

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Sun Jun 26, 2011 6:23 pm
five337 offline
Posts: 52
Joined: Jun 21, 2010

Re: Find my iDevices!

Here is some hacked up code that I've used for the past 6 months to track my phones. Maybe it can help you.

I run this from an AppleScript, I get the value of feet returned and put in to a variable. Then if i'm more than XXXXft away it assumes I'm not home, turns off AC, Lights, Irons, etc. If I am not home and someone turns on a light I get a text message. Etc, etc.

#!/usr/bin/php
<?PHP

require 'class.sosumi.php';

$nauticalMilesPerLat = 60.00721;
$nauticalMilesPerLong = 60.10793;
$milesPerNauticalMile = 1.15078;
$rad = pi()/180;

$myHomeLat = FILL IN YOUR HOME LAT;
$myHomeLong = FILL IN YOUR HOME LONG;


$ssm = new Sosumi('USERID@me.com', 'PASSWORD');
$loc = $ssm->locate(0);

#$output = "Lee's iPhone is at : ".strval($loc[latitude])." , ".strval($loc[longitude])."\n";
#print $output;

$yDistance = ((float)$loc[latitude] - $myHomeLat) * $nauticalMilesPerLat;
$xDistance = (cos($myHomeLat * $rad) + cos((float)$loc[latitude] * $rad)) * ((float)$loc[longitude] - $myHomeLong) * ($nauticalMilesPerLong / 2);
$distance = sqrt(($yDistance * $yDistance)+ ($xDistance * $xDistance));

$distanceInMiles = ($distance * $milesPerNauticalMile);
$distanceInFeet = $distanceInMiles * 5280;

$roundedInt = (int)$distanceInFeet+1;


#print "Lee's iPhone (and presumably Lee) are ".($distance * $milesPerNauticalMile)." miles, or ".$distanceInFeet." feet from home.\n";
echo $roundedInt;

Posted on
Sun Jun 26, 2011 7:23 pm
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Re: Find my iDevices!

five337 wrote:
Here is some hacked up code that I've used for the past 6 months to track my phones. Maybe it can help you.

I run this from an AppleScript, I get the value of feet returned and put in to a variable. Then if i'm more than XXXXft away it assumes I'm not home, turns off AC, Lights, Irons, etc. If I am not home and someone turns on a light I get a text message. Etc, etc.

#!/usr/bin/php
<?PHP

require 'class.sosumi.php';

$nauticalMilesPerLat = 60.00721;
$nauticalMilesPerLong = 60.10793;
$milesPerNauticalMile = 1.15078;
$rad = pi()/180;

$myHomeLat = FILL IN YOUR HOME LAT;
$myHomeLong = FILL IN YOUR HOME LONG;


$ssm = new Sosumi('USERID@me.com', 'PASSWORD');
$loc = $ssm->locate(0);

#$output = "Lee's iPhone is at : ".strval($loc[latitude])." , ".strval($loc[longitude])."\n";
#print $output;

$yDistance = ((float)$loc[latitude] - $myHomeLat) * $nauticalMilesPerLat;
$xDistance = (cos($myHomeLat * $rad) + cos((float)$loc[latitude] * $rad)) * ((float)$loc[longitude] - $myHomeLong) * ($nauticalMilesPerLong / 2);
$distance = sqrt(($yDistance * $yDistance)+ ($xDistance * $xDistance));

$distanceInMiles = ($distance * $milesPerNauticalMile);
$distanceInFeet = $distanceInMiles * 5280;

$roundedInt = (int)$distanceInFeet+1;


#print "Lee's iPhone (and presumably Lee) are ".($distance * $milesPerNauticalMile)." miles, or ".$distanceInFeet." feet from home.\n";
echo $roundedInt;


Thank you...

It's very similar to the code that I am using...

def calcDistance(self, lat1, lon1, lat2, lon2):
"""
Caclulate distance between two lat lons in NM
This routine is taken from http://www.geesblog.com/2009/01/calcula ... in-python/
"""
#
# The following formulas are adapted from the Aviation Formulary
# http://williams.best.vwh.net/avform.htm
#
nauticalMilePerLat = 60.00721
nauticalMilePerLongitude = 60.10793
rad = math.pi / 180.0
milesPerNauticalMile = 1.15078

yDistance = (lat2 - lat1) * nauticalMilePerLat
xDistance = (math.cos(lat1 * rad) + math.cos(lat2 * rad)) * (lon2 - lon1) * (nauticalMilePerLongitude / 2)
distance = math.sqrt( yDistance**2 + xDistance**2 )
return distance * milesPerNauticalMile

Actually it appears to be the same formula, just with the serial numbers filed off... This is actually a direct copy from the original Find my iPhone code, which I brought over to Find my iDevices.

I am just about ready to release this to the Beta testers... Anyone that is interested, please contact me...

Changes in v0.90 -
# v0.90 - Added distance calculations back to the web display
# - Cleaned up the display of the following variables
# - Battery Level, truncated to 5 places
# - distanceaway, is truncated to 6 places
# - Added, displaylatitude & displaylongitude, which are both truncated to 9 places
# - Added timestamp to template
# - Added Latitude & Longitude map center announcement to template
# - Added FindMyiDevice "devices"
# - You can now define iDevices in your Indigo Device List.
# - When the MobileMe scan occurs, the device will be updated with updated Status's
# - This includes:
# * Device Class
# * Device Model
# * Device Status
# * Distance Away from the defined "Map Center" / Home
# * Last Updated Time Stamp
# * Latitude & Longitude (Full Precision)
#
# - This information is available to other devices / plugins, etc.

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Sun Jun 26, 2011 8:36 pm
hammer32 offline
Posts: 66
Joined: May 13, 2006
Location: Copperas Cove, TX

Re: Find my iDevices!

I've filled in and saved the Find my iDevices! preferences. The Find my iDevices link is listed on my Indigo web page, but selecting it just gives the error:
Code: Select all
 internal server error


I've restarted the machine (which left the Find my iDevices preferences blank) to make sure the Indigo Server actually restarted, with the same results.

Posted on
Sun Jun 26, 2011 8:40 pm
five337 offline
Posts: 52
Joined: Jun 21, 2010

Re: Find my iDevices!

Same here.. I get this in the logs:


WebServer Displaying Find My iDevices Web Page
WebServer internal server error "http://192.168.15.XXXXXX/Find-My-iDevices/" from 192.168.15.XXX
WebServer

Request Headers:
AUTHORIZATION: Digest username="XXXXXXX", realm="Indigo Control Server", nonce="137d7b3d4a4e9d19f38c1b71b3b0a5ce", uri="/Find-My-iDevices/", response="93c4f1aee556a9d0d67afc76708baad5", algorithm="MD5", cnonce="64eff15cdbb645bc0eab08405f5570ae", nc=00000001, qop="auth"
REFERER: http://192.168.15.XXXXXXX/
HOST: 192.168.15.XXXXXXX
ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.34.4 (KHTML, like Gecko) Version/5.1 Safari/534.34.4
CONNECTION: keep-alive
Remote-Addr: 192.168.XXXXXXXX
ACCEPT-LANGUAGE: en-us
ACCEPT-ENCODING: gzip, deflate

Traceback (most recent call last):
File "/Library/Application Support/Perceptive Automation/Indigo 5/IndigoWebServer/cherrypy/_cprequest.py", line 609, in respond
cherrypy.response.body = self.handler()
File "/Library/Application Support/Perceptive Automation/Indigo 5/IndigoWebServer/cherrypy/_cpdispatch.py", line 25, in __call__
return self.callable(*self.args, **self.kwargs)
File "/Library/Application Support/Perceptive Automation/Indigo 5/IndigoWebServer/plugins/Find-My-iDevices/reqhandler.py", line 94, in index
return tmpl.RenderTemplate()
File "/Library/Application Support/Perceptive Automation/Indigo 5/IndigoWebServer/indigopy/basereqhandler.py", line 161, in RenderTemplate
return self._template.respond()
File "_Library_Application_Support_Perceptive_Automation_Indigo_5_IndigoWebServer_plugins_Find_My_iDevices_templates_Find_My_iDevices_html.py", line 176, in respond
File "/Library/Application Support/Perceptive Automation/Indigo 5/IndigoWebServer/Cheetah/DummyTransaction.py", line 32, in getvalue
return ''.join(outputChunks)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 536: ordinal not in range(128)

Posted on
Mon Jun 27, 2011 4:15 am
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Re: Find my iDevices!

five337 wrote:
Same here.. I get this in the logs:


WebServer Displaying Find My iDevices Web Page
WebServer internal server error "http://192.168.15.XXXXXX/Find-My-iDevices/" from 192.168.15.XXX
WebServer

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 536: ordinal not in range(128)


This error is caused by the name of one of your MobileMe iDevices.... Can you login to MobileMe and get a screen shot of the device's names?

But the normal scan works fine? Your just having an issue with the web page being produced...

In the meantime I will code around this... If you could, drop me an email (benjamin AT schollnick DOT net), and I will make a beta version available to you with a fix. I need to see if this works properly...Since the names of my devices aren't causing this...

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Mon Jun 27, 2011 4:20 am
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Re: Find my iDevices!

hammer32 wrote:
I've filled in and saved the Find my iDevices! preferences. The Find my iDevices link is listed on my Indigo web page, but selecting it just gives the error:
Code: Select all
 internal server error


I've restarted the machine (which left the Find my iDevices preferences blank) to make sure the Indigo Server actually restarted, with the same results.


Hammer32,

Same thing as the other case... Please drop me a line, and we'll test a change that should fix this.

See the other forum posting for details...

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Thu Jun 30, 2011 9:19 pm
hammer32 offline
Posts: 66
Joined: May 13, 2006
Location: Copperas Cove, TX

Re: Find my iDevices!

What's the best way to set up trigger actions based on distance from home? Is it possible to set up fenced off areas?

Thanks, awesome plugin!

Posted on
Fri Jul 01, 2011 4:25 am
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Re: Find my iDevices!

hammer32 wrote:
What's the best way to set up trigger actions based on distance from home? Is it possible to set up fenced off areas?

Thanks, awesome plugin!


In v0.9x, it will be possible to setup trigger actions based on distance from home..... (The v0.9x series is in beta testing)

But, at this point, there isn't any fenced off area support...

If you have any suggestions on how to establish a fenced area, I would be glad to consider it...

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Fri Jul 01, 2011 4:51 am
five337 offline
Posts: 52
Joined: Jun 21, 2010

Re: Find my iDevices!

I think creating a fenced in area could be easily done in Indigo w/ trigger actions without having to add it to the plugin.

hammer32: give me an example. Are you trying to see "If Billy is not at school and time is 8am to 2pm - email me" ? or something else ?

Posted on
Fri Jul 01, 2011 5:43 am
bschollnick2 offline
Posts: 1297
Joined: Oct 17, 2004
Location: Rochester, Ny

Re: Find my iDevices!

five337 wrote:
I think creating a fenced in area could be easily done in Indigo w/ trigger actions without having to add it to the plugin.

hammer32: give me an example. Are you trying to see "If Billy is not at school and time is 8am to 2pm - email me" ? or something else ?


I have the google maps code to "create a fenced" in zone on the map. But the question become more of the User Interface concept...

For example, are you referring to a cosmetic "box" on the map only? If so, we could create a device, and one option would be to give all four Lat / Long pairs, and it'll "draw it on the map". (eg, to show your house / home region / place of work / dangerous neighborhood / etc)

But if you are looking for some way to test to see if a device is inside that region, that gets much more trickier....

The logic is really is there already (in v0.9x) since you can just create a device for your iphone which would be updated with your current lat/long.

A trigger can be made that says if DEVICE IPHONE LAT is within 43.0747 and 43.0753 AND LONG is within -79.596 and -79.599 then run Action Group HOMELIGHTSON

This would allow you to test a fenced in area, but would not give you a visual representation of it on the map....

------
My Plugins for Indigo (v4, v5, and v6) - http://bit.ly/U8XxPG

Security Script for v4 - http://bit.ly/QTgclf
for v5 - http://bit.ly/T6WBKu

Support Forum(s) - http://www.perceptiveautomation.com/userforum/viewforum.php?f=33

Posted on
Fri Jul 01, 2011 6:10 am
hammer32 offline
Posts: 66
Joined: May 13, 2006
Location: Copperas Cove, TX

Re: Find my iDevices!

I'm still thinking through how exactly I'll use this. I like the idea of fences that exist during certain parts of the day, for instance Five337's school example. Another example could be a digital 'Big Board' that would give a short text-based location like 'Dad is at work', 'Mom is at Shadow Lake Mall', etc.

If the family has been gone for a while, the A/C or heat could kick in when we're X miles out.

While it would be nice to eventually see fenced areas on the map (and even cooler to create them on a map!), the Lat/Long approach will do just fine.

Who is online

Users browsing this forum: No registered users and 1 guest