Skip to content

CHANGELOG

v5.4.6 (2026-03-22)

Bug Fixes

  • Add MIT license header to effects ported from pkivolowitz/lifx (5830c98)

v5.4.5 (2026-03-22)

Bug Fixes

  • Device.connect() now returns Light for CCT and brightness-only products (df6d787)

  • Patch correct target for is_ceiling_product in tests (666a406)

v5.4.4 (2026-03-21)

Bug Fixes

  • Set a default value for duration_seconds for set_hev_cycle (f7fc708)

Documentation

  • Update docstring to provide more detail on hev config (02de0f0)

v5.4.3 (2026-03-21)

Bug Fixes

  • Defer is_on flag updates and add power-aware factory initialisation (3db28a3)

  • Defer is_on flags until after power-on and sync public fields on power-off (b412e40)

  • Defer stored state updates until after I/O succeeds in turn-off methods (01588ec)

  • Harden CeilingLightState against aliased mutations and stale snapshots (73a7275)

  • Move ceiling component state to CeilingLightState dataclass (06372b9)

  • Resolve remaining CodeRabbit review comments (cd450a8)

  • Return defensive copy of stored downlight colours (2575889)

  • Sync ceiling component is_on state in getter methods (8b83f35)

  • Sync public CeilingLightState fields in all mutators and getters (1eac576)

v5.4.2 (2026-03-21)

Bug Fixes

  • Guard against ValueError if signal is negative or 0 (a1085c6)

v5.4.1 (2026-03-19)

Bug Fixes

  • Asyncio and import pattern cleanup (review-critical_20260318) (07fed68)

  • Protocol correctness and code quality fixes (review-critical_20260318) (e3276bf)

  • animation: Validate HSBK input length in update_colors() (94b232f)

  • codecov: Allow coverage uploads from failing CI runs (1843d19)

  • color: Preserve full precision in with_* helpers (35f6229)

  • effects: Clear _last_generated_hsbk unconditionally after iteration (b6bf2bb)

  • test: Make source ID rejection test deterministic (3d93826)

  • test: Move noqa ARG001 to the actually unused config parameter (2c068bc)

  • transport: Rate-limit QueueFull warning to prevent log flooding (82378af)

Documentation

  • Fix remaining int RGB references and clean up long float literals (5880ad2)

  • Streamline CLAUDE.md from 907 to 381 lines (59769e8)

  • animator: Fix stale comment about source ID allocation (6336427)

  • effects: Consolidate effects content into user-guide (Phase 1) (71a5684)

  • effects: Document _last_frames limitation for protocol-direct path (257febf)

  • effects: Update FrameEffect docstrings for generate_protocol_frame (8e52cee)

  • mkdocs: Fix all documentation correctness issues (7a061e4)

  • nav: Update navigation and add progressive disclosure links (Phase 4) (42caf99)

  • plan: Fix task list checkbox spacing at line 25-26 (2f9e5e9)

  • plan: Fix task list checkbox spacing at line 39-40 (cb09448)

  • plan: Fix task list checkbox spacing at line 54-55 (5b3dd32)

  • plan: Fix task list checkbox spacing at line 70-71 (c0990aa)

  • plan: Fix task list checkbox spacing at line 75-79 (70440a2)

  • source: Fix misleading docstrings in base.py, api.py, exceptions.py (901d4aa)

  • structure: Relocate misplaced content and fix orphaned links (Phase 3) (25f2186)

  • tests: Fix misleading comment in idle timeout test (b76a418)

  • themes,animation: Deduplicate themes and animation content (Phase 2) (c489bc7)

Performance Improvements

  • animation: Avoid slice allocation in update_colors() hot loop (b3152e1)

  • animation: Use pre-compiled struct.Struct for HSBK writes (1b54956)

  • aurora: Add direct generate_protocol_frame() override (review-perf_20260318) (a01f289)

  • effects: Add generate_protocol_frame() to FrameEffect (review-perf_20260318) (24bb03c)

  • framebuffer: Pre-compute canvas-to-device LUT at init time (review-perf_20260318) (3b28194)

  • packets: Replace flat list building with direct struct.pack_into (review-perf_20260318) (ced40eb)

  • protocol: Guard asdict() in Packet.unpack() behind debug check (review-perf_20260318) (44617c1)

v5.4.0 (2026-03-18)

Documentation

  • effects: Add animated GIFs and effects gallery page (fbcaadc)

  • effects: Add documentation for 18 effects adapted from pkivolowitz/lifx (a4f47be)

Features

  • examples: Add effects demo script with device-type-aware selection (be36b95)

v5.3.0 (2026-03-18)

Bug Fixes

  • color: Clamp blend parameter in lerp methods (4c41ca4)

  • effects: Fix zones_per_bulb normalization, embers single-zone, CA restart, and test assertions (f049252)

  • effects: Polish ported effects and fix API surface issues (ee01ec9)

  • effects: Resolve Pyright possibly-unbound variable in Sine effect (b6629ad)

  • security: Skip bandit B311 globally and remove nosec comments (90e713b)

  • tests: Update registry test to use superset check (a9c3063)

  • tests: Update theme count from 42 to 57 after palette additions (e416341)

