ESPHome  2022.8.0
controller.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "esphome/core/defines.h"
4 #ifdef USE_BINARY_SENSOR
6 #endif
7 #ifdef USE_FAN
9 #endif
10 #ifdef USE_LIGHT
12 #endif
13 #ifdef USE_COVER
15 #endif
16 #ifdef USE_SENSOR
18 #endif
19 #ifdef USE_TEXT_SENSOR
21 #endif
22 #ifdef USE_SWITCH
24 #endif
25 #ifdef USE_BUTTON
27 #endif
28 #ifdef USE_CLIMATE
30 #endif
31 #ifdef USE_NUMBER
33 #endif
34 #ifdef USE_SELECT
36 #endif
37 #ifdef USE_LOCK
39 #endif
40 #ifdef USE_MEDIA_PLAYER
42 #endif
43 
44 namespace esphome {
45 
46 class Controller {
47  public:
48  void setup_controller(bool include_internal = false);
49 #ifdef USE_BINARY_SENSOR
51 #endif
52 #ifdef USE_FAN
53  virtual void on_fan_update(fan::Fan *obj){};
54 #endif
55 #ifdef USE_LIGHT
56  virtual void on_light_update(light::LightState *obj){};
57 #endif
58 #ifdef USE_SENSOR
59  virtual void on_sensor_update(sensor::Sensor *obj, float state){};
60 #endif
61 #ifdef USE_SWITCH
62  virtual void on_switch_update(switch_::Switch *obj, bool state){};
63 #endif
64 #ifdef USE_COVER
65  virtual void on_cover_update(cover::Cover *obj){};
66 #endif
67 #ifdef USE_TEXT_SENSOR
68  virtual void on_text_sensor_update(text_sensor::TextSensor *obj, const std::string &state){};
69 #endif
70 #ifdef USE_CLIMATE
71  virtual void on_climate_update(climate::Climate *obj){};
72 #endif
73 #ifdef USE_NUMBER
74  virtual void on_number_update(number::Number *obj, float state){};
75 #endif
76 #ifdef USE_SELECT
77  virtual void on_select_update(select::Select *obj, const std::string &state, size_t index){};
78 #endif
79 #ifdef USE_LOCK
80  virtual void on_lock_update(lock::Lock *obj){};
81 #endif
82 #ifdef USE_MEDIA_PLAYER
84 #endif
85 };
86 
87 } // namespace esphome
Base class for all switches.
Definition: switch.h:33
This class represents the communication layer between the front-end MQTT layer and the hardware outpu...
Definition: light_state.h:32
Base class for all cover devices.
Definition: cover.h:111
virtual void on_select_update(select::Select *obj, const std::string &state, size_t index)
Definition: controller.h:77
virtual void on_light_update(light::LightState *obj)
Definition: controller.h:56
virtual void on_number_update(number::Number *obj, float state)
Definition: controller.h:74
virtual void on_lock_update(lock::Lock *obj)
Definition: controller.h:80
virtual void on_cover_update(cover::Cover *obj)
Definition: controller.h:65
Base-class for all numbers.
Definition: number.h:29
virtual void on_climate_update(climate::Climate *obj)
Definition: controller.h:71
virtual void on_fan_update(fan::Fan *obj)
Definition: controller.h:53
virtual void on_text_sensor_update(text_sensor::TextSensor *obj, const std::string &state)
Definition: controller.h:68
virtual void on_sensor_update(sensor::Sensor *obj, float state)
Definition: controller.h:59
virtual void on_media_player_update(media_player::MediaPlayer *obj)
Definition: controller.h:83
void setup_controller(bool include_internal=false)
Definition: controller.cpp:7
Base-class for all selects.
Definition: select.h:24
Definition: a4988.cpp:4
Base class for all binary_sensor-type classes.
Definition: binary_sensor.h:26
virtual void on_switch_update(switch_::Switch *obj, bool state)
Definition: controller.h:62
Base-class for all sensors.
Definition: sensor.h:48
virtual void on_binary_sensor_update(binary_sensor::BinarySensor *obj, bool state)
Definition: controller.h:50
Base class for all locks.
Definition: lock.h:103
ClimateDevice - This is the base class for all climate integrations.
Definition: climate.h:167
bool state
Definition: fan.h:34