Skip to main content

Library to control Brightech Kuler Sky Bluetooth LED smart lamps

Project description

https://img.shields.io/pypi/v/pykulersky.svg https://github.com/emlove/pykulersky/workflows/tests/badge.svg https://coveralls.io/repos/emlove/pykulersky/badge.svg

Library to control Brightech Kuler Sky Bluetooth LED smart lamps

  • Free software: Apache Software License 2.0

Features

  • Discover nearby bluetooth devices

  • Get light color

  • Set light color

Command line usage

pykulersky ships with a command line tool that exposes the features of the library.

$ pykulersky discover
INFO:pykulersky.discovery:Starting scan for local devices
INFO:pykulersky.discovery:Discovered AA:BB:CC:00:11:22: Living Room
INFO:pykulersky.discovery:Discovered AA:BB:CC:33:44:55: Bedroom
INFO:pykulersky.discovery:Scan complete
AA:BB:CC:00:11:22: Living Room
AA:BB:CC:33:44:55: Bedroom

$ pykulersky get-color AA:BB:CC:00:11:22
INFO:pykulersky.light:Connecting to AA:BB:CC:00:11:22
INFO:pykulersky.light:Got color of AA:BB:CC:00:11:22: (0, 0, 0, 255)'>
000000ff

$ pykulersky set-color AA:BB:CC:00:11:22 ff000000
INFO:pykulersky.light:Connecting to AA:BB:CC:00:11:22
INFO:pykulersky.light:Changing color of AA:BB:CC:00:11:22 to #ff000000

$ pykulersky set-color AA:BB:CC:00:11:22 000000ff
INFO:pykulersky.light:Connecting to AA:BB:CC:00:11:22
INFO:pykulersky.light:Changing color of AA:BB:CC:00:11:22 to #000000ff

Usage

Discover nearby bluetooth devices

import asyncio
import pykulersky


async def main():
    lights = await pykulersky.discover(timeout=5)

    for light in lights:
        print("Address: {} Name: {}".format(light.address, light.name))

asyncio.get_event_loop().run_until_complete(main())

Turn a light on and off

import asyncio
import pykulersky


async def main():
    address = "AA:BB:CC:00:11:22"

    light = pykulersky.Light(address)

    try:
        await light.connect()
        await light.set_color(0, 0, 0, 255)

        await asyncio.sleep(5)

        await light.set_color(0, 0, 0, 0)
    finally:
        await light.disconnect()

asyncio.get_event_loop().run_until_complete(main())

Change the light color

import asyncio
import pykulersky


async def main():
    address = "AA:BB:CC:00:11:22"

    light = pykulersky.Light(address)

    try:
        await light.connect()
        while True:
            await light.set_color(255, 0, 0, 0) # Red
            await asyncio.sleep(1)
            await light.set_color(0, 255, 0, 0) # Green
            await asyncio.sleep(1)
            await light.set_color(0, 0, 0, 255) # White
            await asyncio.sleep(1)
    finally:
        await light.disconnect()

asyncio.get_event_loop().run_until_complete(main())

Get the light color

import asyncio
import pykulersky


async def main():
    address = "AA:BB:CC:00:11:22"

    light = pykulersky.Light(address)

    try:
        await light.connect()
        color = await light.get_color()
        print(color)
    finally:
        await light.disconnect()

asyncio.get_event_loop().run_until_complete(main())

Changelog

0.5.5 (2023-04-07)

  • Support CI for bleak 0.20

0.5.4 (2022-05-03)

  • Unpin test dependencies

0.5.3 (2021-11-23)

  • Support CI for bleak 0.13

0.5.2 (2021-03-04)

  • Use built-in asyncmock for Python 3.8+

0.5.1 (2020-12-23)

  • Include default timeout on all API calls

0.5.0 (2020-12-19)

  • Refactor from pygatt to bleak for async interface

0.4.0 (2020-11-11)

  • Rename discover method to make behavior clear

0.3.1 (2020-11-10)

  • Fix connected status after broken connection

0.3.0 (2020-11-10)

  • Add workaround for firmware bug

0.2.0 (2020-10-14)

  • Remove thread-based auto_reconnect

0.1.1 (2020-10-13)

  • Always raise PykulerskyException

0.1.0 (2020-10-09)

  • Initial release

0.0.1 (2020-10-09)

  • Fork from pyzerproc

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pykulersky-0.5.5.tar.gz (9.2 kB view details)

Uploaded Source

File details

Details for the file pykulersky-0.5.5.tar.gz.

File metadata

  • Download URL: pykulersky-0.5.5.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.8.1 requests/2.26.0 setuptools/58.3.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for pykulersky-0.5.5.tar.gz
Algorithm Hash digest
SHA256 06d00ddc93f91eeb71a10ab86ff10ad225fd71187cc6a32c7d2de9af0f6d1662
MD5 3e059724d949f2ab44e7d743919c3727
BLAKE2b-256 1b58a5d70d05c2a25a984ba81265098125dd0621e800b479d3831eb4a93a4e29

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page