Releases: jath03/openrgb-python
v0.3.0 - SDK Plugins and Segments
The two major introductions in this release are SDK Plugins and Segments. SDK Plugins allow OpenRGB's plugins (like the Effects Plugin) to interact with SDK clients. Segments is a relatively new feature in OpenRGB that allows you to create custom "sub-zones" instead of being forced to use the pre-defined zones.
Changes:
- SDK Plugins listed under
client.plugins
- Segments listed under
zone.segments
- Added new device types
- Fixed issue with HA and argument types
v0.2.10 - New OpenRGB SDK features and under-the-hood improvements
This release adds support for the latest revision of OpenRGB's protocol. This revision includes some additions to modes, including brightness control and the ability to manually save modes to flash (making the setting persist between power cycles)*.
Additions:
- Brightness controls via
mode.brightness
- Saving modes via
device.save_mode
or the newsave
argument to thedevice.set_mode
function - Improvements to how the raw data from the SDK is parsed, improving readability and making it easier to support new SDK protocol versions
* - If the device supports it
v0.2.6 - New helper functions and profile system
This release includes
RGBColor.fromHEX
- Ability to instantiate anRGBColor
from a hex color string.OpenRGBClient.get_devices_by_name
- An alternative way of selecting devices.- Support for the new profile controls from the OpenRGB server
- Various bug fixes
v0.2.4 - Lots of bugfixes + some new stuff
It's been a while since I've done a release, so this is a big one.
- Various bugfixes (see commit history)
- Recognized 2 new device types
- Error handling so that unrecognized device types now are stored as UNKNOWN
- Added support for OpenRGB SDK protocol versioning and the first version, v1
- Added
OpenRGBClient.ee_devices
to make it easier for effects engines or custom effects to only control devices that have a direct mode. - Added documentation for working with profiles
- Started a documentation page about writing custom effects
v0.2 - Documentation and More
The biggest parts of this release are the new documentation and a new (since v0.1.3) way to control your LEDs! Documentation can be found on readthedocs. The alternative control method is a new way to control your LEDs that will be familiar to users of FastLED or adafruit's NeoPixel libraries. More details in the docs
Other changes:
- Added the ability to resize zones (since v0.1.6)
- Added the ability to connect and disconnect from the SDK server. (since v0.1.4)
- The naming scheme of the constants was also changed to remove redundancy.
DeviceType.DEVICE_TYPE_MOTHERBOARD -> DeviceType.MOTHERBOARD
- Calling
update
on anOpenRGBClient
will now check whether new devices have been added.
v0.1.2 - Thread Safety
added thread safety
v0.1 Windows support
v0.1.0 Windows works
Fixed keyboard support + loading profiles without the SDK
Previously devices with zones with matrices (keyboards) would cause errors during initialization, but they now work! There is also an new example: keyboard-test.py
. You are also now able to load and edit OpenRGB profiles without having the sdk connected.
For example:
from openrgb.utils import Profile
with open("/path/to/profile.orp", "rb") as f:
p = Profile.unpack(f)
p.controllers[0].active_mode = 3
with open("/path/to/new/profile.orp", "wb") as f:
f.write(p.pack())
Install with
pip3 install openrgb-python
or if you use Arch Linux, you can use the new AUR package created by @GabMus
yay -S python-openrgb-git
Bug Fixes and Stability
v0.0.5 Minor fixes
v0.0.4 - Profiles
This update allows you to save and load OpenRGB profiles. Saved profiles can be accessed by the OpenRGB gui application when placed in the ~/.config/OpenRGB directory. Also, now mode information will be more accurate because it now filters out garbage data by actually paying attention to the ModeFlags.
from openrgb import OpenRGBClient
cli = OpenRGBClient()
cli.load_profile("rainbow") # "rainbow" could be any profile created either from the GUI or this client
from openrgb import OpenRGBClient
cli = OpenRGBClient()
cli.clear()
cli.save_profile("off") # this profile can now be accessed from the GUI application once you restart it