API and commands for interacting with the Pi Hut RGB Xmas Tree.
Project description
rgbxmastree
Code library, CLI, and examples for the RGB Xmas Tree produced by PiHut.
This fork from the original PiHut code is totally independent and very grateful to @bennuttal for the initial work! Any bugs and mistakes herein are my own.
Getting started
Install via pipx for easy access to the commandline interface:
pipx install rgbxmastree
You can now use the rgbxmastree command and subcommands to run your tree!
To use the API in your own scripts and applications install via plain pip or your favourite project management tool:
pip install rgbxmastree
poetry add rgbxmastree
uv add rgbxmastree
Initialising a tree instance
Open a Python shell or IDE, import RGBXmasTree and initialise your tree:
from rgbxmastree.tree import RGBXmasTree
tree = RGBXmasTree()
Change the colour
You can set the colour of all the LEDs together using RGB values (all 0-1):
from rgbxmastree.tree import RGBXmasTree
tree = RGBXmasTree()
tree.color = (1, 0, 0)
Alternatively you can use the colorzero library:
from rgbxmastree.tree import RGBXmasTree
from colorzero import Color
tree = RGBXmasTree()
tree.color = Color('red')
You can write a loop to repeatedly cycle through red, green and blue:
from rgbxmastree.tree import RGBXmasTree
from time import sleep
tree = RGBXmasTree()
colors = [(1, 0, 0), (0, 1, 0), (0, 0, 1)]
for color in colors:
tree.color = color
sleep(1)
Individual control
You can also control each LED individually, for example turn each one red, one at a time:
from rgbxmastree.tree import RGBXmasTree
from time import sleep
tree = RGBXmasTree()
for pixel in tree:
pixel.color = (1, 0, 0)
sleep(1)
To control a specific pixel, you can access it by its index number (0-24):
tree[0].color = (0, 1, 0)
Change the brightness
You can change the brightness from 0 to 1 - the default is 0.5. You can set this when initialising your tree:
from rgbxmastree.tree import RGBXmasTree
tree = RGBXmasTree(brightness=0.1)
Alternatively, you can change it after initialisation:
from rgbxmastree.tree import RGBXmasTree
tree = RGBXmasTree()
tree.brightness = 0.1
You'll find that 1 is extremely bright and even 0.1 is plenty bright enough if the tree is on your desk :)
Examples
RGB cycle
Cycle through red, green and blue, changing all pixels together
One-by-one
Cycle through red, green and blue, changing pixel-by-pixel
Hue cycle
Cycle through hues forever
Random sparkles
Randomly sparkle all the pixels
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rgbxmastree-0.1.0.tar.gz.
File metadata
- Download URL: rgbxmastree-0.1.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ac3434b69eb0a80e7927418918927e003f1b4fc2004b305c3e1a41e2e2b5d43
|
|
| MD5 |
a0a9daed5c20a502eac54d3821f3cf00
|
|
| BLAKE2b-256 |
45959468a3e1aeed068c24b86899434396b1ca2c6fb99f15a570b5a0f3dff5df
|
File details
Details for the file rgbxmastree-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rgbxmastree-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db86ab47e1bc4fad6294ac062e9cf809e793207196e0bf5f31642362fa6a8f66
|
|
| MD5 |
2e228a3b159c034c12cad43c595373df
|
|
| BLAKE2b-256 |
ccf9e0adb0c3d7e71aa30f699dc06fb6db73be2195e6f9cbe096d8daa2d778bd
|