ESPHome
2026.6.0-dev
Loading...
Searching...
No Matches
esphome
components
demo
demo_light.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
esphome/core/component.h
"
4
#include "
esphome/components/light/light_output.h
"
5
6
namespace
esphome::demo
{
7
8
enum class
DemoLightType
{
9
// binary
10
TYPE_1
,
11
// brightness
12
TYPE_2
,
13
// RGB
14
TYPE_3
,
15
// RGBW
16
TYPE_4
,
17
// RGBWW
18
TYPE_5
,
19
// CWWW
20
TYPE_6
,
21
// RGBW + color_interlock
22
TYPE_7
,
23
};
24
25
class
DemoLight
:
public
light::LightOutput
,
public
Component
{
26
public
:
27
void
set_type
(
DemoLightType
type
) {
type_
=
type
; }
28
light::LightTraits
get_traits
()
override
{
29
light::LightTraits
traits{};
30
switch
(
type_
) {
31
case
DemoLightType::TYPE_1
:
32
traits.set_supported_color_modes({
light::ColorMode::ON_OFF
});
33
break
;
34
case
DemoLightType::TYPE_2
:
35
traits.set_supported_color_modes({
light::ColorMode::BRIGHTNESS
});
36
break
;
37
case
DemoLightType::TYPE_3
:
38
traits.set_supported_color_modes({
light::ColorMode::RGB
});
39
break
;
40
case
DemoLightType::TYPE_4
:
41
traits.set_supported_color_modes({
light::ColorMode::RGB_WHITE
});
42
break
;
43
case
DemoLightType::TYPE_5
:
44
traits.set_supported_color_modes({
light::ColorMode::RGB_COLOR_TEMPERATURE
});
45
traits.set_min_mireds(153);
46
traits.set_max_mireds(500);
47
break
;
48
case
DemoLightType::TYPE_6
:
49
traits.set_supported_color_modes({
light::ColorMode::COLD_WARM_WHITE
});
50
traits.set_min_mireds(153);
51
traits.set_max_mireds(500);
52
break
;
53
case
DemoLightType::TYPE_7
:
54
traits.set_supported_color_modes({
light::ColorMode::RGB
,
light::ColorMode::WHITE
});
55
break
;
56
}
57
return
traits;
58
}
59
void
write_state
(
light::LightState
*
state
)
override
{
60
// do nothing
61
}
62
63
DemoLightType
type_
;
64
};
65
66
}
// namespace esphome::demo
esphome::Component
Definition
component.h:145
esphome::demo::DemoLight
Definition
demo_light.h:25
esphome::demo::DemoLight::get_traits
light::LightTraits get_traits() override
Definition
demo_light.h:28
esphome::demo::DemoLight::write_state
void write_state(light::LightState *state) override
Definition
demo_light.h:59
esphome::demo::DemoLight::set_type
void set_type(DemoLightType type)
Definition
demo_light.h:27
esphome::demo::DemoLight::type_
DemoLightType type_
Definition
demo_light.h:63
esphome::light::LightOutput
Interface to write LightStates to hardware.
Definition
light_output.h:11
esphome::light::LightState
This class represents the communication layer between the front-end MQTT layer and the hardware outpu...
Definition
light_state.h:93
esphome::light::LightTraits
This class is used to represent the capabilities of a light.
Definition
light_traits.h:9
component.h
type
uint16_t type
Definition
dns_server_esp32_idf.cpp:0
state
bool state
Definition
fan.h:2
light_output.h
esphome::demo
Definition
demo_alarm_control_panel.h:6
esphome::demo::DemoAlarmControlPanelType::TYPE_3
@ TYPE_3
esphome::demo::DemoAlarmControlPanelType::TYPE_2
@ TYPE_2
esphome::demo::DemoAlarmControlPanelType::TYPE_1
@ TYPE_1
esphome::demo::DemoLightType
DemoLightType
Definition
demo_light.h:8
esphome::demo::DemoLightType::TYPE_3
@ TYPE_3
esphome::demo::DemoLightType::TYPE_5
@ TYPE_5
esphome::demo::DemoLightType::TYPE_7
@ TYPE_7
esphome::demo::DemoLightType::TYPE_2
@ TYPE_2
esphome::demo::DemoLightType::TYPE_1
@ TYPE_1
esphome::demo::DemoLightType::TYPE_6
@ TYPE_6
esphome::demo::DemoLightType::TYPE_4
@ TYPE_4
esphome::demo::DemoCoverType::TYPE_4
@ TYPE_4
esphome::light::ColorMode::ON_OFF
@ ON_OFF
Only on/off control.
esphome::light::ColorMode::BRIGHTNESS
@ BRIGHTNESS
Dimmable light.
esphome::light::ColorMode::RGB_WHITE
@ RGB_WHITE
RGB color output and a separate white output.
esphome::light::ColorMode::RGB_COLOR_TEMPERATURE
@ RGB_COLOR_TEMPERATURE
RGB color output and a separate white output with controllable color temperature.
esphome::light::ColorMode::RGB
@ RGB
RGB color output.
esphome::light::ColorMode::WHITE
@ WHITE
White output only (use only if the light also has another color mode such as RGB).
esphome::light::ColorMode::COLD_WARM_WHITE
@ COLD_WARM_WHITE
Cold and warm white output with individually controllable brightness.
Generated by
1.12.0