Skip to main content

A package to control Awox Mesh light bulbs.

Project description

Python package to control Awox mesh light bulbs.

API inspired by Matthew Garrett's python light bulb interfaces.

I have only one light bulb and so didn't really test the mesh features, and my light bulb was never associated with the official app.

Only tested with the ESMLm_c9 model, firmware version 1.2.4

Requires :

  • A recent version of Python 2 or 3 (tested with 3.6 and 2.7)
  • bluepy
  • pycryptodome

Installation

From the directory containing setup.py : pip install . or pip install --user . to install in the user's Python directory.

Usage :

From reports, it may not be possible to use the Awox app at the same time as this.

Setting the password on an unpaired light

The setMesh function may hang, but the light blinks when accepting the settings.

import awoxmeshlight
mylight = awoxmeshlight.AwoxMeshLight ("A4:C1:38:78:11:33")
mylight.connect() # Unless specified, the default name and password are used
mylight.setMesh("new_mesh_name", "new_mesh_password","new_mesh_key")
mylight.disconnect()

With the remote

Contributed by Pixtxa.

Reset the light (hold PowerOn + Fav. 1) and the remote (hold PowerOn + ColorCycle) and connect the remote to the light again (hold PowerOn). Now hold PowerOn and the blue button for a few seconds, so the remote switches to Bluetooth-mode. Use BT-app (nRF-Connect or so) to get the mac and name (both will have the same name, its "R-" followed by the last 6 digits of the remotes mac-address). Password will be "1234".

For the remote:

import awoxmeshlight
myremote = awoxmeshlight.AwoxMeshLight ("A4:C1:38:75:24:93", "R-752593", "1234") #change to your remotes data
myremote.connect()
myremote.setMesh("PixtxaLightNet", "IeY3johvoosh","4556572782865925") #better change all of them
myremote.disconnect()

[After setMesh(...) the program didn't work, but the data was set, so i killed the task]

For the light:

import awoxmeshlight
mylight = awoxmeshlight.AwoxMeshLight ("A4:C1:38:78:62:74", "R-752593", "1234") #change to your lights data
mylight.connect()
mylight.setMesh("PixtxaLightNet", "IeY3johvoosh","4556572782865925") #same as on the remote
mylight.disconnect()

[After setMesh(...) the program didn't work, but the data was set, so i killed the task]

Now you can run a simple test script:

import awoxmeshlight
import time
mylight = awoxmeshlight.AwoxMeshLight ("A4:C1:38:78:62:74", "PixtxaLightNet", "IeY3johvoosh")
mylight.connect()
mylight.setColor(0x00, 0xFF, 0x00) #green
mylight.setColorBrightness(0x01) #dark
time.sleep(1)
mylight.setColorBrightness(0x64) #bright
time.sleep(1)
mylight.setPreset(0) #colorchange
mylight.setSequenceFadeDuration(500)
mylight.setSequenceColorDuration(500)
time.sleep(15)
mylight.setWhite(0x00, 0x7F) #coldwhite
time.sleep(1)
mylight.setWhite(0x73, 0x63) #warmwhite
time.sleep(1)
mylight.off()
time.sleep(1)
mylight.on()
mylight.disconnect()

Printing some debug info

Functions don't print anything, instead the logging module is used.

Example using the logger to print everything to stderr :

import awoxmeshlight
import logging

logger = logging.getLogger("awoxmeshlight")
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler ()
handler.setLevel(logging.DEBUG)
logger.addHandler (handler)

mylight = awoxmeshlight.AwoxMeshLight ("A4:C1:38:97:11:33", "mesh_name", "mesh_password")
mylight.connect ()
mylight.setColor (0x50, 0x76, 0x00 )
mylight.disconnect()

Procedure to manually reset the light bulb (from Awox FAQ video):

Turn on and off in the following sequence :

  • 3 times :
    • On during 1 sec
    • Off during 6 sec
  • On 10 sec
  • Off 10 sec
  • On 10 sec
  • Off 6 sec
  • On -> Light will blink and turn red

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

awoxmeshlight-0.1.0.tar.gz (7.7 kB view hashes)

Uploaded Source

Built Distribution

awoxmeshlight-0.1.0-py2.py3-none-any.whl (8.2 kB view hashes)

Uploaded Python 2 Python 3

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