ESPHome  2025.2.0
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 
8 #include "esphome/core/macros.h"
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 
17 // logger
18 #define ESPHOME_LOG_LEVEL ESPHOME_LOG_LEVEL_VERY_VERBOSE
19 
20 // Feature flags
21 #define USE_ALARM_CONTROL_PANEL
22 #define USE_AUDIO_FLAC_SUPPORT
23 #define USE_AUDIO_MP3_SUPPORT
24 #define USE_API
25 #define USE_API_NOISE
26 #define USE_API_PLAINTEXT
27 #define USE_BINARY_SENSOR
28 #define USE_BUTTON
29 #define USE_CLIMATE
30 #define USE_COVER
31 #define USE_DATETIME
32 #define USE_DATETIME_DATE
33 #define USE_DATETIME_DATETIME
34 #define USE_DATETIME_TIME
35 #define USE_DEEP_SLEEP
36 #define USE_DISPLAY
37 #define USE_ESP32_IMPROV_STATE_CALLBACK
38 #define USE_EVENT
39 #define USE_FAN
40 #define USE_GRAPH
41 #define USE_GRAPHICAL_DISPLAY_MENU
42 #define USE_HOMEASSISTANT_TIME
43 #define USE_HTTP_REQUEST_OTA_WATCHDOG_TIMEOUT 8000 // NOLINT
44 #define USE_JSON
45 #define USE_LIGHT
46 #define USE_LOCK
47 #define USE_LOGGER
48 #define USE_LVGL
49 #define USE_LVGL_ANIMIMG
50 #define USE_LVGL_BINARY_SENSOR
51 #define USE_LVGL_BUTTONMATRIX
52 #define USE_LVGL_DROPDOWN
53 #define USE_LVGL_FONT
54 #define USE_LVGL_IMAGE
55 #define USE_LVGL_KEY_LISTENER
56 #define USE_LVGL_KEYBOARD
57 #define USE_LVGL_METER
58 #define USE_LVGL_ROLLER
59 #define USE_LVGL_ROTARY_ENCODER
60 #define USE_LVGL_TOUCHSCREEN
61 #define USE_MD5
62 #define USE_MDNS
63 #define USE_MEDIA_PLAYER
64 #define USE_MQTT
65 #define USE_NETWORK
66 #define USE_NEXTION_TFT_UPLOAD
67 #define USE_NUMBER
68 #define USE_ONLINE_IMAGE_BMP_SUPPORT
69 #define USE_ONLINE_IMAGE_PNG_SUPPORT
70 #define USE_ONLINE_IMAGE_JPEG_SUPPORT
71 #define USE_OTA
72 #define USE_OTA_PASSWORD
73 #define USE_OTA_STATE_CALLBACK
74 #define USE_OTA_VERSION 1
75 #define USE_OUTPUT
76 #define USE_POWER_SUPPLY
77 #define USE_QR_CODE
78 #define USE_SELECT
79 #define USE_SENSOR
80 #define USE_STATUS_LED
81 #define USE_SWITCH
82 #define USE_TEXT
83 #define USE_TEXT_SENSOR
84 #define USE_TIME
85 #define USE_TOUCHSCREEN
86 #define USE_UART_DEBUGGER
87 #define USE_UPDATE
88 #define USE_VALVE
89 #define USE_WIFI
90 #define USE_WIFI_AP
91 #define USE_WIREGUARD
92 
93 // Arduino-specific feature flags
94 #ifdef USE_ARDUINO
95 #define USE_PROMETHEUS
96 #define USE_WIFI_WPA2_EAP
97 #endif
98 
99 // IDF-specific feature flags
100 #ifdef USE_ESP_IDF
101 #define USE_MQTT_IDF_ENQUEUE
102 #endif
103 
104 // ESP32-specific feature flags
105 #ifdef USE_ESP32
106 #define USE_BLUETOOTH_PROXY
107 #define USE_CAPTIVE_PORTAL
108 #define USE_ESP32_BLE
109 #define USE_ESP32_BLE_CLIENT
110 #define USE_ESP32_BLE_SERVER
111 #define USE_ESP32_CAMERA
112 #define USE_IMPROV
113 #define USE_MICRO_WAKE_WORD_VAD
114 #define USE_MICROPHONE
115 #define USE_PSRAM
116 #define USE_SOCKET_IMPL_BSD_SOCKETS
117 #define USE_SPEAKER
118 #define USE_SPI
119 #define USE_VOICE_ASSISTANT
120 #define USE_WEBSERVER
121 #define USE_WEBSERVER_PORT 80 // NOLINT
122 #define USE_WIFI_11KV_SUPPORT
123 
124 #ifdef USE_ARDUINO
125 #define USE_ARDUINO_VERSION_CODE VERSION_CODE(2, 0, 5)
126 #define USE_ETHERNET
127 #endif
128 
129 #ifdef USE_ESP_IDF
130 #define USE_ESP_IDF_VERSION_CODE VERSION_CODE(5, 1, 5)
131 #endif
132 
133 #if defined(USE_ESP32_VARIANT_ESP32S2)
134 #define USE_LOGGER_USB_CDC
135 #elif defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32C3) || \
136  defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32H2)
137 #define USE_LOGGER_USB_CDC
138 #define USE_LOGGER_USB_SERIAL_JTAG
139 #endif
140 #endif
141 
142 // ESP8266-specific feature flags
143 #ifdef USE_ESP8266
144 #define USE_ADC_SENSOR_VCC
145 #define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 1, 2)
146 #define USE_CAPTIVE_PORTAL
147 #define USE_ESP8266_PREFERENCES_FLASH
148 #define USE_HTTP_REQUEST_ESP8266_HTTPS
149 #define USE_SOCKET_IMPL_LWIP_TCP
150 
151 #define USE_SPI
152 
153 // Dummy firmware payload for shelly_dimmer
154 #define USE_SHD_FIRMWARE_MAJOR_VERSION 56
155 #define USE_SHD_FIRMWARE_MINOR_VERSION 5
156 #define USE_SHD_FIRMWARE_DATA \
157  {}
158 
159 #define USE_WEBSERVER
160 #define USE_WEBSERVER_PORT 80 // NOLINT
161 #endif
162 
163 #ifdef USE_RP2040
164 #define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 3, 0)
165 #define USE_LOGGER_USB_CDC
166 #define USE_SOCKET_IMPL_LWIP_TCP
167 #define USE_SPI
168 #endif
169 
170 #ifdef USE_LIBRETINY
171 #define USE_CAPTIVE_PORTAL
172 #define USE_SOCKET_IMPL_LWIP_SOCKETS
173 #define USE_WEBSERVER
174 #define USE_WEBSERVER_PORT 80 // NOLINT
175 #endif
176 
177 #ifdef USE_HOST
178 #define USE_SOCKET_IMPL_BSD_SOCKETS
179 #endif
180 
181 // Disabled feature flags
182 // #define USE_BSEC // Requires a library with proprietary license
183 // #define USE_BSEC2 // Requires a library with proprietary license
184 
185 #define USE_DASHBOARD_IMPORT