Releases: EternityForest/KaithemAutomation
0.80.0
0.80.0 (Apr 24)
Another breaking change heavy beta release. You can now have multiple Chandler boards
and JACK mixers.
The good news is that there are now no more major globally-configured objects,
which was the main issue with these breaking changes.
Removed
- ⚰️ Remove ability to create new Mako user pages. Jinja2 all the way!
- ⚰️ Tag point universes are gone
- ⚰️ Remove non-chandler simple video signage
- ⚰️ Special characters no longer allowed in resource names.
Fixed
- 🐛 Fix loading event after external formatter messes with it.
Added
-
✨ Checkpoint cues. When a Chandler scene starts, it goes to the last cue it was in with the checkpoint flag. The checkpoints are saved to disk as soon as you enter.
-
✨ __setup__ cues. Chandler scenes go to this cue if it exists at start before going to any checkpoint.
-
✨ Button to add time to a running cue
-
✨ Print more logs
-
✨ Now you can add tag points directly to a scene as a value.
-
✨ Any module in your ~/kaithem/plugins folder will be imported at early
boot. This is part of the ongoing effort to enable creating content
outside the web UI. -
✨ Configurable tag points are back! This time much simpler, as a resource plugin.
-
✨ Config files, resource top level keys, and tag points snake_case, enforced by auto conversion.
-
✨ 💥 Chandler boards and audio mixers are resources now. There's no global, and you can have multiple. Universes are global so that boards can share DMX interfaces, but resources are not.
Dev
- 🔨 Pages and Events moved to core plugin(Code refactor, no change for end users)
v0.79.0
0.79.0
Development is advanced enough on the new overhaul that it makes sense
to start using the GitFlow methodology.
-
⚰️ Mako user pages are deprecated and will be removed
-
⚰️ The
kaithem
object will likely be removed eventually. Replace with importablekaithem.api
when in catches up on features. -
⚰️ 💥 Remove ALL web tag configurability.
Since this was a core feature, it will be back. But it was one of the worst parts of the codebase AND had bad UX, it was very much in need of a full rewrite.
For now it is not possible to set or override alerts. I normally hate rewrites, but believe this is really needed. You can create loggers already, they are their own separate resource type.
Tags, in newer editions, should have a single source of config, and the code for config should be separate from tag internals.
-
⚰️ 💥 Remove freeboard.
It was a good run, but I'd rather focus on core code quality than maintain the customized fork, which in itself had become bloated. Similar functionality may come back, but really, Chandler handles those use cases. -
✨ Switch from typeguard to Beartype.
-
✨ More unit testing
-
✨ Loggers are now a resource type that lives in modules, separate from tags.
-
⚰️ Remove more old files
-
⚰️ Remove all references to custom
recur
library, use more standard dateutil+recurrent -
✨ __schedule__ special cue skips ahead through a chain of cues with @time lengths, to the one matching the current time best.
-
🐛 fix broken shuffle:* special cue
-
⚰️ Must explicity specify a type for all display tags
-
💄 Move help to inside the tools page
-
🔨 Many features moved to included core plugins, but still work exactly as before.
-
🐛 Fix module import/export
-
🐛 Fix back button taking user to old version of event
v0.78.0
0.78.0
This is another pretty heavy breaking change release. Nearly every file has been touched.
I was not going to release this so early. There may be bugs. YMMV.
Consider it early alpha. However, it does seem to work just fine.
However I discovered that the old installer was unreliably due to
some kind of virtualenv behavior where it decides to randomly use
/venv/local/bin instead of /venv/bin.
To fix this, we are moving to pipx and Poetry, eliminating almost all the custom
installation related code.
To do so I had to get rid of --system-site-packages
completely. This change broke gstreamer, but there is a fix!
Thanks ❤️ to happyleavesaoc for discovering
a way to make gstreamer work in a virtualenv. All you need to do is symlink the gi package
into your site-packages! Kaithem now does this automatically on Debian and probably most everything
else.
In an unrelated bit of news, I discovered that a huge number of things were not loading due to
python/cpython#91216. Kaithem now contains a workaround for it in tweaks.py.
and can load things affected by the bug.
-
🐛 Fix unused subdevice nuisance method resolution error
-
⚰️💥 Remove old baresip code
-
⚰️💥 Remove kaithem.midi API
-
⚰️💥 Remove the image map creator util
-
⚰️💥 Remove kaithem.time.accuracy, lantime, hour, month, day, second, minute, dayofweek
-
⚰️💥 Remove kaithem.sys.shellex, shellexbg, which
-
⚰️💥 Remove kaithem.events.when and kaithem.events.after
-
⚰️ Remove nixos config that was probably outdated. It's in the log if ya need it!
-
💥 Default storage dir is now ~/kaithem no matter how you install it
-
🔨 Split off the sound stuff in a separate libary IceMedia meant for easy standalone use.
-
🔨 Split off internal scheduling and state machines to Scullery meant for easy standalone use.
-
🔨 Move to pyproject.toml
-
🔨 Move to a pipx based install process
-
♻️ A very large amount of old code is gone
-
♻️ Start moving to a proper dialog generation class instead of ad-hoc templates.s
-
💄 Add badges(CC0 licensed)
-
💄 Slim down the readme
v0.77.0
0.77.0
This release was going to be a simple polish and bugfix.... However, I discovered some
subtle bugs related to a legacy feature, and this turned into a pretty big cleanup effort in some older code, removing several old features.
While this release should be ready and usable,
and has been tested, you should use it with caution just due to the scope of changes involved.
Previously you could save device config both in
modules and a global devices list. That and several other aspects of device config were
causing lots of user and implementation complexity.
Now you can only save them in modules. Keeping them in modules lets you use the import/export features and is much more powerful. You can still load legacy devices until the next version. Please make a module and move your devices there, you can set where to save a device on the device page.
-
🐛 Restore the broken optimization for events that don't need to poll
-
🐛 Fix fixture types window being too small
-
🐛 Fix nuisance error when deleting mixer channel
-
🐛 Fix enttec open atapter showing as disconnected when it wasn't
-
🐛 Fix unsupported device warnings feature
-
🐛 Displayed value in UI correctly updates for refresh button
-
🐛 Fix devices UI setting bad value when you specified 'false'
-
🐛 Remove caching on modules listing that was casuing issues.
-
🐛 Notification handler code was spawning tons of threads bogging everything down.
-
💄 Better combo box feel
-
💄 Icons switched to MDI Icons for harmony with other automation platforms.
-
💄 More compact strftime default
-
⚰️ Remove the complicated and never-used system for creatig device types in events
-
⚰️ Remove the legacy device type system and all the devices from before iot_devices. All were unmaintained and some may have been broken by hardware vendors.
-
⚰️ Remove the input and output binding feature of devices. Chandler can do everything it could, and it was not a clean separation of device and logic.
-
⚰️ Remove the bluetooth admin panel. Try bluetuith!
-
⚰️ Remove some old junk files
-
⚰️ kaithem.gpio is gone. Use the GPIO devices in the device manager for this purpose.
-
✨ BREAKING: The name of a device stored in a module is independet of module name or folder
-
✨ BREAKING: / now used to separate subdevice names
-
✨ BREAKING: Device config dirs now end with .config.d, automatic migration is impossible, however nothing except the DemoDevice uses conf dirs.
-
✨ BREAKING: It is no longer possible to save devices outside modules. Please migrate all devices to a module(Legacy devices still load, they just can only be saved into modules.)
-
🔨 Use pre-commit
Specific devices removed:
- BareSIP
- Kasa
- Sainsmart Relay boards
- RasPi Keypad
- JACK Fluidsynth
- Espruinio
Some may return in iot_devices later.
v0.77.0 Beta
0.77.0 Beta
- 🐛 Autosave did not save deletions, only changes
- 🐛 Fix chandler slide overlay refreshing over and over
- 🐛 Chandler missing fixtures info in UI until you modify something
- 🐛 Fix some media files unable to be served to the web player
- 🐛 Cues now reentrant by default again
- 🐛 Fix fade in not displayed after loading
- 🐛 Fix sound fade in for non-web audio
- 🐛 Fix sound "windup"
- 🐛 Chandler and mixer state could get out of sync if the websocket disconnected and reconnected
- ✨ Move universe and fixture setup to a separate chandler setup page
- ✨ Can now rename cues
- 🐛 Fix web player not starting at the right time after needing manual click to start
- ✨ Can now customize the HTML for the scene web player
- ✨ Chandler cues can now have Markdown text content to show in the slideshow sidebar
- ✨ User settings are instant, no more manual save step
- ✨ Cues inherit rules from the special _rules_ cue if it exists.
- ✨ If sound_fade_in is 0, then use the cue lighting fade for the sound as well if it exists
- ⚰️ nosecurity command line flag removed
- ✨ Permissions have been consolidated.
- ✨ Chandler has consoleNotification command to send a message to the dashboard
- 🐛 Fix bug where scene timers would mess up and repeatedly fire
v0.76.1
0.76.1
- 🐛 Critical Bug: Fix chandler universes not being saved correctly
v0.76.0
This release is mostly about cleanup and reliability. Some documentation in the readme has been moved to the wiki and we have the following features and fixes
0.76.0
- 🐛 Fix utility scene checkbox in chandler not showing correct value
- 🐛 Fix Chandler relative length with web slides
- 🐛 Fix iot_devices not setting the default
- 🐛 Fix shortcut code normalization(10.0 is treated same as 10)
- 🐛 Upload new chandler scene adds to rather than replaces the existing scenes
- 🐛 Fix broken highlighting in some themes
- 🐛 Fix support for midi devices with odd chars in the names
- ✨ Can hide a scene in runtime mode
- ✨ Chandler can now import and export audio cues in a scene as M3U playlists(With fuzzy search for broken paths!)
- ✨ Confirm before delete cues
- ✨ Add ability to move Chandler rules around
- ✨ Scene display tags can now be inputs
- ✨ Don't log thread start/stop if they have generic Thread-xx names
- ✨ Chandler updated to work with Vue3
- ✨ Chandler has autosave(10min)
- ✨ Chandler save setup and save scenes buttons now just one save button.
- ✨ Chandler has a proper loading animation
- ⚰️ Raw cue data text view has been removed
v0.75.1
- 🐛 Fix chandler scenes sometimes sharing all data for the default cues
- 🐛 Fix makefile install process
- 🐛 More reliable max-volume-at-boot script
- ✨ Web console runs in ~/kaithem/venv if it exists(Change this if desired in kaithem's bashrc)
- ✨ Settings page link to set ALSA mixer volume to full
0.75.0
✨ Default page title is now the hostname
✨ Devices report feature lets you print out all the device settings
🐛 Nuisance gstreamer output
🐛 esphome api key correctly marked as secret
✨ Improve maps quality
✨ Chandler shows time at which each scene entered the current cue
0.73.2
Use system audio settings in Pipewire mixing