Context Watcher

[Documentation - Download - Frequently asked questions - Team - History]

Last change: April 13, 2006

Announcement (May 11, 2006)
The Context Watcher has been completely re-designed and moved to a new home. Please go to the central portal to get more information. You may download the new version, and don't forget to browse through the new manual!

The Context Watcher is a mobile application developed in Python, and running on Nokia Series 60 phones. Its aim is to make it easy for an end-user to automatically record, store, and use context information, e.g. for personalization purposes, as input parameter to information services, or to share with family, friends, colleagues or other relations, or just to log them for future use or to perform statistics on your own life.

The context watcher application is able to record information about the user's Read the flyer!

Documentation

Installation

Download and install Python for Series 60 from Nokia. Choose the 1.2 version, and install PythonForSeries60.sis on your phone. There are two options: install the sis file from the download section or install the Python script from the BSCW server (MobiLife partners only). For the sis file: Install contextwatcher.sis on your phone (send via BlueTooth, and choose 'install' from Messages > Inbox) and run it from the menu. For the python script: Install contextwatcher.py on your phone (send via BlueTooth, and choose 'install as script' from Messages > Inbox) and run Python from the menu, choose options > run script > contextwatcher.py.

First run

Make sure your GPRS connection is configured correctly. To avoid GPRS pop-up menus, you can choose to go to Settings > Connection > GPRS > GPRS connection > When available. When you start the Context Watcher, it will ask you to provide a personal code. Pick one that is easy to remember but difficult to guess for others, e.g. 8356. The mobile application will set up an account for you on the server. If asked, pick the appropriate GPRS connection to use for communication. Choose 'set your email' from the options menu, as this will identify you in a more meaningful way than IMEI only.

Personal frequently visited locations or clusters

Every night, the remote location provider scans the location data per user and tries to identify new clusters. This is done based on cell-id only, taking into account the transitions between cells, the time a users stays in a cell, and the distances between neighbour cells. We are also working on other types of algorithms. The found clusters are added to a personal cluster list in the remote location provider. Each clusters get a number. How you can name this clusters is described in the following section. Every time the user updates his location data on the location provider, it checks if the cell belongs to a cluster and if so, returns the number and/or the name of that cluster. When the cluster only has a number, the Context Watcher allows the user to name that cluster. If the cluster has a name already, that information is shown under the Activities tab with the appropriate time stamps for begin and end times. The name of the current cluster is also revealed to the buddies of the user.

Naming your personal clusters

There are 3 options. 1) When you are in an unnamed cluster (identified by a number only) you can choose options > name current cluster from the MyCell tab 2) You can change the names of all your cluster via options > set remote profile in the MyCell tab. 3) You can go to the profiler page of the location CP from a desktop PC.

Using cell id for location determination

Start the Context Watcher, and choose 'Connect to GPRS' from the menu. Simply move around, and on cell change the first tab page will be refreshed with latitude-longitude and address information when available. You can request maps of your current location on the MAP tab page You can request nearby points of interest on the POI tab page When you have friends with the same application, you can add them as buddy in the BUDDY tab page, and after approval see each other's location real time.

Using GPS or collecting new cells

You may use a BlueTooth enabled GPS device to obtain more accurate positioning, but you can also use it to add newly spotted cells to the cell-id database. This works more or less automatic. You only need to make sure that you connect both to GPRS and to GPS. So: start the Context Watcher, and choose 'Connect to GPRS' from the menu. Go to the GPS tab page and choose 'Connect GPS' from the menu. It will now show the number of cell changes and newly spotted cells in the MyCell tab. Move around to spot new cells. When you choose not to connect to GPRS it will log all data locally. First time you connect to GPRS, it will upload the logged data first. A weekly overview of all cells in the cell-id database is published here.

The remote location provider

More information in the email that is send to you when you choose 'set your email' from the menu. You can browse through your location history via the web interface of the location CP. Login with your IMEI and CODE as provided on the user tab of the application.

Adding and maintaining buddies

