Releases: taburineagle/NeewerLite-Python
NeewerLite-Python 0.12d
New release! 0.12d is 0.12c, but bringing all of the latest Flatpak commits into the new release. New features include -
- Re-creation of the Bleak object (the connection to the light) if a light is available, but then un-links, to force a re-link.
- Added a JavaScript-based refresh timer method for the HTTP server that refreshes the information on the status webpage every 8 seconds.
NeewerLite-Python 0.12c
New release! Bringing the latest features to the main release -
- Re-creation of the Bleak object (the connection to the light) if a light is available, but then un-links, to force a re-link.
- Added a JavaScript-based refresh timer method for the HTTP server that refreshes the information on the status webpage every 8 seconds.
NeewerLite-Python 0.12b
Small bugfix release -
- Changed how asyncio finds/initializes the main loop - for #46, instead of using get_current_loop() (which is now deprecated as of Python > 3.10), I made the loop global and initialized it when initializing the program. Same base functionality, but a little more streamlined, and plays nicer with more recent Python versions.
- Fixed one CLI bug - when disconnecting from light in CLI mode, the program still searched for the GUI (which obviously isn't around in CLI mode), it now exits correctly.
NeewerLite-Python 0.12
New release! (yeah, it's been a while...)
New features and tweaks include:
Main program -
- Added support for default settings for multiple Neewer light configurations (added: GL1, NL140 SNL1320, SNL1920, SNL480, SNL530, SNL660, SNL960, SRP16, SRP18, WRP18, ZRP16, BH30S, CB60, CL124, RGB C80, RGB CB60, RGB1000, RGB1200, RGB140, RGB168, RGB176 A1, RGB512, RGB800, SL-90, RGB1, RGB176, RGB18, RGB190, RGB450, RGB480, RGB530 PRO, RGB530, RGB650, RGB660 PRO, RGB660, RGB960, RGB-P200, RGB-P280, SL-70, SL-80, ZK-RY configurations) to (hopefully) work out-of-the-box for most setups. Thank you @PrezP for bringing the master list of Neewer lights to my attention! Some of those lights are not Bluetooth controllable, so they won't work with NeewerLite-Python (as the program can only control Bluetooth lights), but those types are still stored in the master list.
- Tweaked a few file handling procedures, all reads and writes to files are now UTF-8 compliant, so custom names (like Øvre venstre) are handled correctly, and are capable for custom light names.
GUI -
- Revamped CCT, HSI and Animation/Scene panels with new gradients - now every slider has a gradient.
- Dragging on the Hue slider on the HSI tab now shows an approximate gradient in the Saturation slider, showing what a more diluted color may look like.
- Added 2 gradient producing functions to generate the gradients for ^^^ and for the CCT panel's color temperature slider gradient (if you choose a light that has a wider gamut, so does the gradient now, and it's adaptable to any color temperature range... within reason 😊)
- Altered the "Light Prefs" dialog to provide custom color temperature ranges for lights that support it (some support color temps of 10000K!) instead of just 5600K and 8200K ranges.
HTTP Server -
- Added JavaScript button on the main lights page to allow renaming lights with custom names directly from the HTTP Server (without needing to go into the GUI to do it) - if you change the name, the light name will change, and the preferences file to save that information will be saved in the
light_prefs
folder - if you don't rename the light (or click cancel), no changes will be made.
NeewerLite-Python 0.11
New release!
NOTE: The location of the global preferences file NeewerLite-Python.prefs
changes in this version to sit inside the light_prefs
folder - so if you have custom preferences, please move the NeewerLite-Python.prefs
file from the root program directory into the light_prefs
folder.
- Added ability in the HTTP server to use custom presets generated by the GUI with the
use_preset
command - both global and snapshot presets work as they would in the GUI - hoping to have save_preset for the next version to save presets via the HTTP interface! - Added ability to send a command to the HTTP server but not render a HTML page back out with the
nopage
command (useful in situations where you don't necessarily need confirmation that the command went through, and don't want to waste the bandwith of rendering the HTML page) - Tweaked the display of the elements on the HTML pages that render to show more detail - also
list
lists the lights available and all of the custom preset information now - Added documentation by @maxime-roy for making NeewerLite-Python's HTTP server into a systemd service for Linux installations such as the Raspberry Pi - thanks again!
- A few other small tweaks here and there
NeewerLite-Python 0.10
New release! The largest improvement from the last version is sorting -
-
Added ability to sort by the Name and MAC Address/GUID headers in the light selector - clicking on the Name header displays a dialog asking if you want to sort by RSSI, Light Type or Custom Name (if you have any custom names set, otherwise this option won't come up), and clicking on the MAC address/GUID header automatically sorts by those values.
-
HTTP Server: Added ability to refer to all lights currently available by using the asterisk character * - so if you want to send a command to set every light to 0% brightness, you'd use a URL like:
http://127.0.0.1:8080/NeewerLite-Python/doAction?light=*&bri=0
-
Fixed a small display issue in the light selector display when the amount of attempts at connecting timed out (before this update, the light selector display would show messages like Attempt 7 of 6)
-
Fixed small issue when clearing custom names from lights that have them (before this update, the name itself would be removed from the light, but the light selector would not update to reflect the removal of the name)
-
Fixed issue with snapshot presets that wouldn't correctly load the last stored settings for a snapshot preset into a specific light's "last used parameters" if the last loaded preset was a snapshot preset that turned all the lights off (when turning the lights back on, I originally omitted switching the "on" flag back on for those lights)
NeewerLite-Python 0.9
New in this version, I've officially added whitelisted MAC addresses. This will allow you to include devices that don't use (or for some reason don't display) "NEEWER" in their name, but are still compatible with the program. This feature isn't to add devices that aren't lights, although that is theoretically possible to do - but that wouldn't do much for you 🤣 A much bigger addition is the highlight though - CUSTOM PRESETS! I've written a custom preset system that lets you do the following things:
Global default presets
Before you set a custom preset, the 8 preset buttons are pre-configured with default global presets that will affect whichever light you currently have selected, or if none are selected, all the lights in your list. The default presets are:
1 - Set all selected light(s) to CCT mode, 5600K, 20% Brightness
2 - Set all selected light(s) to CCT mode, 3200K, 20% Brightness
3 - Set all selected light(s) to CCT mode, 5600K, 0% Brightness (off, basically)
4 - Set all selected light(s) to HSI mode, 0° hue, 100% Saturation, 20% Brightness (RED)
5 - Set all selected light(s) to HSI mode, 240° hue, 100% Saturation, 20% Brightness (BLUE)
6 - Set all selected light(s) to HSI mode, 120° hue, 100% Saturation, 20% Brightness (GREEN)
7 - Set all selected light(s) to HSI mode, 300° hue, 100% Saturation, 20% Brightness (PURPLE)
8 - Set all selected light(s) to HSI mode, 160° hue, 100% Saturation, 20% Brightness (CYAN)
Custom Global and Snapshot Presets
To set a custom preset, right-click on one of the buttons to save it. You can save two types of presets, global presets like the default buttons, save the last used parameters that you've sent to a light, and when recalled, affect whichever lights you have selected (or all, again, if you have none selected), and snapshot presets. Snapshot presets are where it gets interesting - these presets allow you to save multiple configurations of lights in one preset, so if you have 2 background lights using 2 different HSI values for a color backdrop, and a third light on CCT mode as a fill light, you can save a snapshot preset to remember all of the settings each light uses to recall later all at once. You can also break down snapshot presets themselves in 2 ways - save the parameters for every single light in the table, or save the parameters for only the selected lights - this lets you control multiple lights, but leave certain ones out if you'd rather tweak them individually (for the example above, you could save the background lights' color setup, but leave the fill light unaffected by the snapshot preset - so you could tweak the fill light, load the snapshot preset, and the background lights would adjust but the fill would stay the way you set it). Hovering over a snapshot preset button also lights the affected lights in green, allowing you to know which lights will be changed when loading the preset.
NeewerLite-Python 0.8
This update adds the following features:
- Better parallelization on connecting/disconnecting from lights (instead of doing the connect process one at a time, NeewerLite-Python now attempts to connect (and disconnect, on exit) to all the lights available to it at the same time)
- A lockfile system to prevent NeewerLite-Python from opening more than one instance of the program (per request of #20)
- A
--force_instance
command-line switch, as well as a dialog box (in GUI mode), that can recover and start another instance in case the program crashes, regardless if the lockfile is still in place (if a crash occurs, the lockfile doesn't get deleted, so the program still thinks you're running 2 copies), (also per request of #20) - Better "connect to light" logic that waits several seconds before attempting to a light that's being difficult to connect to
NeewerLite-Python 0.7
Added the global preferences tab, allowing you to set:
- Whether NeewerLite-Python checks for new lights on launch
- Whether new detected lights automatically try to link
- Whether to print debug messages to the console or not (useful to do so, but you can turn it off...)
- Whether or not to remember the last used parameters for each light when quitting out (mode, hue, brightness, etc.) - these settings are stored in a
light_prefs
folder in the main folder, and recalled when the lights are re-discovered the next time you launch the program - Number of retries before the program throws an error
- Allowable IPs to use with the HTTP server daemon
- Custom keyboard shortcuts for every button and slider in the main program (for request #3)
The global preferences are stored in a NeewerLite-Python.prefs
file in the main program directory. Also added error correction if light has issues with sending power/channel status data.
NeewerLite-Python 0.6b
This release is a bugfix for 0.6 - the HTTP server implementation didn't let more than one Bleak call go through on Linux installations (both Ubuntu and Raspberry Pi OS/Raspbian had the issue) - so the asyncio call was moved to the top of the HTTP server and only called once (which is a better way of doing it anyway) - also, quitting out of the HTTP server now manually unlinks from each light. Neither Windows or MacOS had these issues (or their Bleak implementation just disconnected differently), so now everything should be good on Linux as well.