ESPHome 2025.10.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_COVER
32#define USE_DATETIME
33#define USE_DATETIME_DATE
34#define USE_DATETIME_DATETIME
35#define USE_DATETIME_TIME
36#define USE_DEEP_SLEEP
37#define USE_DEVICES
38#define USE_DISPLAY
39#define USE_ENTITY_ICON
40#define USE_ESP32_IMPROV_STATE_CALLBACK
41#define USE_EVENT
42#define USE_FAN
43#define USE_GRAPH
44#define USE_GRAPHICAL_DISPLAY_MENU
45#define USE_HOMEASSISTANT_TIME
46#define USE_HTTP_REQUEST_OTA_WATCHDOG_TIMEOUT 8000 // NOLINT
47#define USE_JSON
48#define USE_LIGHT
49#define USE_LOCK
50#define USE_LOGGER
51#define USE_LVGL
52#define USE_LVGL_ANIMIMG
53#define USE_LVGL_ARC
54#define USE_LVGL_BINARY_SENSOR
55#define USE_LVGL_BUTTON
56#define USE_LVGL_BUTTONMATRIX
57#define USE_LVGL_CANVAS
58#define USE_LVGL_CHART
59#define USE_LVGL_CHECKBOX
60#define USE_LVGL_DROPDOWN
61#define USE_LVGL_FONT
62#define USE_LVGL_IMAGE
63#define USE_LVGL_IMAGEBUTTON
64#define USE_LVGL_KEY_LISTENER
65#define USE_LVGL_KEYBOARD
66#define USE_LVGL_LABEL
67#define USE_LVGL_LINE
68#define USE_LVGL_LIST
69#define USE_LVGL_MENU
70#define USE_LVGL_METER
71#define USE_LVGL_MSGBOX
72#define USE_LVGL_ROLLER
73#define USE_LVGL_ROTARY_ENCODER
74#define USE_LVGL_SLIDER
75#define USE_LVGL_SPAN
76#define USE_LVGL_SPINBOX
77#define USE_LVGL_SPINNER
78#define USE_LVGL_SWITCH
79#define USE_LVGL_TABLE
80#define USE_LVGL_TABVIEW
81#define USE_LVGL_TEXTAREA
82#define USE_LVGL_TILEVIEW
83#define USE_LVGL_TOUCHSCREEN
84#define USE_MDNS
85#define USE_MEDIA_PLAYER
86#define USE_NEXTION_TFT_UPLOAD
87#define USE_NUMBER
88#define USE_OUTPUT
89#define USE_POWER_SUPPLY
90#define USE_QR_CODE
91#define USE_SELECT
92#define USE_SENSOR
93#define USE_STATUS_LED
94#define USE_STATUS_SENSOR
95#define USE_SWITCH
96#define USE_TEXT
97#define USE_TEXT_SENSOR
98#define USE_TIME
99#define USE_TOUCHSCREEN
100#define USE_UART_DEBUGGER
101#define USE_UPDATE
102#define USE_VALVE
103#define USE_ZWAVE_PROXY
104
105// Feature flags which do not work for zephyr
106#ifndef USE_ZEPHYR
107#define USE_AUDIO_DAC
108#define USE_AUDIO_FLAC_SUPPORT
109#define USE_AUDIO_MP3_SUPPORT
110#define USE_API
111#define USE_API_CLIENT_CONNECTED_TRIGGER
112#define USE_API_CLIENT_DISCONNECTED_TRIGGER
113#define USE_API_HOMEASSISTANT_SERVICES
114#define USE_API_HOMEASSISTANT_STATES
115#define USE_API_NOISE
116#define USE_API_PLAINTEXT
117#define USE_API_SERVICES
118#define USE_MD5
119#define USE_SHA256
120#define USE_MQTT
121#define USE_NETWORK
122#define USE_ONLINE_IMAGE_BMP_SUPPORT
123#define USE_ONLINE_IMAGE_PNG_SUPPORT
124#define USE_ONLINE_IMAGE_JPEG_SUPPORT
125#define USE_OTA
126#define USE_OTA_MD5
127#define USE_OTA_PASSWORD
128#define USE_OTA_SHA256
129#define ALLOW_OTA_DOWNGRADE_MD5
130#define USE_OTA_STATE_CALLBACK
131#define USE_OTA_VERSION 2
132#define USE_TIME_TIMEZONE
133#define USE_WIFI
134#define USE_WIFI_AP
135#define USE_WIREGUARD
136#endif
137
138// Arduino-specific feature flags
139#ifdef USE_ARDUINO
140#define USE_PROMETHEUS
141#define USE_WIFI_WPA2_EAP
142#define USE_I2S_LEGACY
143#endif
144
145// IDF-specific feature flags
146#ifdef USE_ESP_IDF
147#define USE_MQTT_IDF_ENQUEUE
148#endif
149
150// ESP32-specific feature flags
151#ifdef USE_ESP32
152#define USE_ESPHOME_TASK_LOG_BUFFER
153
154#define USE_BLUETOOTH_PROXY
155#define BLUETOOTH_PROXY_MAX_CONNECTIONS 3
156#define BLUETOOTH_PROXY_ADVERTISEMENT_BATCH_SIZE 16
157#define USE_CAPTIVE_PORTAL
158#define USE_ESP32_BLE
159#define USE_ESP32_BLE_CLIENT
160#define USE_ESP32_BLE_DEVICE
161#define USE_ESP32_BLE_SERVER
162#define USE_ESP32_BLE_UUID
163#define USE_ESP32_BLE_ADVERTISING
164#define USE_ESP32_BLE_SERVER_SET_VALUE_ACTION
165#define USE_ESP32_BLE_SERVER_DESCRIPTOR_SET_VALUE_ACTION
166#define USE_ESP32_BLE_SERVER_NOTIFY_ACTION
167#define USE_ESP32_BLE_SERVER_CHARACTERISTIC_ON_WRITE
168#define USE_ESP32_BLE_SERVER_DESCRIPTOR_ON_WRITE
169#define USE_ESP32_BLE_SERVER_ON_CONNECT
170#define USE_ESP32_BLE_SERVER_ON_DISCONNECT
171#define USE_ESP32_CAMERA_JPEG_ENCODER
172#define USE_I2C
173#define USE_IMPROV
174#define USE_MICROPHONE
175#define USE_PSRAM
176#define USE_SOCKET_IMPL_BSD_SOCKETS
177#define USE_SOCKET_SELECT_SUPPORT
178#define USE_SPEAKER
179#define USE_SPI
180#define USE_VOICE_ASSISTANT
181#define USE_WEBSERVER
182#define USE_WEBSERVER_AUTH
183#define USE_WEBSERVER_OTA
184#define USE_WEBSERVER_PORT 80 // NOLINT
185#define USE_WEBSERVER_SORTING
186#define USE_WIFI_11KV_SUPPORT
187
188#ifdef USE_ARDUINO
189#define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 2, 1)
190#define USE_ETHERNET
191#define USE_ETHERNET_KSZ8081
192#endif
193
194#ifdef USE_ESP_IDF
195#define USE_MICRO_WAKE_WORD
196#define USE_MICRO_WAKE_WORD_VAD
197#if defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32H2)
198#define USE_OPENTHREAD
199#endif
200#endif
201
202#if defined(USE_ESP32_VARIANT_ESP32S2)
203#define USE_LOGGER_USB_CDC
204#elif defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32C3) || \
205 defined(USE_ESP32_VARIANT_ESP32C5) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32H2) || \
206 defined(USE_ESP32_VARIANT_ESP32P4)
207#define USE_LOGGER_USB_CDC
208#define USE_LOGGER_USB_SERIAL_JTAG
209#endif
210#endif
211
212// ESP8266-specific feature flags
213#ifdef USE_ESP8266
214#define USE_ADC_SENSOR_VCC
215#define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 1, 2)
216#define USE_CAPTIVE_PORTAL
217#define USE_ESP8266_PREFERENCES_FLASH
218#define USE_HTTP_REQUEST_ESP8266_HTTPS
219#define USE_I2C
220#define USE_SOCKET_IMPL_LWIP_TCP
221
222#define USE_SPI
223
224// Dummy firmware payload for shelly_dimmer
225#define USE_SHD_FIRMWARE_MAJOR_VERSION 56
226#define USE_SHD_FIRMWARE_MINOR_VERSION 5
227#define USE_SHD_FIRMWARE_DATA \
228 {}
229
230#define USE_WEBSERVER
231#define USE_WEBSERVER_AUTH
232#define USE_WEBSERVER_PORT 80 // NOLINT
233#endif
234
235#ifdef USE_RP2040
236#define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 3, 0)
237#define USE_I2C
238#define USE_LOGGER_USB_CDC
239#define USE_SOCKET_IMPL_LWIP_TCP
240#define USE_SPI
241#endif
242
243#ifdef USE_LIBRETINY
244#define USE_CAPTIVE_PORTAL
245#define USE_SOCKET_IMPL_LWIP_SOCKETS
246#define USE_SOCKET_SELECT_SUPPORT
247#define USE_WEBSERVER
248#define USE_WEBSERVER_AUTH
249#define USE_WEBSERVER_PORT 80 // NOLINT
250#endif
251
252#ifdef USE_HOST
253#define USE_SOCKET_IMPL_BSD_SOCKETS
254#define USE_SOCKET_SELECT_SUPPORT
255#endif
256
257#ifdef USE_NRF52
258#define USE_NRF52_DFU
259#endif
260
261// Disabled feature flags
262// #define USE_BSEC // Requires a library with proprietary license
263// #define USE_BSEC2 // Requires a library with proprietary license
264
265#define USE_DASHBOARD_IMPORT
266
267// Default counts for static analysis
268#define ESPHOME_COMPONENT_COUNT 50
269#define ESPHOME_DEVICE_COUNT 10
270#define ESPHOME_AREA_COUNT 10
271#define ESPHOME_ENTITY_ALARM_CONTROL_PANEL_COUNT 1
272#define ESPHOME_ENTITY_BINARY_SENSOR_COUNT 1
273#define ESPHOME_ENTITY_BUTTON_COUNT 1
274#define ESPHOME_ENTITY_CLIMATE_COUNT 1
275#define ESPHOME_ENTITY_COVER_COUNT 1
276#define ESPHOME_ENTITY_DATE_COUNT 1
277#define ESPHOME_ENTITY_DATETIME_COUNT 1
278#define ESPHOME_ENTITY_EVENT_COUNT 1
279#define ESPHOME_ENTITY_FAN_COUNT 1
280#define ESPHOME_ENTITY_LIGHT_COUNT 1
281#define ESPHOME_ENTITY_LOCK_COUNT 1
282#define ESPHOME_ENTITY_MEDIA_PLAYER_COUNT 1
283#define ESPHOME_ENTITY_NUMBER_COUNT 1
284#define ESPHOME_ENTITY_SELECT_COUNT 1
285#define ESPHOME_ENTITY_SENSOR_COUNT 1
286#define ESPHOME_ENTITY_SWITCH_COUNT 1
287#define ESPHOME_ENTITY_TEXT_COUNT 1
288#define ESPHOME_ENTITY_TEXT_SENSOR_COUNT 1
289#define ESPHOME_ENTITY_TIME_COUNT 1
290#define ESPHOME_ENTITY_UPDATE_COUNT 1
291#define ESPHOME_ENTITY_VALVE_COUNT 1