Documentation

  • Add design spec for porting pkivolowitz/lifx effects (2d17778)

  • Add implementation plan for effects port (70bfe89)

  • Address spec review findings (9a3ca10)

Features

  • color: Add lerp_oklab and lerp_hsb methods to HSBK (71a794a)

  • effects: Add Cylon (Larson scanner) effect (26e75d5)

  • effects: Add Double Slit (wave interference) effect (7617cca)

  • effects: Add Embers (fire simulation) effect (3a9ab6c)

  • effects: Add Fireworks effect (d509f4b)

  • effects: Add Jacob's Ladder (electric arcs) effect (c447011)

  • effects: Add Newton's Cradle effect (a414b37)

  • effects: Add Pendulum Wave effect (9315730)

  • effects: Add Plasma (electric tendrils) effect (6fed46d)

  • effects: Add Plasma2D effect for matrix devices (2a94fd7)

  • effects: Add Ripple (water drops) effect (d3a4a33)

  • effects: Add Rule 30 (cellular automaton) effect (13b9f07)

  • effects: Add Rule Trio (three CAs blended) effect (45346d4)

  • effects: Add Sine (traveling ease wave) effect (24a2ec9)

  • effects: Add Sonar (radar pulses) effect (575fed4)

  • effects: Add Spectrum Sweep effect (9aad95b)

  • effects: Add Spin (color migration) effect (9b91fc9)

  • effects: Add Twinkle (sparkle) effect (2660f19)

  • effects: Add Wave (standing wave) effect (63cdf9b)

  • effects: Register and export all 18 ported effects (c5caa0d)

  • theme: Add palette themes from pkivolowitz/lifx (4126ccf)

v5.2.1 (2026-03-18)

Bug Fixes

  • tests: Add pytest-timeout, retry flaky Windows emulator tests (4b6b3a9)

  • tests: Extend timeout to 120s for emulator tests (016e1aa)

Documentation

v5.2.0 (2026-02-07)

Bug Fixes

  • Address CodeRabbit review feedback (487f4ab)

Documentation

  • Fix duration_ms formula (1000 -> 1500/fps) in effects API docs (487f4ab)

Features

  • Add new effects, effect registry, and rename examples (2f8192d)

v5.1.1 (2026-02-06)

Performance Improvements

  • Optimize device initialization and packet sending (865c4e3)

  • Pure-Python optimizations for protocol, network, and animation layers (a9a4bd4)

v5.1.0 (2026-01-24)

Bug Fixes

  • animation: Load capabilities before checking has_chain (69e50b3)

Documentation

  • Add DeviceGroup usage example (9f85854)

  • Remove reference to deleted FieldSerializer class (5db0262)

Features

  • animation: Add high-performance animation module (afc8063)

v5.0.1 (2026-01-14)

Bug Fixes

  • Handle asyncio.TimeoutError on Python 3.10 (4438bc4)

v5.0.0 (2026-01-12)

Features

  • Add Python 3.10 support (7c39131)

Breaking Changes

  • Batch operations now raise first exception immediately (asyncio.gather behavior) instead of collecting all exceptions into an ExceptionGroup (TaskGroup behavior).

v4.9.0 (2025-12-30)

Features

  • api: Add HTML named colors and kelvin temperature presets (b631d43)

v4.8.1 (2025-12-24)

Bug Fixes

  • Tighten up the URL parsing to be even more specific (0222362)

v4.8.0 (2025-12-20)

Features

  • network: Add mDNS/DNS-SD discovery for LIFX devices (f25987d)

v4.7.5 (2025-12-16)

Bug Fixes

  • devices: Override set_color in CeilingLight to track component state (0d20563)

v4.7.4 (2025-12-16)

Performance Improvements

  • devices: Reduce get_all_tile_colors calls in CeilingLight (3936158)

v4.7.3 (2025-12-16)

Bug Fixes

  • devices: Capture component colors before set_power turns off light (a99abee)

v4.7.2 (2025-12-16)

Bug Fixes

  • api: Close device connections in DeviceGroup context manager (054bfee)

Documentation

  • api: Add dataclass documentation and improve navigation (c859c87)

v4.7.1 (2025-12-13)

Bug Fixes

  • devices: Add length parameter to copy_frame_buffer() (6a74690)

v4.7.0 (2025-12-13)

Features

  • devices: Add fast parameter to set_extended_color_zones() (0276fca)

v4.6.1 (2025-12-12)

Bug Fixes

  • devices: Check for power and brightness for Ceiling components (bd1b92f)

v4.6.0 (2025-12-11)

Features

  • devices: Add CeilingLightState dataclass for ceiling component state (607f15c)

v4.5.1 (2025-12-11)

