ESPHome
2023.11.6
esphome
esphome
core
component_iterator.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
esphome/core/component.h
"
4
#include "
esphome/core/controller.h
"
5
#include "
esphome/core/helpers.h
"
6
7
#ifdef USE_ESP32_CAMERA
8
#include "
esphome/components/esp32_camera/esp32_camera.h
"
9
#endif
10
11
namespace
esphome
{
12
13
#ifdef USE_API
14
namespace
api {
15
class
UserServiceDescriptor;
16
}
// namespace api
17
#endif
18
19
class
ComponentIterator
{
20
public
:
21
void
begin(
bool
include_internal =
false
);
22
void
advance();
23
virtual
bool
on_begin();
24
#ifdef USE_BINARY_SENSOR
25
virtual
bool
on_binary_sensor(
binary_sensor::BinarySensor
*binary_sensor) = 0;
26
#endif
27
#ifdef USE_COVER
28
virtual
bool
on_cover(
cover::Cover
*cover) = 0;
29
#endif
30
#ifdef USE_FAN
31
virtual
bool
on_fan(
fan::Fan
*fan) = 0;
32
#endif
33
#ifdef USE_LIGHT
34
virtual
bool
on_light(
light::LightState
*light) = 0;
35
#endif
36
#ifdef USE_SENSOR
37
virtual
bool
on_sensor(
sensor::Sensor
*sensor) = 0;
38
#endif
39
#ifdef USE_SWITCH
40
virtual
bool
on_switch(
switch_::Switch
*a_switch) = 0;
41
#endif
42
#ifdef USE_BUTTON
43
virtual
bool
on_button(
button::Button
*button) = 0;
44
#endif
45
#ifdef USE_TEXT_SENSOR
46
virtual
bool
on_text_sensor(
text_sensor::TextSensor
*text_sensor) = 0;
47
#endif
48
#ifdef USE_API
49
virtual
bool
on_service(
api::UserServiceDescriptor
*service);
50
#endif
51
#ifdef USE_ESP32_CAMERA
52
virtual
bool
on_camera(
esp32_camera::ESP32Camera
*camera);
53
#endif
54
#ifdef USE_CLIMATE
55
virtual
bool
on_climate(
climate::Climate
*climate) = 0;
56
#endif
57
#ifdef USE_NUMBER
58
virtual
bool
on_number(
number::Number
*number) = 0;
59
#endif
60
#ifdef USE_TEXT
61
virtual
bool
on_text(
text::Text
*text) = 0;
62
#endif
63
#ifdef USE_SELECT
64
virtual
bool
on_select(
select::Select
*select) = 0;
65
#endif
66
#ifdef USE_LOCK
67
virtual
bool
on_lock(
lock::Lock
*a_lock) = 0;
68
#endif
69
#ifdef USE_MEDIA_PLAYER
70
virtual
bool
on_media_player(
media_player::MediaPlayer
*media_player);
71
#endif
72
#ifdef USE_ALARM_CONTROL_PANEL
73
virtual
bool
on_alarm_control_panel(
alarm_control_panel::AlarmControlPanel
*a_alarm_control_panel) = 0;
74
#endif
75
virtual
bool
on_end();
76
77
protected
:
78
enum class
IteratorState
{
79
NONE = 0,
80
BEGIN,
81
#ifdef USE_BINARY_SENSOR
82
BINARY_SENSOR
,
83
#endif
84
#ifdef USE_COVER
85
COVER,
86
#endif
87
#ifdef USE_FAN
88
FAN,
89
#endif
90
#ifdef USE_LIGHT
91
LIGHT,
92
#endif
93
#ifdef USE_SENSOR
94
SENSOR
,
95
#endif
96
#ifdef USE_SWITCH
97
SWITCH
,
98
#endif
99
#ifdef USE_BUTTON
100
BUTTON,
101
#endif
102
#ifdef USE_TEXT_SENSOR
103
TEXT_SENSOR
,
104
#endif
105
#ifdef USE_API
106
SERVICE,
107
#endif
108
#ifdef USE_ESP32_CAMERA
109
CAMERA,
110
#endif
111
#ifdef USE_CLIMATE
112
CLIMATE,
113
#endif
114
#ifdef USE_NUMBER
115
NUMBER,
116
#endif
117
#ifdef USE_TEXT
118
TEXT,
119
#endif
120
#ifdef USE_SELECT
121
SELECT,
122
#endif
123
#ifdef USE_LOCK
124
LOCK,
125
#endif
126
#ifdef USE_MEDIA_PLAYER
127
MEDIA_PLAYER,
128
#endif
129
#ifdef USE_ALARM_CONTROL_PANEL
130
ALARM_CONTROL_PANEL,
131
#endif
132
MAX,
133
} state_{
IteratorState::NONE
};
134
size_t
at_{0};
135
bool
include_internal_{
false
};
136
};
137
138
}
// namespace esphome
esphome::switch_::Switch
Base class for all switches.
Definition:
switch.h:39
esphome::light::LightState
This class represents the communication layer between the front-end MQTT layer and the hardware outpu...
Definition:
light_state.h:34
esphome::alarm_control_panel::AlarmControlPanel
Definition:
alarm_control_panel.h:25
esphome::cover::Cover
Base class for all cover devices.
Definition:
cover.h:111
esphome::ComponentIterator::IteratorState
IteratorState
Definition:
component_iterator.h:78
esp32_camera.h
esphome::ComponentIterator
Definition:
component_iterator.h:19
esphome::button::Button
Base class for all buttons.
Definition:
button.h:29
esphome::nextion::TEXT_SENSOR
Definition:
nextion_component_base.h:14
esphome::esp32_camera::ESP32Camera
Definition:
esp32_camera.h:104
esphome::text::Text
Base-class for all text inputs.
Definition:
text.h:24
esphome::nextion::SWITCH
Definition:
nextion_component_base.h:13
esphome::nextion::SENSOR
Definition:
nextion_component_base.h:11
esphome::anova::NONE
Definition:
anova_base.h:10
esphome::text_sensor::TextSensor
Definition:
text_sensor.h:31
esphome::number::Number
Base-class for all numbers.
Definition:
number.h:39
esphome::media_player::MediaPlayer
Definition:
media_player.h:69
esphome::fan::Fan
Definition:
fan.h:100
controller.h
esphome::nextion::BINARY_SENSOR
Definition:
nextion_component_base.h:12
esphome::select::Select
Base-class for all selects.
Definition:
select.h:31
esphome
Implementation of SPI Controller mode.
Definition:
a01nyub.cpp:7
component.h
esphome::binary_sensor::BinarySensor
Base class for all binary_sensor-type classes.
Definition:
binary_sensor.h:37
helpers.h
esphome::sensor::Sensor
Base-class for all sensors.
Definition:
sensor.h:57
esphome::api::UserServiceDescriptor
Definition:
user_services.h:13
esphome::lock::Lock
Base class for all locks.
Definition:
lock.h:103
esphome::climate::Climate
ClimateDevice - This is the base class for all climate integrations.
Definition:
climate.h:161
Generated by
1.8.13