ESPHome 2026.5.0-dev
Loading...
Searching...
No Matches
entity_types.h
Go to the documentation of this file.
1// X-macro include file for entity type declarations.
2// This file is included multiple times with different macro definitions.
3//
4// Both macros must be defined before including this file:
5//
6// ENTITY_TYPE_(type, singular, plural, count, upper)
7// — entities without controller callbacks (button, infrared)
8//
9// ENTITY_CONTROLLER_TYPE_(type, singular, plural, count, upper, callback)
10// — entities with controller callbacks
11//
12// Excluded from this list (handled manually):
13// - devices/areas: not entities
14// - serial_proxy: custom register logic, no by-key lookup
15
16#ifndef ENTITY_TYPE_
17#error "ENTITY_TYPE_(type, singular, plural, count, upper) must be defined before including entity_types.h"
18#endif
19#ifndef ENTITY_CONTROLLER_TYPE_
20#error \
21 "ENTITY_CONTROLLER_TYPE_(type, singular, plural, count, upper, callback) must be defined before including entity_types.h"
22#endif
23
24#ifdef USE_BINARY_SENSOR
25ENTITY_CONTROLLER_TYPE_(binary_sensor::BinarySensor, binary_sensor, binary_sensors, ESPHOME_ENTITY_BINARY_SENSOR_COUNT,
26 BINARY_SENSOR, binary_sensor_update)
27#endif
28#ifdef USE_COVER
29ENTITY_CONTROLLER_TYPE_(cover::Cover, cover, covers, ESPHOME_ENTITY_COVER_COUNT, COVER, cover_update)
30#endif
31#ifdef USE_FAN
32ENTITY_CONTROLLER_TYPE_(fan::Fan, fan, fans, ESPHOME_ENTITY_FAN_COUNT, FAN, fan_update)
33#endif
34#ifdef USE_LIGHT
35ENTITY_CONTROLLER_TYPE_(light::LightState, light, lights, ESPHOME_ENTITY_LIGHT_COUNT, LIGHT, light_update)
36#endif
37#ifdef USE_SENSOR
38ENTITY_CONTROLLER_TYPE_(sensor::Sensor, sensor, sensors, ESPHOME_ENTITY_SENSOR_COUNT, SENSOR, sensor_update)
39#endif
40#ifdef USE_SWITCH
41ENTITY_CONTROLLER_TYPE_(switch_::Switch, switch, switches, ESPHOME_ENTITY_SWITCH_COUNT, SWITCH, switch_update)
42#endif
43#ifdef USE_BUTTON
44ENTITY_TYPE_(button::Button, button, buttons, ESPHOME_ENTITY_BUTTON_COUNT, BUTTON)
45#endif
46#ifdef USE_TEXT_SENSOR
47ENTITY_CONTROLLER_TYPE_(text_sensor::TextSensor, text_sensor, text_sensors, ESPHOME_ENTITY_TEXT_SENSOR_COUNT,
48 TEXT_SENSOR, text_sensor_update)
49#endif
50#ifdef USE_CLIMATE
51ENTITY_CONTROLLER_TYPE_(climate::Climate, climate, climates, ESPHOME_ENTITY_CLIMATE_COUNT, CLIMATE, climate_update)
52#endif
53#ifdef USE_NUMBER
54ENTITY_CONTROLLER_TYPE_(number::Number, number, numbers, ESPHOME_ENTITY_NUMBER_COUNT, NUMBER, number_update)
55#endif
56#ifdef USE_DATETIME_DATE
57ENTITY_CONTROLLER_TYPE_(datetime::DateEntity, date, dates, ESPHOME_ENTITY_DATE_COUNT, DATETIME_DATE, date_update)
58#endif
59#ifdef USE_DATETIME_TIME
60ENTITY_CONTROLLER_TYPE_(datetime::TimeEntity, time, times, ESPHOME_ENTITY_TIME_COUNT, DATETIME_TIME, time_update)
61#endif
62#ifdef USE_DATETIME_DATETIME
63ENTITY_CONTROLLER_TYPE_(datetime::DateTimeEntity, datetime, datetimes, ESPHOME_ENTITY_DATETIME_COUNT, DATETIME_DATETIME,
64 datetime_update)
65#endif
66#ifdef USE_TEXT
67ENTITY_CONTROLLER_TYPE_(text::Text, text, texts, ESPHOME_ENTITY_TEXT_COUNT, TEXT, text_update)
68#endif
69#ifdef USE_SELECT
70ENTITY_CONTROLLER_TYPE_(select::Select, select, selects, ESPHOME_ENTITY_SELECT_COUNT, SELECT, select_update)
71#endif
72#ifdef USE_LOCK
73ENTITY_CONTROLLER_TYPE_(lock::Lock, lock, locks, ESPHOME_ENTITY_LOCK_COUNT, LOCK, lock_update)
74#endif
75#ifdef USE_VALVE
76ENTITY_CONTROLLER_TYPE_(valve::Valve, valve, valves, ESPHOME_ENTITY_VALVE_COUNT, VALVE, valve_update)
77#endif
78#ifdef USE_MEDIA_PLAYER
79ENTITY_CONTROLLER_TYPE_(media_player::MediaPlayer, media_player, media_players, ESPHOME_ENTITY_MEDIA_PLAYER_COUNT,
80 MEDIA_PLAYER, media_player_update)
81#endif
82#ifdef USE_ALARM_CONTROL_PANEL
83ENTITY_CONTROLLER_TYPE_(alarm_control_panel::AlarmControlPanel, alarm_control_panel, alarm_control_panels,
84 ESPHOME_ENTITY_ALARM_CONTROL_PANEL_COUNT, ALARM_CONTROL_PANEL, alarm_control_panel_update)
85#endif
86#ifdef USE_WATER_HEATER
87ENTITY_CONTROLLER_TYPE_(water_heater::WaterHeater, water_heater, water_heaters, ESPHOME_ENTITY_WATER_HEATER_COUNT,
88 WATER_HEATER, water_heater_update)
89#endif
90#ifdef USE_INFRARED
91ENTITY_TYPE_(infrared::Infrared, infrared, infrareds, ESPHOME_ENTITY_INFRARED_COUNT, INFRARED)
92#endif
93#ifdef USE_EVENT
94ENTITY_CONTROLLER_TYPE_(event::Event, event, events, ESPHOME_ENTITY_EVENT_COUNT, EVENT, event)
95#endif
96#ifdef USE_UPDATE
97ENTITY_CONTROLLER_TYPE_(update::UpdateEntity, update, updates, ESPHOME_ENTITY_UPDATE_COUNT, UPDATE, update)
98#endif