Python library for communicating with PlayBulb Candles
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
playbulbcandle
.gitignore
LICENSE
MANIFEST
README.md
setup.cfg
setup.py
tester.py

README.md

playbulbcandle

Python library for communicating with PlayBulb Candles.

PlayBulb Candles are RGBW Bluetooth 4.0 candles which are controlled with a iOS/Android app.

Installation

Tested working on Raspberry Pi 3 with Noobs.

Install bluetooth and bluez

sudo apt-get install bluetooth bluez

Find your PlayBulb Candles

sudo hcitool lescan

This will stream all found devices on the screen. Use Ctrl+c to break the process, copy the MAC addresses for use later

The library is based on gatttool which allows you to send messages via command line

gatttool -b [mac address] --char-write-req -a [register] -n [value]
gatttool -b [mac address] --char-write -a [register] -n [value]
gatttool -b [mac address] --char-read -a [register]

Get the library

pip install playbulbcandle

Usage

Look in tester.py for a working example. More information can be found in this blob post.

  from playbulbcandle import PlayBulbCandle
  
  candle1 = PlayBulbCandle('AA:AA:AA:AA:AA:AA')
  candle2 = PlayBulbCandle('BB:BB:BB:BB:BB:BB')
  
  candle1.setColor(0, 255, 0, 0) # Set color to red
  candle1.setEffect(255, 0, 0, 0, 'candle', 0) # Candle flicker effect in white
  candle1.off() # There is no alternative for on
  
  print candle2.getBatteryLevel()

Troubleshooting

Bluetooth dongle

You can check whether your bluetooth dongle is connected

lsusb

On my system, I see with a dongle marked 'CSR 4.0' (cheap from ebay). For the Raspberry Pi 3, you don't need an adapter because BLE is built in.

$ lsusb
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Cannot connect

Make sure you're not already connected with the app. Only one device can connect to the bulb at once

Acknowledgements