mirror of
https://github.com/esphome/esphome.git
synced 2025-09-24 22:22:22 +01:00
Color mode implementation (#2012)
This commit is contained in:
@@ -28,45 +28,31 @@ class DemoLight : public light::LightOutput, public Component {
|
||||
void set_type(DemoLightType type) { type_ = type; }
|
||||
light::LightTraits get_traits() override {
|
||||
light::LightTraits traits{};
|
||||
// brightness
|
||||
// rgb
|
||||
// rgb_white_value
|
||||
// color_temperature, min_mireds, max_mireds
|
||||
// color_interlock
|
||||
switch (type_) {
|
||||
case DemoLightType::TYPE_1:
|
||||
traits.set_supported_color_modes({light::ColorMode::ON_OFF});
|
||||
break;
|
||||
case DemoLightType::TYPE_2:
|
||||
traits.set_supports_brightness(true);
|
||||
traits.set_supported_color_modes({light::ColorMode::BRIGHTNESS});
|
||||
break;
|
||||
case DemoLightType::TYPE_3:
|
||||
traits.set_supports_brightness(true);
|
||||
traits.set_supports_rgb(true);
|
||||
traits.set_supported_color_modes({light::ColorMode::RGB});
|
||||
break;
|
||||
case DemoLightType::TYPE_4:
|
||||
traits.set_supports_brightness(true);
|
||||
traits.set_supports_rgb(true);
|
||||
traits.set_supports_rgb_white_value(true);
|
||||
traits.set_supported_color_modes({light::ColorMode::RGB_WHITE});
|
||||
break;
|
||||
case DemoLightType::TYPE_5:
|
||||
traits.set_supports_brightness(true);
|
||||
traits.set_supports_rgb(true);
|
||||
traits.set_supports_rgb_white_value(true);
|
||||
traits.set_supports_color_temperature(true);
|
||||
traits.set_supported_color_modes({light::ColorMode::RGB_COLOR_TEMPERATURE});
|
||||
traits.set_min_mireds(153);
|
||||
traits.set_max_mireds(500);
|
||||
break;
|
||||
case DemoLightType::TYPE_6:
|
||||
traits.set_supports_brightness(true);
|
||||
traits.set_supports_color_temperature(true);
|
||||
traits.set_supported_color_modes({light::ColorMode::COLD_WARM_WHITE});
|
||||
traits.set_min_mireds(153);
|
||||
traits.set_max_mireds(500);
|
||||
break;
|
||||
case DemoLightType::TYPE_7:
|
||||
traits.set_supports_brightness(true);
|
||||
traits.set_supports_rgb(true);
|
||||
traits.set_supports_rgb_white_value(true);
|
||||
traits.set_supports_color_interlock(true);
|
||||
traits.set_supported_color_modes({light::ColorMode::RGB, light::ColorMode::WHITE});
|
||||
break;
|
||||
}
|
||||
return traits;
|
||||
|
Reference in New Issue
Block a user