Releases: stefanvictora/hue-scheduler
Releases · stefanvictora/hue-scheduler
v0.12.3: Further Sync Fixes
Fixed
- Scene Sync: Resolved an issue where scene synchronization failed for states spanning multiple days (#16).
- Scene Sync: Removed unnecessary scene synchronization triggered during power-on in certain cases.
v0.12.2: Support for older bridges
Added
- Disable SSL Validation: Introduced a new
--insecure
flag to disable SSL certificate validation, needed for bridges using self-signed certificates (#18). Refer to the Philips Hue Developer Documentation (login required) for more details.
Changed
- Configuration File Handling: Enhanced handling of tabs in the configuration file and improved error messages for invalid properties (#17).
v0.12.1: Sync Fix & Expanded CT Support
Fixed
- Scene Sync: Fixed an issue where scene synchronization failed to handle interpolations across days, causing lights to sync as off (#16).
Added
- Enhanced CT Support: Enabled support for setting 1000 Kelvin as color temperature (CT) for color lights. Removed the InvalidColorTemperatureValue error; now, if the specified CT is outside the supported range, it automatically adjusts to the nearest valid value (#15).
v0.12.0: Scene Sync
Added
-
Scene Sync Feature: Hue Scheduler can now sync states to scenes, ensuring that smart switches and motion sensors always activate lights in the correct state.
- To enable this feature, use the
--enable-scene-sync
command line flag or setENABLE_SCENE_SYNC=true
as an environment variable (default:false
). - Additional Configurable Properties:
--scene-sync-name
: Specifies the name for the synced scenes (default:HueScheduler
).--scene-sync-interval
: Defines the interval for scene synchronization in minutes (default:2
).
- Limitation: Currently, this feature is supported only when connected to a Hue bridge.
- To enable this feature, use the
-
APIv2 Light Effects: Added support for scheduling all Hue APIv2 light effects.
- Includes effects such as
candle
,fire
,prism
,sparkle
,opal
,glisten
, etc. - Note: Supported effects vary based on the light model and are verified during startup.
- Includes effects such as
Changed
- Hue APIv2 Migration: Fully migrated to Hue APIv2 for enhanced functionality and compatibility.
- Error Handling: Improved error handling for API lookups to prevent the loss of schedules.
- Color Temperature Comparison: Enhanced the comparison of color temperature (CT) values using a defined threshold for better tolerance.
- State Interpolation: Improved state interpolation for scenarios where schedules modify only specific properties.
Removed
- Group Effects: Applying effects to groups is no longer supported due to Hue APIv2 limitations.
- The
colorloop
andmulti_colorloop
effects are no longer available. Use theprism
effect for individual lights instead. - The
--multi-color-adjustment-delay
configuration parameter has been removed.
- The
v0.11.0: Enhanced Colors & Scene Activation Detection
Added
- Scene Activation Detection: Hue Scheduler now temporarily disables turn-on event tracking for affected lights and groups when scenes are activated. This prevents it from taking over control when lights are turned on via scenes (#10).
- A new
--scene-activation-ignore-window
command line option has been added to fine-tune this behavior, with a default value of5
seconds. - To disable this behavior, you can either disable user modification tracking entirely (see
--disable-user-modification-tracking
) or set theforce:true
property on a state-by-state basis. - Limitations: When connected to Home Assistant, scenes turned on via the Hue bridge (e.g., via apps, smart switches, etc.) cannot be detected due to Home Assistant limitations. However, Hue-based scenes turned on via Home Assistant can still be detected.
- A new
Changed
- Color Accuracy: Enhanced algorithms for RGB to XY and XY to CT conversions.
- Color Comparison: Implemented similarity thresholds for detecting manual overrides in color and brightness, replacing exact matches.
Fixed
- Home Assistant: Resolved an issue with using
effect:colorloop
. More effects will be added in upcoming releases.
Removed
- Hue and Saturation: Removed support for setting
hue
andsat
properties independently, as this feature was only available in Hue API v1.
v0.10.0: Home Assistant API Support & Docker Image
Added
-
Added support for Home Assistant (HA) Rest and WebSocket APIs 🥳: Hue Scheduler can now control lights and devices through HA, allowing you to manage a wider range of smart home devices.
- Setup: Simply point Hue Scheduler to your HA instance (e.g.,
http://ha.local:8123
) and provide a long-lived access token, and you are good to go. - Supported Entity Types:
light
,input_boolean
,switch
,fan
. - Limitation: HA always appends
on:true
to all state changes in API calls, which can cause manually turned-off lights in groups to turn back on, unlike the Hue API.
- Setup: Simply point Hue Scheduler to your HA instance (e.g.,
-
Official Docker Image: Published on Docker Hub at stefanvictora/hue-scheduler. Check the updated README for detailed usage instructions.
Changed
- Java Version Requirement: Updated the minimum Java version to 21 to accommodate new features and enhancements.
- Virtual Threads: Improved scheduling performance by adopting virtual threads.
- Scheduling Optimization: Enhanced "off" detection for lights, reducing unnecessary API calls. Improved start time calculation performance, reducing overall start-up time.
- Documentation Update: Restructured the README for better readability. Extracted detailed documentation into separate files:
v0.9.0: State Interpolations and Improved Group Support
Added
- Added interpolations for tr-before states (#4): For states using
tr-before
, if the light is turned on mid-transition, Hue Scheduler now calculates the mid-transition point based on the previous state and time elapsed, then continues the transition from there. Additionally, Hue Scheduler now supports transitioning between all color modes by converting values among CT, XY, and Hue/Sat. - Added
interpolate:true
state property that enables dynamic transitions from the previous state, without having to manually settr-before
- Added
--interpolate-all
command line flag to globally setinterpolate:true
for all states, unless a state is explicitly marked otherwise tr-before
transition times can now utilize both absolute and solar time references, such astr-before:12:00
ortr-before:sunset+10
- Added
--interpolation-transition-time
command line option: Allows configuration of the default transition time for interpolated calls in 100ms increments. Used when the previous state does not have an explicit transition time set via thetr
property. Default:4
(= 400 ms). - Added capability validations to groups: On startup, group states are now validated against the capabilities of the contained lights.
- Added ability to specify brightness (
bri
) [1%
-100%
] and saturation (sat
) [0%
-100%
] values in percentages - Added a
h
shorthand fortr
andtr-before
properties. Additionally, combinations like1h20min5s3
are now possible for more fine-grained control. - Added automatic gaps for consecutive states with transitions: To prevent the Hue bridge from potentially misreporting target light states, which would result in false manual modification detections, short gaps are automatically added. This feature is active unless manual modification tracking is disabled. Added
--min-tr-before-gap
command line property to configure the minimal gap enforced by Hue Scheduler. Default:3
minutes.
Changed
- Extended
tr-before
max value to 24 hours by splitting up long-running transitions into multiple calls and interpolating between them. - Enhanced manual modification tracking for groups: Hue Scheduler now compares the state of every light in a group, instead of just the first one. Special cases for groups with different light capabilities are automatically handled, as, e.g., we can't expect color temperature lights to display color.
- Enhanced modification tracking for color states: Comparisons now factor in the light's color gamut.
- Optimized turn-on tracking for groups: Hue Scheduler now leverages group-on events rather than monitoring the first light inside a group. Moreover, every physically turned-on group light now triggers a group-on event, as the Hue bridge does not create any events in such cases.
- Extended the functionality of the
force:true
property: It can now rescheduleon:false
states upon power-on, ensuring lights remain off during a specified time periods. - Reduced max value for
tr
to60000
, equivalent to 100min, to conform with the max value supported by the API v2. - Improved support for
tr-before
transitions that span between two days - Improved support for 'On/Off plug-in unit' type lights
- Improved log messages
Removed
- Removed obsolete reachable checks post-state update: Those became redundant following the transition to the Hue API v2 event stream and optimizations introduced in v0.9.0.
v0.8.0.1: New “noon” Constant and Fixes
v0.8.0: Track Manual User Changes & Hue API v2 Events
Added
- Added support for the new Hue API v2 event stream
- Switched to HTTPS for communicating with the Hue bridge (requires an up-to-date Hue bridge firmware)
- New user modification tracking for lights. If such changes are detected, any schedules for the affected light are automatically disabled until the light has been turned off and on again.
- New
--disable-user-modification-tracking
global configuration flag (default:false
) to disable the new user modification tracking feature - New
force:true
state configuration property to always enforce light states despite possible user modifications (default:false
) - Added advanced and internal
--event-stream-read-timeout
configuration flag, for fine-grained event stream controls. - Added
--power-on-reschedule-delay
global configuration flag, to fine tune the rescheduling after a power-on event was detected
Changed
- Retry logic for unreachable lights has been replaced with light-on event tracking
- Light states are now always rescheduled after lights are turned on
Removed
- Confirmations for scheduled states have been removed, as this workaround is not needed anymore with the new event stream
- Removed
--retry-delay
,--confirm-all
,--confirm-count
,--confirm-delay
command line settings - Removed
confirm:true|false
state configuration property
v0.7.1: Bug Fix
- Fixes NullPointerException in SunTimesProvider
- Updates dependencies