[Early Release] HCL Lighting - Human Centric Lighting for Home Assistant

[Early Release] HCL Lighting - Human Centric Lighting for Home Assistant

Hey everyone! :wave:

I’ve been working on a Human Centric Lighting (HCL) integration for Home Assistant and wanted to share an early version with the community for feedback.

What is it?

This integration automatically adjusts your lights’ brightness and color temperature throughout the day to match natural circadian rhythms, based on the DIN SPEC 67600 standard for biologically effective lighting.

Key Features

:sparkles: Smooth, biologically-inspired light curves using cubic Hermite spline interpolation (no harsh transitions!)

  • Morning activation: gradual warm-up from 2200K → 6500K

  • Midday regeneration dip: brief reduction around 12:30 PM

  • Afternoon re-activation: second focus peak

  • Evening wind-down: smooth transition back to warm tones

:dart: Flexible targeting - Control lights by:

  • Individual entities

  • Devices

  • Areas

  • Groups (automatically expanded)

:brain: Smart compatibility handling:

  • Automatic detection of light capabilities (color temp, brightness-only, etc.)

  • Extended warm white simulation using XY color for lights that don’t support very low Kelvin values

  • Optional “Smart Transition” mode to prevent visual artifacts on incompatible lights

:gear: Configurable brightness limits - Set custom min/max brightness ranges to match your preferences

:arrows_counterclockwise: Instant application - Lights that turn on automatically receive HCL settings immediately (no color flash)

How it works

The integration uses a 24-hour curve with key control points throughout the day. Instead of abrupt jumps between values, it uses smooth mathematical interpolation to create natural, flowing transitions that feel comfortable and biologically appropriate.

Current Status

This is an early alpha release (v0.1.0). Core functionality is working, but I’m looking for feedback on:

  • Real-world compatibility with different light types (Hue, IKEA, Zigbee, Z-Wave, etc.)

  • User experience with the configuration flow

  • Performance with large numbers of lights

  • Edge cases I haven’t considered

Installation

  1. Copy the custom_components/hcl_lighting folder to your Home Assistant custom_components directory

  2. Restart Home Assistant

  3. Go to Settings → Devices & Services → Add Integration → “HCL Lighting”

  4. Select your target lights/areas and configure options

Download

GitHub Repository: GitHub - Ecronika/ha_hcl: Human Centric Lighting integration for Home Assistant

Installation Options:

  1. Via HACS (once submitted):
  • Add custom repository: https://github.com/Ecronika/ha_hcl

  • Install from HACS integrations

  1. Manual Download:
  • Download the latest release from Releases

  • Extract custom_components/hcl_lighting to your Home Assistant config

  • Restart Home Assistant

Feedback Wanted! :pray:

I’d love to hear your thoughts, especially:

  • Does it work with your specific light brands/models?

  • Are the default curves comfortable for you?

  • Any bugs or unexpected behavior?

  • Feature requests?

Thanks for checking it out! Looking forward to your feedback.


Technical Details:

  • Uses cubic Hermite spline interpolation for smooth curves

  • Configurable via UI (no YAML required)

  • Supports color temp (Kelvin), XY color simulation, and brightness-only modes

  • Periodic updates every 5 minutes with smart delta detection to minimize unnecessary calls

2 Likes

Where do I pass it the siesta time parameters? Are they country specific?

Hi @IOT7712, thanks for asking!

To give you a direct answer: In the current version, the curve (including the “siesta” / regeneration dip at 12:30 PM) is fixed to the clock time and based on the DIN SPEC 67600 standard. It is not yet country-specific or configurable via the UI.

However, I am currently working hard on the v0.2.0 release, which lays the groundwork for exactly this feature.

What’s happening right now: I am finalizing v0.2.0, which focuses heavily on robustness and performance:

  • Manual Override Detection: The system will now intelligently pause HCL when you manually change a light, so it doesn’t fight against you.
  • High Performance: I’ve refactored the engine to handle large groups of lights simultaneously without any “popcorn effect” (delays).
  • Internal Refactoring: I have separated the math logic from the entity logic.

What does this mean for you? While v0.2.0 will still have the fixed curve, the internal code is now ready to handle dynamic parameters. As soon as v0.2.0 is out (very soon!), my full focus will shift to v0.3.0, which will introduce a UI to customize the curve, allowing you to shift the “siesta” time or adjust wake/sleep times to fit your location and schedule.

Stay tuned, the update is just around the corner!

Hi everyone,

I’m excited to announce v0.2.1 (currently Beta 10). This isn’t just a bug-fix release; it’s a massive leap forward in making this integration “spouse-approved” and production-ready.

:star2: What’s in it for you?

1. No More “Blinding Flash” at Night (Instant-On) This is the biggest game-changer. Previously, if you turned on a light at 3 AM, it might flash at 100% brightness for a split second before dimming. Now: The integration calculates the correct brightness and color the millisecond you hit the switch. Your lights turn on gently at the right level immediately.