Each user has friends. Initially, none of these friends are known to the Context Watcher and the buddy list is empty. Via options > add buddy, the user can add new buddies, that can be identified by email address or IMEI number. The IMEI number can be typed quite fast when you choose for 'number mode' input (by pressing the pencil button, at the bottom right of your keyboard). IMEI numbers can be obtained from the advertisement of the location provider, via the getAdvertisement operation. When a buddy is added, an approval request is sent to the buddy. This buddy has to approve by updating his buddy list, selecting you and choosing approve. When you update your buddy list after his approval, you will see the context data of this buddy, coming from different context providers.

Using services

Context information, and location data in particular, can be used as automatic input parameter for services. Because the Context Watcher is already aware of your location, it can send that data automatically to value-added services to obtain maps, nearby points of interest of some kind, or local weather information. The map and poi services require you to have a location information in terms of latitude and longitude (does not matter if this is GPS or cell-id based), whereas the weather service requires you to have location information in terms of city and country.

Retrieving weather information

Via options -> get local weather, the actual weather information together with the forecast for the next few days can be requested based on the users current location. If currently no location information in terms of city and country is available, weather information for almost any place in the world can be retrieved using options -> get weather in ... and providing a location in the form "," such as "Munich, Germany" (note that capitalization does not play a role). The country information can be dropped if it has been given in a previous request (e.g., after asking for the local weather in "Munich,Germany" previously, one can request for an update by simply using "Munich" as location). If the city information is dropped, then the weather information for the capital of the given country is retrieved. The last 5 location for which a user requested weather information are stored in a list. Weather information for these locations can quickly be accessed using options -> get weather in favorites.

Attaching the body sensors

The Context Watcher is capable of collecting data from a Suunto T6 watch equipped with an additional footpod (which measures walking speed and distance) and a heart rate belt (which measures heart rate). These three devices communicate via the low-energy protocol ANT. To connect these devices with a phone via a BlueTooth connection, you need a BT2ANT module that receives the ANT messages and exposes this information via a BT interface that implements the SSI protocol. Go to the sport tab, choose options > connect to ANT, and select your BT2ANT module from the list of discovered devices. When GPRS is connected the application will send your data to the remote Wellness Provider. From there it will be distributed to the persons that you selected as buddies. Check the buddy tab to be informed about the body data of your buddies. The Wellness Provider also provides statistics over the historic data, and will provide performance graphs (speed vs heart rate) soon.

Submit context pictures to Flickr

It is now easy to share context-enriched pictures with your friends:

  1. If you do not have one, organize a Flickr.com account
  2. Go to this link to authorize the CW app to upload photos to your account
  3. Get the mini-token and set this as the flicktoken value in the local settings (under the user tab > options)
  4. Go to the photo tab, take a picture and send it to Flickr, using the options menu
  5. Repeat the last step to send as much pics as you like
Results might look like these examples of other MobiLife members, and because there are context-tagged we can do neat things like Lifehacker did.

A new feature is that also maps and context graphs can be sumbitted in the same way as picture. Choose the 'send' option in the 'map' or 'graph' tab. The maps and graphs will be submitted as public pictures.

See your buddies walking and running over the globe in Google Earth

