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