2. It Plays Nice With Manual Changes (Smart Override) I know there are times you want to manually dim the lights or set a mood. Now: If you manually change a light (brightness >5% or Kelvin >200K), the HCL automation automatically “backs off” for that specific light. It won’t fight you. It waits until you turn the light off and on again to resume the circadian schedule, or until 4 hours have passed since the change.

3. Gentle on Your Network Smart homes with many Zigbee or Z-Wave devices can get congested. Now: I added smart thresholds. It stops spamming your network with invisible updates. Commands are only sent if the lighting change is actually visible to the human eye (>1% brightness or >50K color temp).

4. It Just Works (Rock-Solid Stability) I spent the last few days strictly focusing on reliability. Even with unstable integrations or unreliable lights, this integration handles the situation for you.

  • Self-Healing: If a light drops off the network or sends bad data (like missing attributes), the integration won’t crash. It handles errors gracefully and keeps running for your other devices.

:package: How to get it

This integration is available via HACS (add as a Custom Repository).

Make sure to enable “Show beta versions” in HACS to see the latest Pre-Release.

:eyes: Important for Beta Testers: If you were testing Beta 8 or Beta 9, please update to Beta 10 (or later) immediately. Those previous two versions had critical startup issues that are now fully resolved.

Give it a try and let your lights work with your biology, not against it! :sunny::crescent_moon:

Sounds very interesting. I am using adaptive lightning since years. So let’s give it a try. Thanks.

Hey everyone,

I’ve been working hard on the v0.3.0 update for the HCL Lighting integration, specifically focusing on the new “Dynamic Curve” logic that adapts to your personal schedule (Wake, Midday, and Sleep times).

One challenge with Circadian/HCL lighting is that it’s often hard to visualize exactly how the light will behave throughout the day just by looking at configuration numbers. You often have to wait a whole day to see if the transitions feel right.

To solve this, I’ve built a Live HCL Simulator that runs in your browser!

:point_right: Try it here: HCL Lighting Curve Simulator

What does it do?

It uses the exact same math (Cubic Hermite Splines & Elastic Intervals) as the Home Assistant integration, ported 1:1 to JavaScript. This allows you to:

  • Visualize the Curve: See the exact path for Color Temperature (Kelvin) and Brightness over a 24-hour period.
  • Test Your Schedule: Adjust “Wake Time,” “Social Midday,” and “Sleep Time” sliders to see how the curve stretches and compresses dynamically.
  • Check Brightness Limits: Instantly see how your Min/Max brightness settings affect the curve’s peaks and dips.

Feedback Wanted!

I’d love for you to give it a spin. Does the curve behavior match your expectations? Are the transitions around the “Midday Dip” or “Wind-Down” phases smooth enough for your needs?

Let me know what you think or if you spot any weird behavior in the graph!

Happy automating! :house::bulb:

Something big is coming to HCL… :new_moon::sparkles:

Stop guessing timestamps. Stop calculating percentages in your head.
v0.4.0 is about to change how you interact with Human Centric Lighting forever.

Complete visual control is just around the corner. Stay tuned.

1 Like

:sun_with_face: HCL Lighting v0.4.0: The Visual Revolution

Unlock the full potential of your circadian lighting with the biggest update yet!

U am thrilled to announce the release of HCL Lighting v0.4.0. This update transforms the integration from a backend logic engine into a fully interactive, drag-and-drop experience. No more guessing coordinates in YAML—visualize and sculpt your perfect day directly in your Dashboard.


:art: What’s New?

1. Interactive Dashboard Card

The core of this release is the new HCL Curve Card.

  • Drag & Drop: Simply grab the handles on the Brightness or Color Temperature charts and drag them to adjust your schedule.
  • Visual Feedback: See exactly how your lights will behave throughout the day.
  • Glassmorphism UI: A stunning, modern design that fits perfectly into any dashboard.
  • Touch Friendly: Works seamlessly on mobile and desktop.

2. Science-Grade Math (PCHIP)

I’ve overhauled the math engine.

  • Old Way: Standard interpolation could create “overshoots” (lights getting brighter than 100% or dipping weirdly).
  • New Way: PCHIP (Piecewise Cubic Hermite Interpolating Polynomial) guarantees smooth, natural transitions that never swing outside your control points. It’s the same math used by professional lighting engineers.

3. Visual Editor & Validation

  • Presets: One-click profiles like Early Bird, Night Owl, Focus (Home Office), and Relax.
  • Safety Checks: The card analyzes your curve in real-time. If you set a night too bright or a transition too steep, you’ll get a helpful warning zone overlay.
  • Test & Revert: Hit “TEST” to feel the lighting immediately. If you don’t like it, “REVERT” wipes the slate clean.

:rocket: Getting Started

Installation

  1. Update via HACS to v0.4.0.
  2. Restart Home Assistant.
  3. You’ll see a Repair Issue guiding you to add the card.