ESPHome  2024.4.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 // Feature flags
18 #define USE_API
19 #define USE_API_NOISE
20 #define USE_API_PLAINTEXT
21 #define USE_ALARM_CONTROL_PANEL
22 #define USE_BINARY_SENSOR
23 #define USE_BUTTON
24 #define USE_CLIMATE
25 #define USE_COVER
26 #define USE_DEEP_SLEEP
27 #define USE_FAN
28 #define USE_GRAPH
29 #define USE_HOMEASSISTANT_TIME
30 #define USE_JSON
31 #define USE_LIGHT
32 #define USE_LOCK
33 #define USE_LOGGER
34 #define USE_MDNS
35 #define USE_MEDIA_PLAYER
36 #define USE_MQTT
37 #define USE_NUMBER
38 #define USE_DATETIME
39 #define USE_DATETIME_DATE
40 #define USE_DATETIME_TIME
41 #define USE_OTA
42 #define USE_OTA_PASSWORD
43 #define USE_OTA_STATE_CALLBACK
44 #define USE_OTA_VERSION 1
45 #define USE_OUTPUT
46 #define USE_POWER_SUPPLY
47 #define USE_QR_CODE
48 #define USE_SELECT
49 #define USE_SENSOR
50 #define USE_STATUS_LED
51 #define USE_SWITCH
52 #define USE_TEXT
53 #define USE_TEXT_SENSOR
54 #define USE_TIME
55 #define USE_TOUCHSCREEN
56 #define USE_UART_DEBUGGER
57 #define USE_WIFI
58 #define USE_WIFI_AP
59 #define USE_GRAPHICAL_DISPLAY_MENU
60 
61 // Arduino-specific feature flags
62 #ifdef USE_ARDUINO
63 #define USE_CAPTIVE_PORTAL
64 #define USE_NEXTION_TFT_UPLOAD
65 #define USE_PROMETHEUS
66 #define USE_WEBSERVER
67 #define USE_WEBSERVER_PORT 80 // NOLINT
68 #define USE_WIFI_WPA2_EAP
69 #endif
70 
71 // IDF-specific feature flags
72 #ifdef USE_ESP_IDF
73 #define USE_MQTT_IDF_ENQUEUE
74 #endif
75 
76 // ESP32-specific feature flags
77 #ifdef USE_ESP32
78 #define USE_ESP32_BLE_CLIENT
79 #define USE_ESP32_BLE_SERVER
80 #define USE_ESP32_CAMERA
81 #define USE_IMPROV
82 #define USE_SOCKET_IMPL_BSD_SOCKETS
83 #define USE_WIFI_11KV_SUPPORT
84 #define USE_BLUETOOTH_PROXY
85 #define USE_VOICE_ASSISTANT
86 #define USE_MICROPHONE
87 #define USE_SPEAKER
88 #define USE_SPI
89 
90 #ifdef USE_ARDUINO
91 #define USE_ARDUINO_VERSION_CODE VERSION_CODE(2, 0, 5)
92 #define USE_ETHERNET
93 #endif
94 
95 #ifdef USE_ESP_IDF
96 #define USE_ESP_IDF_VERSION_CODE VERSION_CODE(4, 4, 2)
97 #endif
98 #endif
99 
100 // ESP8266-specific feature flags
101 #ifdef USE_ESP8266
102 #define USE_ADC_SENSOR_VCC
103 #define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 1, 2)
104 #define USE_ESP8266_PREFERENCES_FLASH
105 #define USE_HTTP_REQUEST_ESP8266_HTTPS
106 #define USE_SOCKET_IMPL_LWIP_TCP
107 
108 #define USE_SPI
109 
110 // Dummy firmware payload for shelly_dimmer
111 #define USE_SHD_FIRMWARE_MAJOR_VERSION 56
112 #define USE_SHD_FIRMWARE_MINOR_VERSION 5
113 #define USE_SHD_FIRMWARE_DATA \
114  {}
115 
116 #endif
117 
118 #ifdef USE_RP2040
119 #define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 3, 0)
120 #define USE_SOCKET_IMPL_LWIP_TCP
121 #define USE_SPI
122 #endif
123 
124 #ifdef USE_LIBRETINY
125 #define USE_SOCKET_IMPL_LWIP_SOCKETS
126 #endif
127 
128 #ifdef USE_HOST
129 #define USE_SOCKET_IMPL_BSD_SOCKETS
130 #endif
131 
132 // Disabled feature flags
133 // #define USE_BSEC // Requires a library with proprietary license.
134 
135 #define USE_DASHBOARD_IMPORT