Interact with your Pebble from OSX, Ubuntu or Debian operating systems.
- Supported OSes are
OSX 10.8,Ubuntu,Debian - OSes which can utilize a faster Bluetooth library, Lightblue-0.4, are
OSX 10.8andUbuntu - Detailed Lightblue-0.4 installation instructions for earlier version of OSX (10.6) and other OSes can be found here
##1. Install Dependencies
All supported OSes will require python 2.7 to operate libpebble. It can be installed here
Pyserialwill also be required, is can be installed via pip
###a. OSX Additional Dependencies
Installing Lightblue-0.4 in OSX will require the following be installed:
PyObjCwhich can be installed via pipXcode 2.1 or laterto build LightAquaBlue framework
###b. Ubuntu Additional Dependencies
Installing Lightblue-0.4 in Ubuntu requires some extra dependencies be installed via apt-get install:
python-devlibopenobex1-devpython-tkif you wish to use the GUI selection toolpython-bluez
###c. Debian Additional Dependencies
Support for lightblue is untested in Debian, however the following should be installed/completed for use with PySerial:
-
Install rfcomm
sudo apt-get install rfcomm -
Bind the device
sudo rfcomm bind 0 PEBBLE_BLUETOOTH_ADDRESS 1 -
Make the following code change to
pebble/pebble.py: Change:self._ser = serial.Serial("/dev/tty.Pebble"+id+"-SerialPortSe", 115200, timeout=2)to:
self._ser = serial.Serial("/dev/rfcomm0", 115200, timeout=2) -
Note that you may have to run libpebble as root with
sudo python pebble.pyin Debian
##2. Install Libpebble and Lightblue
- To install libpebble, clone the current libpebble with lightblue support from
[email protected]:pebble/libpebble.gitto a location of your choosing - To install lightblue clone
lightblue-0.4fromhttps://github.com/pebble/lightblue-0.4and then:cd lightblue-0.4sudo python setup.py install
##3. Testing the Connection Note: you should have your bluetooth module enabled before continuing
###a. OSX
When using libpebble on OSX, it is recommended that --lightblue be utilized.
#####Using libpebble with --lightblue on OSX
-
First install the OSX dependencies, general dependencies and lightblue
-
From the
libpebblefolder, execute the following:./p.py --lightblue --pair get_time -
Note that if no
--pebble_idis specified before the command, you are provided with a GUI selection tool. -
Note that if a MAC address is supplied, initialization time is reduced.
- For example:
./p.py --pebble_id 00:11:22:33:44:55:66 --lightblue get_timewhere00:11:22:33:44:55:66is the Pebble's MAC Address, viewable on the Pebble fromsettings-->about
- For example:
-
You can obtain your pebble's MAC address after a successful connection in the libpebble stdout debug logs
-
The
--pebble_idcan also be the 4 letter friendly name of your pebble but this will require that the Pebble is broadcasting. -
It is also possible to set the PEBBLE_ID environment variable as well:
export PEBBLE_ID="00:11:22:33:44:55:66" ./p.py --lightblue get_time
#####Using libpebble without --lightblue on OSX (MAY CAUSE KERNEL PANICS)
- Pair your Pebble to your computer and make sure it's setup as a serial port. For example it could be exposed as
/dev/tty.Pebble123A-SerialPortSe. You can accomplish this by using OSX's pairing utility inSystem Preferences-->Bluetooth->+--> selecting your pebblePebble XXXXthen confirming the pairing code on the Pebble. - Once you're paired and the serial port is setup, you can execute commands without the
--lightblueflag, just ensure that the--pebble_idis the 4 letter friendly name of your Pebble,123Afor example. - A command to get the time might be:
./p.py --pebble_id 123A get_time
Automated pairing via --pair is not currently supported in Ubuntu
- First install the Ubuntu dependencies, general dependencies and lightblue
- In Ubuntu's
Menu-->Settings-->Connectivity-->Bluetoothdialog, pair with your Pebble - From the
libpebblefolder, execute the following:./p.py --lightblue get_time - Note that if no
--pebble_idis specified before the command, you are provided with a GUI selection tool. - For example:
./p.py --pebble_id 00:11:22:33:44:55:66 --lightblue get_time - The
--pebble_idcan also be the 4 letter friendly name of your pebble but this require that the Pebble is broadcasting.
- Note that applications each have a unique UUID which is used to launch on install/re-install, it should be visible in the source for your application.
- Once an application is installed or re-installed it will be launched automatically. Disable this with
--nolaunch- for example
./p.py --pebble_id 00:11:22:33:44:55:66 --lightblue reinstall brains.pbw --nolaunch
- for example
#####Installing:
- From your libpebble directory, execute
p.pywith the argumentload <path-to-valid-app>- for example:
./p.py --pebble_id 00:11:22:33:44:55:66 --lightblue load brains.pbw
- for example:
#####Re-installing
- To re-install an application, execute
p.pywith the argumentreinstall <path-to-valid-app>. This will attempt to remove the application by its UUID or, if that fails, the name of the application before installing it once more.- for example:
./p.py --pebble_id 00:11:22:33:44:55:66 --lightblue reinstall brains.pbw
- for example:
The following are currently supported:
- Sending email, sms and ping notifications
- Installing, reinstalling and uninstalling applications
- Installing firmwares
- Launching applications by UUID
- Sending application messages
- Resetting device
- Setting/getting time
- Sending notifications
- Setting the currently playing track
- Getting the installed firmware version
- Getting and setting the pebble's time
A basic REPL is available, it is best used with ipython:
`sudo ipython repl.py`
The variable pebble refers to the watch connection. You can for example perform pebble.get_time() to get the time of the watch