From 7b198eab1d73a76e466cc11583c92ddacf0f3a39 Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Wed, 7 Apr 2021 22:40:51 +0200 Subject: [PATCH] Some calibration on the RGB night light settings. --- color_night_light.h | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/color_night_light.h b/color_night_light.h index 78a6ad2..d3ad107 100644 --- a/color_night_light.h +++ b/color_night_light.h @@ -11,14 +11,15 @@ public: bool set_light_color_values(light::LightColorValues v) { // This class can handle the GPIO outputs for the night light mode. // - // At the lowest brightness setting, switch to night light mode. - // In the Yeelight integration in Home Assistant, this feature is - // exposed trough a separate switch. I have found that the switch - // is both confusing and made me run into issues when automating - // the lights. + // At the lowest brightness setting, switch to night light mode. In + // the Yeelight integration in Home Assistant, this feature is + // exposed trough a separate switch. I have found that the switch is + // both confusing and made me run into issues when automating the + // lights. + // // I don't simply check for a brightness at or below 0.01 (1%), - // because the lowest brightness setting from Home Assistant - // turns up as 0.011765 in here (which is 3/255). + // because the lowest brightness setting from Home Assistant turns + // up as 0.011765 in here (which is 3/255). if (v.get_brightness() >= 0.012f) { return false; } @@ -34,13 +35,13 @@ public: blue = 0.972f; white = 0.0f; } - // In RGB mode, the selected color is used to give the night light - // a specific color, instead of the default. This is a nice extra - // for this firmware, as the original firmware does not support it. + // In RGB mode, the selected color is used to give the night light a + // specific color, instead of the default. This is a nice extra for + // this firmware, as the original firmware does not support it. else { red = 0.9997f - v.get_red() * (0.9997f - 0.9680f); green = 0.9997f - v.get_green() * (0.9997f - 0.9680f); - auto blue_on = 0.9720f + (0.9680f - 0.9720f) * (1.0f - (v.get_red() + v.get_green())/2.0f); + auto blue_on = 0.9720f + (0.9640f - 0.9720f) * (1.0f - (v.get_red() + v.get_green())/2.0f); blue = 0.9997f - v.get_blue() * (0.9997f - blue_on); white = 0.0f; }