A Google Earth Network Link to the PersonalLocationCP and InstantMessagingCP (IMCP). Using this, you can see all MobiLife Buddies (name, image) at their current position and their current state in the Google Earth client. You need to have Google Earth installed (it's freely available at Google) and then open the KML file on the BSCW to start the Network Link. You may need to turn the globe, because the client starts USA-centric ;-) to see the buddies. Double-clicks on the buddies will zoom to them and show more info (mood etc). If you do not see any maps it might help to switch from OpenGL to DirectX under the options menu. Each buddy has his/her own icon. This icon can be created by taking a picture in the photo tab and then submit this picture 'as icon' in the options menu. The submitted picture will be used to show your face in Google Earth. You may also use this this express your mood ;-)

Graphical context representations

The tab 'graph' allows you to show graphical representations of historic contextual information. The number of context samples is set in the local settings menu, and is equal to 20 by default. This way you can show your heart rate or walking speed over the last minutes, as well as performance graphs of heart rate versus walking speed. And you location show your position (latitude,longitude) and altitude graphs as well. The heart rate example on the right is just during a presentation: about 70 in listening mode, up to 130 in presentation mode. Presenting is top sport!


Show your location on the desktop

If you are using the context watcher, and you want your family to know where you are from the home PC, you could follow these steps:

  1. Right-click a blank area on the desktop, and then click Properties.
  2. On the Desktop tab, click Customize Desktop.
  3. On the Web tab, click New
  4. Add the following url http://oikos.demon.nl/PersonalLocationProvider/ShowLocation.aspx?IMEI=yourimei&CODE=yourcode (your IMEI and CODE can be obtained from the user tab in the context watcher application).
  5. Pick an update schedule that is convenient, e.g. each 15 minutes
It will show your location on the desktop, so that you never ever again have to start your mobile phone conversation with the words "I'm in the train, and just left the airport" or something of similar meaning ;).

Your location cluster history in the agenda context provider

The most frequently visited locations from the Location Context Provider are also automatically logged in the Agenda Context Provider, resulting in an automatic activity log as in this example. To view your own calendar, open Mozilla Calendar, and add a new calendar with this remote location URL: ftp://YourIMEI:YourCode@212.119.9.182/CalendarDataFile.ics

Auto blogging

The location CP can write daily reports of your activities automatically and send these reports to your blog. An example is Johan's blog. To realize this yourself, follow these steps:

  1. Organize an account with blogger.com. Write down your blog name, blog ID and your personal name and password. Note that the blog name is the nnn part in http://nnn.blogspot.com, and that the blog ID should be the numerical ID of your blog (you can find it in the URL of your personal blogger dashboard). And your personal name and password are those you use to log in to blogger.com.
  2. Go to the profiler page of the location CP and provide your blog ID, blogger name and blogger password.
  3. Wait till the next day and visit your blog. The reports are generated overnight and are based on yesterday's data.

Instant messaging (IM) integration

The location CP can send updates of your location and/or activity to one of the popular IM servers, namely the MSN server. If you have a MSN account, the location CP will change your MSN nick name when your location changes (on city level), or when your activity changes. Your nickname will look like 'Johan Koolwaaij at Office since 07-12 08:52', and all your MSN friends will be able to check your whereabouts before they try to contact you.

  1. Organize an account with msn.com.
  2. Go to the profiler page of the location CP and provide your MSN email and password.
  3. Move around and your MSN friends will see your updated nickname.
NB For now there is the drawback that this signs you out from your normal MSN messenger client, and updates are only shown when you sign in again with the normal MSN client. But we are working on that...

Configuration

Choose options > local settings from the MyCell tab to see the settings. Choosing options > edit will allow you to edit these settings. Don't forget to save your changes. The settings menu offers the following options:

Download

Remember to download Python 1.2 for Series 60 from Nokia first. Download the contextwatcher.sis (v3.08) file and install it on the phone via the Nokia PC suite or via BlueTooth. The sis file installs the Context Watcher with the MobiLife logo instead of the standard Python logo. If you have comments or questions, please contact the developers.

Reported bugs

  1. v2.6, 04-10-2005
    Application may crash after visiting the photo tab. Not always, but regularly.
    8-10-2005 Fixed by moving graphical updates to new active object and checking for the active tab.
  2. v2.8, 13-10-2005
    Usage logging crashes on the sys module to get the current function automatically
    15-10-2005 Circumvented by checking for that behaviour
  3. v2.8, 19-10-2005
    Auto-update does not work when Python installed on the memory card.
    19-10-2005 Solved by checking where it is installed
  4. v2.8, 19-10-2005
    The mood tab does not preserve local state over sessions.
  5. v3.0, 01-11-2005
    The url to the blogs in the user overview is not always correct.
    We still have to find the id-based url to blogspot.com
    09-11-2005 Circumvented by a user-specified blog name
New bugs are to be reported in
Bugzilla. Thank you!