Bug Fixes

  • devices: Export CeilingLight add add user guide and API documentation (10e0089)

v4.5.0 (2025-12-08)

Features

  • devices: Add CeilingLight with independent uplight/downlight component control (95fc5a6)

v4.4.1 (2025-12-03)

Bug Fixes

  • theme: Prevent color displacement in multi-tile matrix theme application (ca936ec)

v4.4.0 (2025-11-29)

Features

  • devices: Add factory pattern with automatic type detection and state management (4374248)

v4.3.9 (2025-11-27)

Bug Fixes

  • network: Propagate timeout from request() to internal methods (b35ebea)

v4.3.8 (2025-11-25)

Bug Fixes

  • network: Raise exception on StateUnhandled instead of returning False (5ca3e8a)

v4.3.7 (2025-11-25)

Bug Fixes

  • devices: Raise LifxUnsupportedCommandError on StateUnhandled responses (ec142cf)

v4.3.6 (2025-11-25)

Bug Fixes

  • network: Return StateUnhandled packets instead of raising exception (f27e848)

v4.3.5 (2025-11-22)

Bug Fixes

  • devices: Allow MatrixEffect without palette (fb31df5)

v4.3.4 (2025-11-22)

Bug Fixes

  • network: Exclude retry sleep time from timeout budget (312d7a7)

v4.3.3 (2025-11-22)

Bug Fixes

  • Give MatrixLight.get64() some default parameters (a69a49c)

  • themes: Apply theme colors to all zones via proper canvas interpolation (f1628c4)

v4.3.2 (2025-11-22)

Bug Fixes

  • effects: Add name property to LIFXEffect and subclasses (deb8a54)

v4.3.1 (2025-11-22)

Bug Fixes

  • Actually rename the matrix methods (061aaa7)

v4.3.0 (2025-11-22)

Features

  • effects: Unify effect enums and simplify API (df1c3c8)

v4.2.1 (2025-11-21)

Bug Fixes

  • Get_wifi_info now returns signal and rssi correctly (6db03b3)

v4.2.0 (2025-11-21)

Documentation

  • api: Remove obsolete reference to MessageBuilder (9847948)

Features

  • devices: Add ambient light sensor support (75f0673)

v4.1.0 (2025-11-20)

Features

  • network: Replace polling architecture with event-driven background receiver (9862eac)

v4.0.2 (2025-11-19)

Bug Fixes

  • Product registry generation (2742a18)

v4.0.1 (2025-11-18)

Bug Fixes

  • devices: Prevent connection leaks in temporary device queries (0ee8d0c)

v4.0.0 (2025-11-18)

Features

  • devices: Replace TileDevice with MatrixLight implementation (1b8bc39)

Breaking Changes

  • devices: TileDevice class has been removed and replaced with MatrixLight

v3.1.0 (2025-11-17)

Features

  • Remove connection pool in favor of lazy device-owned connections (11b3cb2)

v3.0.1 (2025-11-17)

Bug Fixes

  • Get_power() now returns an integer value not a boolean (3644bb9)

v3.0.0 (2025-11-16)

Features

  • Convert discovery methods to async generators (0d41880)

  • Replace event-based request/response with async generators (fa50734)

Breaking Changes

  • Internal connection architecture completely refactored

v2.2.2 (2025-11-14)

Bug Fixes

  • devices: Replace hardcoded timeout and retry values with constants (989afe2)

v2.2.1 (2025-11-14)

Bug Fixes

  • network: Resolve race condition in concurrent request handling (8bb7bc6)

v2.2.0 (2025-11-14)

Features

  • network: Add jitter to backoff and consolidate retry logic (0dfb1a2)

v2.1.0 (2025-11-14)

Features

  • Add mac_address property to Device class (bd101a0)

v2.0.0 (2025-11-14)

Refactoring

  • Simplify state caching and remove TTL system (fd15587)

v1.3.1 (2025-11-12)

Bug Fixes

  • Add Theme, ThemeLibrary, get_theme to main lifx package exports (6b41bb8)

Documentation

  • Add mkdocs-llmstxt to create llms.txt and llms-full.txt (4dd378c)

  • Remove effects release notes (2fdabc0)

v1.3.0 (2025-11-10)

Features

v1.2.1 (2025-11-08)

Bug Fixes

  • Implement tile effect parameters as local quirk (f4ada9b)

v1.2.0 (2025-11-07)

Features

v1.1.3 (2025-11-06)

Performance Improvements

  • Reduce network traffic when updating individual color values (679b717)

v1.1.2 (2025-11-05)

Bug Fixes

  • Dummy fix to trigger semantic release (86ad8b4)

v1.1.1 (2025-11-05)

Bug Fixes

  • Dummy fix to trigger semantic release (12786b5)

v1.1.0 (2025-11-05)

Features

  • Replace cache TTL system with timestamped state attributes (5ae147a)

v1.0.0 (2025-11-04)

  • Initial Release