esphome-api-client 0.5.0
Modern C++17 client for the ESPHome native API (plaintext + Noise)
Loading...
Searching...
No Matches
light.hpp
Go to the documentation of this file.
1#pragma once
2
5
9
10#include <cstdint>
11#include <memory>
12#include <optional>
13#include <string>
14#include <vector>
15
16namespace esphome::api {
17
18namespace proto {
19class ListEntitiesLightResponse;
20class LightStateResponse;
21class LightCommandRequest;
22} // namespace proto
23
26 std::vector<ColorMode> supported_color_modes;
27 float min_mireds = 0.0F;
28 float max_mireds = 0.0F;
29 std::vector<std::string> effects;
30};
31
33struct LightState {
34 std::uint32_t key = 0;
35 bool state = false;
36 float brightness = 0.0F;
38 float color_brightness = 0.0F;
39 float red = 0.0F;
40 float green = 0.0F;
41 float blue = 0.0F;
42 float white = 0.0F;
43 float color_temperature = 0.0F;
44 float cold_white = 0.0F;
45 float warm_white = 0.0F;
46 std::string effect;
47};
48
50struct LightRgb {
51 float red = 0.0F;
52 float green = 0.0F;
53 float blue = 0.0F;
54};
55
58 std::uint32_t key = 0;
59 std::optional<bool> state;
60 std::optional<float> brightness;
61 std::optional<ColorMode> color_mode;
62 std::optional<float> color_brightness;
63 std::optional<LightRgb> rgb;
64 std::optional<float> white;
65 std::optional<float> color_temperature;
66 std::optional<float> cold_white;
67 std::optional<float> warm_white;
68 std::optional<std::uint32_t> transition_length;
69 std::optional<std::uint32_t> flash_length;
70 std::optional<std::string> effect;
71};
72
73LightInfo parse_light_info(const proto::ListEntitiesLightResponse& msg);
74LightState parse_light_state(const proto::LightStateResponse& msg);
75std::unique_ptr<ProtoMessage> to_message(const LightCommand& cmd);
76
77} // namespace esphome::api
Common entity metadata shared by every entity domain.
Typed mirrors of the ESPHome protobuf enums.
Definition bytes.hpp:10
std::unique_ptr< ProtoMessage > to_message(const AlarmControlPanelCommand &cmd)
ColorMode
Mirror of proto enum ColorMode.
Definition enums.hpp:60
LightState parse_light_state(const proto::LightStateResponse &msg)
LightInfo parse_light_info(const proto::ListEntitiesLightResponse &msg)
Lightweight base class for every generated ESPHome API message.
Fields present on every ListEntities*Response.
Definition entity.hpp:16
A command to mutate a light. Each optional field is sent only when engaged.
Definition light.hpp:57
std::optional< float > brightness
Definition light.hpp:60
std::optional< std::uint32_t > flash_length
Definition light.hpp:69
std::optional< float > white
Definition light.hpp:64
std::uint32_t key
Definition light.hpp:58
std::optional< float > color_temperature
Definition light.hpp:65
std::optional< float > color_brightness
Definition light.hpp:62
std::optional< float > cold_white
Definition light.hpp:66
std::optional< float > warm_white
Definition light.hpp:67
std::optional< ColorMode > color_mode
Definition light.hpp:61
std::optional< std::string > effect
Definition light.hpp:70
std::optional< std::uint32_t > transition_length
Definition light.hpp:68
std::optional< LightRgb > rgb
Definition light.hpp:63
std::optional< bool > state
Definition light.hpp:59
Static description of a light entity.
Definition light.hpp:25
float max_mireds
Definition light.hpp:28
std::vector< ColorMode > supported_color_modes
Definition light.hpp:26
float min_mireds
Definition light.hpp:27
std::vector< std::string > effects
Definition light.hpp:29
RGB triple, set together via the single has_rgb command flag.
Definition light.hpp:50
float red
Definition light.hpp:51
float green
Definition light.hpp:52
float blue
Definition light.hpp:53
A light's reported state.
Definition light.hpp:33
ColorMode color_mode
Definition light.hpp:37
bool state
Definition light.hpp:35
float color_brightness
Definition light.hpp:38
float blue
Definition light.hpp:41
float brightness
Definition light.hpp:36
std::uint32_t key
Definition light.hpp:34
float red
Definition light.hpp:39
float cold_white
Definition light.hpp:44
float green
Definition light.hpp:40
float white
Definition light.hpp:42
float color_temperature
Definition light.hpp:43
std::string effect
Definition light.hpp:46
float warm_white
Definition light.hpp:45