FAQ

  1. Can I autostart the Context Watcher when the phone is switched on?
    Yes, via utility like this
    PsiLoc autostarter. Put a link to the context watcher application in this utility. It's a bit harder for the Python script. You can of course put Python in the list of autostarted application, and modify the default.py to start contextwatcher.py.
  2. Does the Context Watcher run in the background?
    Yes, it does. Best results are obtained when you have it running all day. A regular office day will cost you about 120 kB data traffic, a travelling day about 500-800 kB.
  3. How do I remove a Python script from the phone?
    Start Python > options > run script > filebrowser.py. The navigate to C:\system\apps\python\my, choose your script, and choose delete from the context menu. If you have Python installed on the memory card, the drive letter will be E: instead of C:
  4. What's the easiest way to start Python and the Context Watcher?
    In the Nokia menu, go to settings > phone > standby mode > right selection key and select Python. This way you can simply start Python from the standby screen by pressing the right selection key.
  5. On startup the script complains about the camera module. What to do?
    You are probably running Python 1.1.x in the fast version. A solution is to remove Python from the phone, and replace it by the regular version of Python. This is no longer an issue with Python 1.2
  6. My blog is not updated overnight.
    Two possible reasons are: you do not have any location data for that day, or you did not supply the numerical blog ID. It should not be a name, but a number. You can find it by observing the url to your blogspot dashboard. It should have a parameter like blogID=3528873.
  7. Context Watcher freezes while driving thorugh tunnels, or being abroad
    One of the thing that Context Watcher can not bear is operator switching in the middle of a GPRS session. To prevent this you might choose one fixed operator while being abroad. Of course, this does not solve the inter-country problem, but it at least solves the intra-country problem.
  8. The profiler with clusters does not show all/any clusters
    Only the clusters that were active during the caching duration of the location context provider (currently 21 days) are shown. This might result in no clusters in the profiler. But just keep the Context Watcher running for a day, and the clusters will come back.

Developer team

The Context Watcher is developed in the MobiLife project. The core development team consists of:

History

DateVersionDescription
02-02-20050.1First ideas in Berlin
01-03-20051.0First prototype for the Cebit fair in Hannover, that reads the cell-id and provides enriched information, including an estimated latitude-longitude pair, an address and a map.
07-03-20051.1Add GPS BT connection to add data on unknown cells
10-03-20051.2Added the BT integration with the calendar CP and location clustering
01-04-20051.3Added the deduced personal activities and some BT connect bug fixes
01-05-20051.4New option to set your personal profile, and new send SMS functionality for buddies
13-05-20051.5Extended location update mechanism from onCellChange to onCellChange plus time interval if GPS connected
01-06-20051.6Add a sports tab that integrates with Suunto BT-ANT module to read heart rate, walking speed etc from HR belt and foot pod
01-07-20051.7Added integration with a new WellnessProvider, a CP that talks CRF v0.3
04-07-20051.8Added integration with a new WeatherProvider
07-07-20052.0Move to Python 1.1, including signal strength, and IMEI.
10-08-20052.1Integration with FOKUS CPs, including presence and preferences.
04-09-20052.2Improved performance, removed annoying BT discovery bugs, redone the configparams and improved preferences in the weather tab
09-09-20052.3Added a local settings form
17-09-20052.4Added photo functionality
26-09-20052.5Added Flickr integration, image options in local setting, and image preview
03-10-20052.6Added graphical context representations
07-10-20052.7Automatic script update over GPRS, bug fixes in photo tab for Nokia 6630, easy icon images for users, usage logging, and much more
09-10-20052.8Map integration to canvas, improved feedback while sending photos, added graphs for signal strength and battery
26-10-20053.0Auto blogging, python 1.2 check, and start with trust engine integration
09-10-20053.03New weather provider, integration with the usage record provider
19-01-20063.07Custom categories in the mood tab, improved weather tab, and many small bug fixes
01-02-20063.08Bug fixes

Announcement (May 11, 2006)
The Context Watcher has been completely re-designed and moved to a new home. Please go to the
central portal to get more information. You may download the new version, and don't forget to browse through the new manual!