basnijholt / adaptive-lighting

Adaptive Lighting custom component for Home Assistant
https://basnijholt.github.io/adaptive-lighting/
Apache License 2.0
1.93k stars 139 forks source link

Shape of color temperature curve #62

Open jarpatus opened 3 years ago

jarpatus commented 3 years ago

If I got this right then color temperature curve used by this component looks like half sine wave (max. color temperature reacher only for a short period of time). Any change this could be controlled somehow? I would like color temperature curve to look more like brightness curve looks like (kind of square wave with smoothened rise and fall). Perhaps adding optional configuration options like rise time and fall time?

For background info; I am ATM using flux component and hacked functionality like this into it (actually I set dawn, sunrise, sunset and dusk times and color temperatures and color temperature will only change between dawn-sunrise and sunset-dusk). I have found this to be superior compared to out-of-the-box flux and if I got this right out-of-the-box adaptive-lighting. I live in northern countries and during winter I get very little real sunlight so this may affect on one's experience what is good curve and what is not.

I thought about creating pull request for my flux modifications but looks like this adaptive-lighting is superior in every way so ditched the idea...

basnijholt commented 3 years ago

What you suggest seems reasonable. Could you share your flux edits somewhere such that I can take a look at the code?

Perhaps adding optional configuration options like rise time and fall time

This isn't possible now, but I will consider doing this.

jarpatus commented 3 years ago

My customized flux can be found from:

https://github.com/jarpatus/flux-2

Disclaimer: I am no python developer nor home assistant developer, so take this with grain of salt.

jd1900 commented 3 years ago

This would be great. Maybe set a time frame in which temperature is not affected (for instance from sunrise to 1 hour before sunset). Afterall, talking about circadian rithms, once sun has risen, it doesn't make sense to don't have a cold/blue light once sun has risen. It doesn't have to be gradually increased.

My proposal would be to have a few time ranges where you can set the start and end time.

euinor commented 3 years ago

More control over the color and temperature curves would be great. My use case is that in winter I don't want to follow sunrise/sunset. I would rather my circadian rhythm followed a standard working day (100% blue and bright 9am till 5.30) even though it gets dark before 5.30.

RubenKelevra commented 3 years ago

Hey @jarpatus, @jd1900, @euinor,

I feel like that's a duplicate of #100 and #131 - do you agree?

jarpatus commented 3 years ago

@RubenKelevra at least #100, if implemented, would be superset of this one (if you can manually set color temperatures for each start times so you can shape your curve as you wish). So yeah I agree!

RubenKelevra commented 3 years ago

@RubenKelevra at least #100, if implemented, would be superset of this one (if you can manually set color temperatures for each start times so you can shape your curve as you wish). So yeah I agree!

Okay, no that's not the case.

I feel like #100 only covers that we have like a natural and a synthetic curve for the color temperature. :)

sstarcher commented 3 years ago

This very much interests me and if we can define an acceptable way to implement this I would be happy to add this feature.

I'm in a similar position where I want the morning light to not really follow the sun and to instead lock my circadian rhythm in to help wake me up before work.

RubenKelevra commented 2 years ago

@sstarcher wrote:

I'm in a similar position where I want the morning light to not really follow the sun and to instead lock my circadian rhythm in to help wake me up before work.

Well, that's a time shift of the sunrise, which you can do right now. Just go to the settings and select a different time for the sunrise.

This very much interests me and if we can define an acceptable way to implement this I would be happy to add this feature.

Well, while I can see that some might think that this is what's the solution I doubt that there are many people willing to either create hundreds of points on a LUT or have the formula to do the same to define their own color temperatures.

I think what people really want is that the current functionality works better, closer to reality.

While custom color curves might be a feature in the future I think it's best to keep this to PRs to the project, to ship the work to other users as well.

Additionally many users might just have different lights, so their perceptions of how the program is currently working is different. That's why it's important to have color temperature as well brightness corrections (https://github.com/basnijholt/adaptive-lighting/issues/124).

RubenKelevra commented 2 years ago

It makes sense to reexamine this decision after version 2.0 release

sstarcher commented 2 years ago

And to be clear on my point. I don't want "sunrise". I want 100% or near 100% brightness first thing in the morning and a lowering to sunset in the evening. For helping you wake up you are better with extra brightness in the morning to set your clock.

Soukyuu commented 2 years ago

Was about to create an issue for this. At the moment, with max kelvin set to 4000 (I don't want the light to get any cooler), the lights are too warm at 6:30am compared to the sunlight. Ideally, I'd like them to either match or be cooler than sunlight for those murky winter days to come. From what I see, customizing the shape of the color and brightness curves would allow me to do just that.

danishru commented 7 months ago

+1 Apple HomeKit adaptive lighting works in a similar way as discussed in this thread. In another issue, I described in more detail my observation of Apple HomeKit adaptive lighting, and also attached a curve graph and text data.

https://github.com/basnijholt/adaptive-lighting/issues/813#issuecomment-2042566153

smaddock commented 3 months ago

The brightness graph has a few different algorithms one can choose from (default, linear, tanh). If the same options were implemented for color temperature, that seems like it would fulfill this request. (I came here assuming that it did, as I want to change the color temp only during my artificial sunrise/sunset. I can currently do this with the native Hue automations, but I just started migrating everything to HA.)