3#ifdef USE_CONTROLLER_REGISTRY
14#define CONTROLLER_REGISTRY_NOTIFY(entity_type, entity_name) \
15 void ControllerRegistry::notify_##entity_name##_update(entity_type *obj) { \
16 for (auto *controller : controllers) { \
17 controller->on_##entity_name##_update(obj); \
22#define CONTROLLER_REGISTRY_NOTIFY_NO_UPDATE_SUFFIX(entity_type, entity_name) \
23 void ControllerRegistry::notify_##entity_name(entity_type *obj) { \
24 for (auto *controller : controllers) { \
25 controller->on_##entity_name(obj); \
29#ifdef USE_BINARY_SENSOR
34CONTROLLER_REGISTRY_NOTIFY(
fan::Fan, fan)
65#ifdef USE_DATETIME_DATE
69#ifdef USE_DATETIME_TIME
73#ifdef USE_DATETIME_DATETIME
93#ifdef USE_MEDIA_PLAYER
97#ifdef USE_ALARM_CONTROL_PANEL
102CONTROLLER_REGISTRY_NOTIFY_NO_UPDATE_SUFFIX(
event::Event, event)
109#undef CONTROLLER_REGISTRY_NOTIFY
110#undef CONTROLLER_REGISTRY_NOTIFY_NO_UPDATE_SUFFIX
static void register_controller(Controller *controller)
Register a controller to receive entity state updates.
static StaticVector< Controller *, CONTROLLER_REGISTRY_MAX > controllers
Base class for all binary_sensor-type classes.
ClimateDevice - This is the base class for all climate integrations.
Base class for all cover devices.
This class represents the communication layer between the front-end MQTT layer and the hardware outpu...
Base class for all locks.
Base-class for all numbers.
Base-class for all selects.
Base-class for all sensors.
Base class for all switches.
Base-class for all text inputs.
Base class for all valve devices.
Providing packet encoding functions for exchanging data with a remote host.