ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
defines.h
Go to the documentation of this file.
1#pragma once
2
3// This file is not used by the runtime, instead, a version is generated during
4// compilation with only the relevant feature flags for the current build.
5//
6// This file is only used by static analyzers and IDEs.
7
9
10// Informative flags
11#define ESPHOME_BOARD "dummy_board"
12#define ESPHOME_PROJECT_NAME "dummy project"
13#define ESPHOME_PROJECT_VERSION "v2"
14#define ESPHOME_PROJECT_VERSION_30 "v2"
15#define ESPHOME_VARIANT "ESP32"
16#define ESPHOME_DEBUG_SCHEDULER
17
18// Default threading model for static analysis (ESP32 is multi-threaded with atomics)
19#define ESPHOME_THREAD_MULTI_ATOMICS
20
21// logger
22#define ESPHOME_LOG_LEVEL ESPHOME_LOG_LEVEL_VERY_VERBOSE
23
24// Feature flags
25#define USE_ALARM_CONTROL_PANEL
26#define USE_AREAS
27#define USE_BINARY_SENSOR
28#define USE_BUTTON
29#define USE_CAMERA
30#define USE_CLIMATE
31#define USE_CLIMATE_VISUAL_OVERRIDES
32#define USE_CONTROLLER_REGISTRY
33#define USE_COVER
34#define USE_DATETIME
35#define USE_DATETIME_DATE
36#define USE_DATETIME_DATETIME
37#define USE_DATETIME_TIME
38#define USE_DEBUG
39#define USE_DEEP_SLEEP
40#define USE_DEVICES
41#define USE_DISPLAY
42#define USE_ENTITY_ICON
43#define USE_ESP32_IMPROV_STATE_CALLBACK
44#define USE_EVENT
45#define USE_FAN
46#define USE_GRAPH
47#define USE_GRAPHICAL_DISPLAY_MENU
48#define USE_HOMEASSISTANT_TIME
49#define USE_HTTP_REQUEST_OTA_WATCHDOG_TIMEOUT 8000 // NOLINT
50#define USE_IMAGE
51#define USE_IMPROV_SERIAL_NEXT_URL
52#define USE_JSON
53#define USE_LIGHT
54#define USE_LOCK
55#define USE_LOGGER
56#define USE_LOGGER_LEVEL_LISTENERS
57#define USE_LOGGER_RUNTIME_TAG_LEVELS
58#define USE_LVGL
59#define USE_LVGL_ANIMIMG
60#define USE_LVGL_ARC
61#define USE_LVGL_BINARY_SENSOR
62#define USE_LVGL_BUTTON
63#define USE_LVGL_BUTTONMATRIX
64#define USE_LVGL_CANVAS
65#define USE_LVGL_CHART
66#define USE_LVGL_CHECKBOX
67#define USE_LVGL_DROPDOWN
68#define USE_LVGL_FONT
69#define USE_LVGL_IMAGE
70#define USE_LVGL_IMAGEBUTTON
71#define USE_LVGL_KEY_LISTENER
72#define USE_LVGL_KEYBOARD
73#define USE_LVGL_LABEL
74#define USE_LVGL_LINE
75#define USE_LVGL_LIST
76#define USE_LVGL_MENU
77#define USE_LVGL_METER
78#define USE_LVGL_MSGBOX
79#define USE_LVGL_ROLLER
80#define USE_LVGL_ROTARY_ENCODER
81#define USE_LVGL_SLIDER
82#define USE_LVGL_SPAN
83#define USE_LVGL_SPINBOX
84#define USE_LVGL_SPINNER
85#define USE_LVGL_SWITCH
86#define USE_LVGL_TABLE
87#define USE_LVGL_TABVIEW
88#define USE_LVGL_TEXTAREA
89#define USE_LVGL_TILEVIEW
90#define USE_LVGL_TOUCHSCREEN
91#define USE_MDNS
92#define USE_MDNS_STORE_SERVICES
93#define MDNS_SERVICE_COUNT 3
94#define USE_MDNS_DYNAMIC_TXT
95#define MDNS_DYNAMIC_TXT_COUNT 2
96#define SNTP_SERVER_COUNT 3
97#define USE_MEDIA_PLAYER
98#define USE_NEXTION_TFT_UPLOAD
99#define USE_NUMBER
100#define USE_OUTPUT
101#define USE_POWER_SUPPLY
102#define USE_QR_CODE
103#define USE_SELECT
104#define USE_SENSOR
105#define USE_STATUS_LED
106#define USE_STATUS_SENSOR
107#define USE_SWITCH
108#define USE_TEXT
109#define USE_TEXT_SENSOR
110#define USE_TIME
111#define USE_TOUCHSCREEN
112#define USE_UART_DEBUGGER
113#define USE_UART_WAKE_LOOP_ON_RX
114#define USE_UPDATE
115#define USE_VALVE
116#define USE_WATER_HEATER
117#define USE_WATER_HEATER_VISUAL_OVERRIDES
118#define USE_ZWAVE_PROXY
119
120// Feature flags which do not work for zephyr
121#ifndef USE_ZEPHYR
122#define USE_AUDIO_DAC
123#define USE_AUDIO_FLAC_SUPPORT
124#define USE_AUDIO_MP3_SUPPORT
125#define USE_API
126#define USE_API_CLIENT_CONNECTED_TRIGGER
127#define USE_API_CLIENT_DISCONNECTED_TRIGGER
128#define USE_API_HOMEASSISTANT_ACTION_RESPONSES
129#define USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON
130#define USE_API_HOMEASSISTANT_SERVICES
131#define USE_API_HOMEASSISTANT_STATES
132#define USE_API_NOISE
133#define USE_API_PLAINTEXT
134#define USE_API_USER_DEFINED_ACTIONS
135#define USE_API_CUSTOM_SERVICES
136#define USE_API_USER_DEFINED_ACTION_RESPONSES
137#define USE_API_USER_DEFINED_ACTION_RESPONSES_JSON
138#define API_MAX_SEND_QUEUE 8
139#define USE_MD5
140#define USE_SHA256
141#define USE_MQTT
142#define USE_NETWORK
143#define USE_ONLINE_IMAGE_BMP_SUPPORT
144#define USE_ONLINE_IMAGE_PNG_SUPPORT
145#define USE_ONLINE_IMAGE_JPEG_SUPPORT
146#define USE_OTA
147#define USE_OTA_PASSWORD
148#define USE_OTA_STATE_LISTENER
149#define USE_OTA_VERSION 2
150#define USE_TIME_TIMEZONE
151#define USE_WIFI
152#define USE_WIFI_AP
153#define USE_WIFI_MANUAL_IP
154#define USE_WIREGUARD
155#endif
156
157// Arduino-specific feature flags
158#ifdef USE_ARDUINO
159#define USE_PROMETHEUS
160#define USE_WIFI_WPA2_EAP
161#define USE_I2S_LEGACY
162#endif
163
164// ESP32-specific feature flags
165#ifdef USE_ESP32
166#define USE_MQTT_IDF_ENQUEUE
167#define USE_ESPHOME_TASK_LOG_BUFFER
168#define USE_OTA_ROLLBACK
169
170#define USE_BLUETOOTH_PROXY
171#define BLUETOOTH_PROXY_MAX_CONNECTIONS 3
172#define BLUETOOTH_PROXY_ADVERTISEMENT_BATCH_SIZE 16
173#define USE_CAPTIVE_PORTAL
174#define USE_ESP32_BLE
175#define USE_ESP32_BLE_MAX_CONNECTIONS 3
176#define USE_ESP32_BLE_CLIENT
177#define USE_ESP32_BLE_DEVICE
178#define USE_ESP32_BLE_SERVER
179#define USE_ESP32_BLE_UUID
180#define USE_ESP32_BLE_ADVERTISING
181#define USE_ESP32_BLE_SERVER_SET_VALUE_ACTION
182#define USE_ESP32_BLE_SERVER_DESCRIPTOR_SET_VALUE_ACTION
183#define USE_ESP32_BLE_SERVER_NOTIFY_ACTION
184#define USE_ESP32_BLE_SERVER_CHARACTERISTIC_ON_WRITE
185#define USE_ESP32_BLE_SERVER_DESCRIPTOR_ON_WRITE
186#define USE_ESP32_BLE_SERVER_ON_CONNECT
187#define USE_ESP32_BLE_SERVER_ON_DISCONNECT
188#define ESPHOME_ESP32_BLE_TRACKER_LISTENER_COUNT 1
189#define ESPHOME_ESP32_BLE_TRACKER_CLIENT_COUNT 1
190#define ESPHOME_ESP32_BLE_GAP_EVENT_HANDLER_COUNT 2
191#define ESPHOME_ESP32_BLE_GAP_SCAN_EVENT_HANDLER_COUNT 1
192#define ESPHOME_ESP32_BLE_GATTC_EVENT_HANDLER_COUNT 1
193#define ESPHOME_ESP32_BLE_GATTS_EVENT_HANDLER_COUNT 1
194#define ESPHOME_ESP32_BLE_BLE_STATUS_EVENT_HANDLER_COUNT 2
195#define ESPHOME_LOOP_TASK_STACK_SIZE 8192
196#define USE_ESP32_CAMERA_JPEG_ENCODER
197#define USE_HTTP_REQUEST_RESPONSE
198#define USE_I2C
199#define USE_IMPROV
200#define USE_ESP32_IMPROV_NEXT_URL
201#define USE_MICROPHONE
202#define USE_PSRAM
203#define USE_SOCKET_IMPL_BSD_SOCKETS
204#define USE_SOCKET_SELECT_SUPPORT
205#define USE_WAKE_LOOP_THREADSAFE
206#define USE_SPEAKER
207#define USE_SPI
208#define USE_VOICE_ASSISTANT
209#define USE_WEBSERVER
210#define USE_WEBSERVER_AUTH
211#define USE_WEBSERVER_OTA
212#define USE_WEBSERVER_PORT 80 // NOLINT
213#define USE_WEBSERVER_SORTING
214#define USE_WIFI_11KV_SUPPORT
215#define USE_WIFI_FAST_CONNECT
216#define USE_WIFI_LISTENERS
217#define USE_WIFI_RUNTIME_POWER_SAVE
218#define USB_HOST_MAX_REQUESTS 16
219
220#ifdef USE_ARDUINO
221#define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 3, 5)
222#define USE_ETHERNET
223#define USE_ETHERNET_KSZ8081
224#define USE_ETHERNET_MANUAL_IP
225#endif
226
227#ifdef USE_ESP32
228#define USE_MICRO_WAKE_WORD
229#define USE_MICRO_WAKE_WORD_VAD
230#if defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32H2)
231#define USE_OPENTHREAD
232#endif
233#endif
234
235#if defined(USE_ESP32_VARIANT_ESP32S2)
236#define USE_LOGGER_USB_CDC
237#elif defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C5) || \
238 defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32C61) || defined(USE_ESP32_VARIANT_ESP32H2) || \
239 defined(USE_ESP32_VARIANT_ESP32P4) || defined(USE_ESP32_VARIANT_ESP32S3)
240#define USE_LOGGER_USB_CDC
241#define USE_LOGGER_USB_SERIAL_JTAG
242#endif
243#endif
244
245// ESP8266-specific feature flags
246#ifdef USE_ESP8266
247#define USE_ADC_SENSOR_VCC
248#define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 1, 2)
249#define USE_CAPTIVE_PORTAL
250#define USE_ESP8266_PREFERENCES_FLASH
251#define USE_HTTP_REQUEST_ESP8266_HTTPS
252#define USE_HTTP_REQUEST_RESPONSE
253#define USE_I2C
254#define USE_SOCKET_IMPL_LWIP_TCP
255
256#define USE_SPI
257
258// Dummy firmware payload for shelly_dimmer
259#define USE_SHD_FIRMWARE_MAJOR_VERSION 56
260#define USE_SHD_FIRMWARE_MINOR_VERSION 5
261// clang-format off
262#define USE_SHD_FIRMWARE_DATA \
263 {}
264// clang-format on
265
266#define USE_WEBSERVER
267#define USE_WEBSERVER_AUTH
268#define USE_WEBSERVER_PORT 80 // NOLINT
269#endif
270
271#ifdef USE_RP2040
272#define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 3, 0)
273#define USE_HTTP_REQUEST_RESPONSE
274#define USE_I2C
275#define USE_LOGGER_USB_CDC
276#define USE_SOCKET_IMPL_LWIP_TCP
277#define USE_SPI
278#endif
279
280#ifdef USE_LIBRETINY
281#define USE_CAPTIVE_PORTAL
282#define USE_SOCKET_IMPL_LWIP_SOCKETS
283#define USE_SOCKET_SELECT_SUPPORT
284#define USE_WEBSERVER
285#define USE_WEBSERVER_AUTH
286#define USE_WEBSERVER_PORT 80 // NOLINT
287#endif
288
289#ifdef USE_HOST
290#define USE_HTTP_REQUEST_RESPONSE
291#define USE_SOCKET_IMPL_BSD_SOCKETS
292#define USE_SOCKET_SELECT_SUPPORT
293#endif
294
295#ifdef USE_NRF52
296#define USE_NRF52_DFU
297#define USE_NRF52_REG0_VOUT 5
298#define USE_NRF52_UICR_ERASE
299#define USE_SOFTDEVICE_ID 7
300#define USE_SOFTDEVICE_VERSION 1
301#endif
302
303// Disabled feature flags
304// #define USE_BSEC // Requires a library with proprietary license
305// #define USE_BSEC2 // Requires a library with proprietary license
306
307#define USE_DASHBOARD_IMPORT
308
309// Default counts for static analysis
310#define CONTROLLER_REGISTRY_MAX 2
311#define ESPHOME_COMPONENT_COUNT 50
312#define ESPHOME_DEVICE_COUNT 10
313#define ESPHOME_AREA_COUNT 10
314#define ESPHOME_ENTITY_ALARM_CONTROL_PANEL_COUNT 1
315#define ESPHOME_ENTITY_BINARY_SENSOR_COUNT 1
316#define ESPHOME_ENTITY_BUTTON_COUNT 1
317#define ESPHOME_ENTITY_CLIMATE_COUNT 1
318#define ESPHOME_ENTITY_COVER_COUNT 1
319#define ESPHOME_ENTITY_DATE_COUNT 1
320#define ESPHOME_ENTITY_DATETIME_COUNT 1
321#define ESPHOME_ENTITY_EVENT_COUNT 1
322#define ESPHOME_ENTITY_FAN_COUNT 1
323#define ESPHOME_ENTITY_LIGHT_COUNT 1
324#define ESPHOME_ENTITY_LOCK_COUNT 1
325#define ESPHOME_ENTITY_MEDIA_PLAYER_COUNT 1
326#define ESPHOME_ENTITY_NUMBER_COUNT 1
327#define ESPHOME_ENTITY_SELECT_COUNT 1
328#define ESPHOME_ENTITY_SENSOR_COUNT 1
329#define ESPHOME_ENTITY_SWITCH_COUNT 1
330#define ESPHOME_ENTITY_TEXT_COUNT 1
331#define ESPHOME_ENTITY_TEXT_SENSOR_COUNT 1
332#define ESPHOME_ENTITY_TIME_COUNT 1
333#define ESPHOME_ENTITY_UPDATE_COUNT 1
334#define ESPHOME_ENTITY_VALVE_COUNT 1
335#define ESPHOME_ENTITY_WATER_HEATER_COUNT 1