Socket
Socket
Sign inDemoInstall

pykulersky

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pykulersky

Library to control Brightech Kuler Sky Bluetooth LED smart lamps


Maintainers
1

========== pykulersky

.. image:: https://img.shields.io/pypi/v/pykulersky.svg :target: https://pypi.python.org/pypi/pykulersky

.. image:: https://github.com/emlove/pykulersky/workflows/tests/badge.svg :target: https://github.com/emlove/pykulersky/actions

.. image:: https://coveralls.io/repos/emlove/pykulersky/badge.svg :target: https://coveralls.io/r/emlove/pykulersky

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.

.. code-block:: console

$ 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

.. code-block:: python

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

.. code-block:: python

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

.. code-block:: python

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

.. code-block:: python

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
-------

- Thanks to `Uri Shaked`_ for an incredible guide to `Reverse Engineering a Bluetooth Lightbulb`_.

- This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _`Uri Shaked`: https://medium.com/@urish
.. _`Reverse Engineering a Bluetooth Lightbulb`: https://medium.com/@urish/reverse-engineering-a-bluetooth-lightbulb-56580fcb7546
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc