Go to file
pyup-bot 96071a5db6 Update click from 8.0.4 to 8.1.0 2022-03-28 23:35:00 +02:00
luxafor 0.1.0 2017-05-04 12:34:27 +02:00
.gitignore PyVenv - provide Makefile building a virtual environment (#16) 2021-11-11 19:21:33 +01:00
LICENSE Initial commit 2017-01-17 21:26:08 +01:00
Makefile PyVenv - provide Makefile building a virtual environment (#16) 2021-11-11 19:21:33 +01:00
README.md PyVenv - provide Makefile building a virtual environment (#16) 2021-11-11 19:21:33 +01:00
examples.ipynb Added an ipython notebook with examples 2017-01-22 20:35:10 +01:00
pylintrc Added pylintrc 2017-01-18 08:46:56 +01:00
requirements.txt Update click from 8.0.4 to 8.1.0 2022-03-28 23:35:00 +02:00
setup.py 0.1.0 2017-05-04 12:34:27 +02:00

README.md

pyluxafor

Helper interface and CLI to interact with luxafor products.

Install

git clone git@github.com:fmartingr/pyluxafor.git
cd pyluxafor
python3 setup.py install

Ensure that USB device gets proper permissions

Create UDEV rule in /etc/udev/rules.d/60-luxafor.rules with the following content

# add Luxafor LED flag
SUBSYSTEMS=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="f372", MODE:="0666"

Reload udev configuration files

sudo udevadm control --reload && sudo udevadm trigger

Reinsert the Luxafor LED light.

Using the CLI

Pyluxafor provides the luxa command to interact with the USB led in the same way as the library does, with some helper commands to convert colors between RGB/Hex.

# Converts between hexadecimal to decimal color notations
luxa hex2dec 00ff00
luxa dec2hex 255 255 0

# Set a flag with a fixed color
luxa set --led=all #ff0000

# Fade
luxa fade --led=all --speed=10 #00ff00

# Strobe
luxa strobe --led=front --speed=100 --repeat=10 #0000ff

# Wave
luxa wave --wave 3 --duration=100 --repeat=200 #ff0000

# Pattern
luxa pattern --repeat=2 2

# Turns off the luxafor
luxa off

# Using the conversion helpers in one command
luxa set $(luxa dec2hex 255 0 0)

Using as a library

from luxafor import luxafor

lux = luxafor.Luxafor()

# Led types
luxafor.Leds.ALL
luxafor.Leds.FRONT
luxafor.Leds.BACK
luxafor.Leds.LEDn # Where n is a number from 1 to 6, refer to the class

# Set a basic color
# From: off, yellow, green, blue, magenta, cyan, red, white
lux.set_basic_color('green')

# Set a static color
lux.set_color(<red>, <green>, <blue>, <led>)

# Fade to a color
lux.fade(<red>, <green>, <blue>, <led>, <speed>)

# Strobe
lux.strobe(<red>, <green>, <blue>, <led>, <speed>, <repeat times>)

# Wave
# Wave types:
# 1: Short wave
# 2: Long wave
# 3: Overlapping short wave
# 4: Overlapping long wave
lux.wave(<red>, <green>, <blue>, <led>, <wave type>, <duration>, <repeat times>)

# Enable predefined pattern
# Patterns from 1 to 8
lux.pattern(<pattern number>, <repeat>)

# Turn off the luxafor
lux.turn_off()