• Stars
    star
    163
  • Rank 231,141 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 7 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

As LIFX no longer supports their Windows 10 app, I created an open-source alternative for controlling LIFX-brand smart lights.

LIFX-Control-Panel

codecov Smoke Build And Test

LIFX-Control-Panel is an open source application for controlling your LIFX brand lights. It integrates simple features, such as monitoring and changing bulb color, with more advanced ones, like:

  • Average Screen Color
  • Color Eyedropper
  • Custom color palette
  • Keybindings

Screenshot

Color Averaging Demo (Click for Video):

Avg Test Youtube

The application uses a fork of mclarkk's's lifxlan module to discover and send commands to the lights.

The fork can be found here.

Quick Start

There are 2 3 ways to install:

  1. Go over to releases and download the latest .exe file.

  2. Run pip install lifx-control-panel. To start run python -m lifx_control_panel.

Starting the program takes a moment, as it first must scan your LAN for any LIFX devices.

Running the source code

You can now install through PyPI, by running pip install lifx-control-panel. This will automatically install dependencies.

To manually install the dependencies, run pip install -r requirements.txt.

Due to some initial PyCharm cruft, the environment paths are a bit messed up.

  • The main script path is:
    • ..\LIFX-Control-Panel\lifx_control_panel\__main__.pyw
  • The Working Directory is:
    • ..\LIFX-Control-Panel\lifx_control_panel
  • Additionally, the Add content roots to PYTHONPATH and Add source roots to PYTHONPATH boxes are checked
    • I haven't been able to reproduce this in VSCode, yet.

Building

LIFX-Control-Panel uses PyInstaller. After downloading the repository, open a command window in the LIFX-Control-Panel directory, and run pyinstaller __main__.pyw. This should initialize the necessary file structure to build the project.

As admin, run pip install -r requirements.txt to install project dependencies. Note that pyaudio requires the use of pipwin to install - use pip install pipwin to obtain pipwin then install pyaudio using pipwin install pyaudio

To build the project, simply open a terminal in the same folder and run build_all.bat in the command prompt. It will call pyinstaller on build_all.spec. This should generate .exe files in the /dist folder of the project for each of the 3 specs:

  • main
    • This is the file that is used to build the main binary. The console, as well as verbose logging methods, are disabled.
  • debug
    • This spec file enables the console to run in the background, as well as verbose logging.
  • demo
    • The demo mode simulates adding several "dummy" lights to the LAN, allowing the software to be demonstrated on networks that do not have any LIFX devices on them.

If you need help using PyInstaller, more instructions are located here.

Testing progress

I have currently only tested on the following operating systems:

  • Windows 10

and on the following LIFX devices:

  • LIFX A19 Firmware v2.76
  • LIFX A13 Firmware v2.76
  • LIFX Z Firmware v1.22
  • LIFX Mini White Firmware v3.41
  • LIFX Beam

I've tried to test on the following operating systems:

  • MacOS X
  • Fedora Linux

However, the biggest hurdle seems to be the tk GUI library, which is not supported on MacOS X, and requires extra library installations on Linux.

Feedback

If you have any comments or concerns, please feel free to make a post on the Issues page.

If you enjoy LIFX-Control-Panel, please Like and leave a review on AlternativeTo.

NEW

Join our Discord Server

Donate

LIFX-Control-Panel will always be free and open source. However, if you appreciate the work I'm doing and would like to contribute financially, you can donate below. Thanks for your support!

Buy Me a Coffee at ko-fi.com

paypal

More Repositories

1

DiscordMud

MUD game and server that uses discord as a player interface
Python
21
star
2

Discordia

MUD (Multi-User Dungeon) for Discord.
Python
20
star
3

daylio-analysis

Machine Learning prediction and visualization of mental-health data using Bokeh and sklearn
Python
11
star
4

lifx-mycroft

A mycroft skill to control LIFX brand smartlights
Python
8
star
5

homeseer-mycroft

Mycroft skill for interacting with HomeSeer hub
Python
4
star
6

DiscordSocialGraph

Code for processing data collected from Discord user interactions, using Machine Learning to find social connections
Python
3
star
7

gTTS-Demo

A Heroku Webapp to test the Google TTS (gTTS) Python Module
Python
3
star
8

CellpondSpellbook

A collection of fun cellular automata made at cellpond.cool
3
star
9

Snake-Cogs

Cogs repo for my personal Red-Bot discord installation.
Python
3
star
10

Arcade3D

3D Rendering using Arcade game engine
Python
2
star
11

DesktopBuddy

Another iteration of DiscordMatrix, made to be faster and more reliant on Arduino code
Python
2
star
12

Thumbox

A pygame emulator for Thumby
Python
2
star
13

nca-taichi

Implementation of Neural Cellular Automata in Taichi Lang
Python
2
star
14

pill-image-recognition

Pill recognition project for Digital Image Processing and Senior Design
Python
2
star
15

GameOfLifeLiveWallpaper

Conway's Game of Life as an Android live wallpaper
Processing
1
star
16

pill-dispenser

Computer Engineering Senior Design Project 2016-2017
Python
1
star
17

GoL-Habitat

A simple Game of Life with Habitat helpers
JavaScript
1
star
18

Perlin_Noise

Playing around with noise generation in python
Python
1
star
19

GasSensor

Gas sensor and classification using Edge ML and a Wio Terminal
C++
1
star
20

wolfpy

Wolfenstein 3D-style raycasting engine in Pygame
Python
1
star
21

PySpiritBox

A Halloween project using an rtl2832U to commune with spirits
Jupyter Notebook
1
star