A library to interface with Magichue(or Magichome)
Project description
python-magichue
Magichue(as known as Magichome) is a cheap smart led bulb that you can controll hue/saturation/brightnes and power over WiFi. They are available at Amazon or other online web shop.
I tested this library with this bulb.
Example
Rainbow cross-fade.
import time
import magichue
light = magichue.Light('192.168.0.20') # change address
if not light.on:
light.on = True
if light.is_white:
light.is_white = False
light.rgb = (255, 255, 255)
for hue in range(1000):
light.hue = hue / 1000
time.sleep(0.05)
Installation
$ pip install python-magichue
Usage
import magichue.
import magichue
light = magichue.Light('192.168.0.20')
Power State
Getting power status.
print(light.on) # => True if light is on else False
Setting light on/off.
light.on = True
light.on = False
Getting color
This shows a tuple of current RGB.
print(light.rgb)
or access individually.
print(light.r)
print(light.g)
print(light.b)
Warm White bulb
Magichue has a two types of leds. One is rgb led and the other is warm white led. To use warm white led, do as following.
light.is_white = True
# light.is_white = False # This disables warm white led.
If warm white is enabled, you can't change color of bulb!
So, you need to execute light.is_white = False
before changing color.
Setting color
By rgb
light.rgb = (128, 0, 32)
or
light.r = 200
light.g = 0
light.b = 32
By hsb
light.hue = 0.3
light.saturation = 0.6
light.brightness = 255
hue, saturation are float value from 0 to 1. brightness is a integer value from 0 to 255. These variables are also readable.
Note about stripe bulb
Stripe bulb doesn't seem to allow jump to another color when you change color. To disable fading effect,
light.rgb = (128, 0, 20) # It fades
light.allow_fading = False # True by default
light.rgb = (20, 0, 128) # Jumps
Changing mode
Magichue blub has a built-in flash patterns.
To check current mode, just
print(light.mode_str) # string name of mode
print(light.mode) # integer value
and changing modes,
light.mode = magichue.RAINBOW_CROSSFADE
These are built-in modes.
RAINBOW_CROSSFADE
RED_GRADUALLY
GREEN_GRADUALLY
BLUE_GRADUALLY
YELLOW_GRADUALLY
BLUE_GREEN_GRADUALLY
PURPLE_GRADUALLY
WHITE_GRADUALLY
RED_GREEN_CROSSFADE
RED_BLUE_CROSSFADE
GREEN_BLUE_CROSSFADE
RAINBOW_STROBE
GREEN_STROBE
BLUE_STROBE
YELLOW_STROBE
BLUE_GREEN_STROBE
PURPLE_STROBE
WHITE_STROBE
RAINBOW_FLASH
NORMAL
Changing the speed of mode
speed is a float value from 0 to 1.
print(light.speed)
light.speed = 0.5 # set speed to 50%
Custom Modes
You can create custom light flash patterns.
mode
- MODE_JUMP
- MODE_GRADUALLY
- MODE_STROBE
speed A float value 0 to 1
colors A list of rgb(tuple or list) which has less than 17 length.
from magichue import (
CustomMode,
MODE_JUMP,
)
# Creating Mode
mypattern1 = CustomMode(
mode=MODE_JUMP,
speed=0.5,
colors=[
(128, 0, 32),
(100, 20, 0),
(30, 30, 100),
(0, 0, 50)
]
)
# Apply Mode
light.mode = mypattern
Other features are in development.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file python-magichue-0.2.6.tar.gz
.
File metadata
- Download URL: python-magichue-0.2.6.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf554e5f9ed58345b0e3bd2db1e545c339d1eddb0e072458f6f433fb8be58df9 |
|
MD5 | 4c5061c59f0c342bfc41db4e99217f7f |
|
BLAKE2b-256 | fdc25c4305f183058eda268fa04ea1a4af204d014379ab5e8c740f2c3866be91 |