mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	Merge branch 'integration' into memory_api
This commit is contained in:
		
							
								
								
									
										2
									
								
								Doxyfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Doxyfile
									
									
									
									
									
								
							| @@ -48,7 +48,7 @@ PROJECT_NAME           = ESPHome | |||||||
| # could be handy for archiving the generated documentation or if some version | # could be handy for archiving the generated documentation or if some version | ||||||
| # control system is used. | # control system is used. | ||||||
|  |  | ||||||
| PROJECT_NUMBER         = 2025.10.0-dev | PROJECT_NUMBER         = 2025.11.0-dev | ||||||
|  |  | ||||||
| # Using the PROJECT_BRIEF tag one can provide an optional one line description | # Using the PROJECT_BRIEF tag one can provide an optional one line description | ||||||
| # for a project that appears at the top of each page and should give viewer a | # for a project that appears at the top of each page and should give viewer a | ||||||
|   | |||||||
| @@ -31,38 +31,10 @@ static const char *const TAG = "mdns"; | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| // Define all constant strings using the macro | // Define all constant strings using the macro | ||||||
| MDNS_STATIC_CONST_CHAR(SERVICE_ESPHOMELIB, "_esphomelib"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(SERVICE_TCP, "_tcp"); | MDNS_STATIC_CONST_CHAR(SERVICE_TCP, "_tcp"); | ||||||
| MDNS_STATIC_CONST_CHAR(SERVICE_PROMETHEUS, "_prometheus-http"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(SERVICE_HTTP, "_http"); |  | ||||||
|  |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_FRIENDLY_NAME, "friendly_name"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_VERSION, "version"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_MAC, "mac"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_PLATFORM, "platform"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_BOARD, "board"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_NETWORK, "network"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_API_ENCRYPTION, "api_encryption"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_API_ENCRYPTION_SUPPORTED, "api_encryption_supported"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_PROJECT_NAME, "project_name"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_PROJECT_VERSION, "project_version"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(TXT_PACKAGE_IMPORT_URL, "package_import_url"); |  | ||||||
|  |  | ||||||
| MDNS_STATIC_CONST_CHAR(PLATFORM_ESP8266, "ESP8266"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(PLATFORM_ESP32, "ESP32"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(PLATFORM_RP2040, "RP2040"); |  | ||||||
|  |  | ||||||
| MDNS_STATIC_CONST_CHAR(NETWORK_WIFI, "wifi"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(NETWORK_ETHERNET, "ethernet"); |  | ||||||
| MDNS_STATIC_CONST_CHAR(NETWORK_THREAD, "thread"); |  | ||||||
|  |  | ||||||
| // Wrap build-time defines into flash storage | // Wrap build-time defines into flash storage | ||||||
| MDNS_STATIC_CONST_CHAR(VALUE_VERSION, ESPHOME_VERSION); | MDNS_STATIC_CONST_CHAR(VALUE_VERSION, ESPHOME_VERSION); | ||||||
| MDNS_STATIC_CONST_CHAR(VALUE_BOARD, ESPHOME_BOARD); |  | ||||||
| #ifdef ESPHOME_PROJECT_NAME |  | ||||||
| MDNS_STATIC_CONST_CHAR(VALUE_PROJECT_NAME, ESPHOME_PROJECT_NAME); |  | ||||||
| MDNS_STATIC_CONST_CHAR(VALUE_PROJECT_VERSION, ESPHOME_PROJECT_VERSION); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| void MDNSComponent::compile_records_() { | void MDNSComponent::compile_records_() { | ||||||
|   this->hostname_ = App.get_name(); |   this->hostname_ = App.get_name(); | ||||||
| @@ -71,6 +43,15 @@ void MDNSComponent::compile_records_() { | |||||||
|   // in mdns/__init__.py. If you add a new service here, update both locations. |   // in mdns/__init__.py. If you add a new service here, update both locations. | ||||||
|  |  | ||||||
| #ifdef USE_API | #ifdef USE_API | ||||||
|  |   MDNS_STATIC_CONST_CHAR(SERVICE_ESPHOMELIB, "_esphomelib"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(TXT_FRIENDLY_NAME, "friendly_name"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(TXT_VERSION, "version"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(TXT_MAC, "mac"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(TXT_PLATFORM, "platform"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(TXT_BOARD, "board"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(TXT_NETWORK, "network"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(VALUE_BOARD, ESPHOME_BOARD); | ||||||
|  |  | ||||||
|   if (api::global_api_server != nullptr) { |   if (api::global_api_server != nullptr) { | ||||||
|     auto &service = this->services_.emplace_next(); |     auto &service = this->services_.emplace_next(); | ||||||
|     service.service_type = MDNS_STR(SERVICE_ESPHOMELIB); |     service.service_type = MDNS_STR(SERVICE_ESPHOMELIB); | ||||||
| @@ -111,10 +92,13 @@ void MDNSComponent::compile_records_() { | |||||||
|     txt_records.push_back({MDNS_STR(TXT_MAC), MDNS_STR(this->add_dynamic_txt_value(get_mac_address()))}); |     txt_records.push_back({MDNS_STR(TXT_MAC), MDNS_STR(this->add_dynamic_txt_value(get_mac_address()))}); | ||||||
|  |  | ||||||
| #ifdef USE_ESP8266 | #ifdef USE_ESP8266 | ||||||
|  |     MDNS_STATIC_CONST_CHAR(PLATFORM_ESP8266, "ESP8266"); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP8266)}); |     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP8266)}); | ||||||
| #elif defined(USE_ESP32) | #elif defined(USE_ESP32) | ||||||
|  |     MDNS_STATIC_CONST_CHAR(PLATFORM_ESP32, "ESP32"); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP32)}); |     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP32)}); | ||||||
| #elif defined(USE_RP2040) | #elif defined(USE_RP2040) | ||||||
|  |     MDNS_STATIC_CONST_CHAR(PLATFORM_RP2040, "RP2040"); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_RP2040)}); |     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_RP2040)}); | ||||||
| #elif defined(USE_LIBRETINY) | #elif defined(USE_LIBRETINY) | ||||||
|     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(lt_cpu_get_model_name())}); |     txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(lt_cpu_get_model_name())}); | ||||||
| @@ -123,14 +107,19 @@ void MDNSComponent::compile_records_() { | |||||||
|     txt_records.push_back({MDNS_STR(TXT_BOARD), MDNS_STR(VALUE_BOARD)}); |     txt_records.push_back({MDNS_STR(TXT_BOARD), MDNS_STR(VALUE_BOARD)}); | ||||||
|  |  | ||||||
| #if defined(USE_WIFI) | #if defined(USE_WIFI) | ||||||
|  |     MDNS_STATIC_CONST_CHAR(NETWORK_WIFI, "wifi"); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_WIFI)}); |     txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_WIFI)}); | ||||||
| #elif defined(USE_ETHERNET) | #elif defined(USE_ETHERNET) | ||||||
|  |     MDNS_STATIC_CONST_CHAR(NETWORK_ETHERNET, "ethernet"); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_ETHERNET)}); |     txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_ETHERNET)}); | ||||||
| #elif defined(USE_OPENTHREAD) | #elif defined(USE_OPENTHREAD) | ||||||
|  |     MDNS_STATIC_CONST_CHAR(NETWORK_THREAD, "thread"); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_THREAD)}); |     txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_THREAD)}); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef USE_API_NOISE | #ifdef USE_API_NOISE | ||||||
|  |     MDNS_STATIC_CONST_CHAR(TXT_API_ENCRYPTION, "api_encryption"); | ||||||
|  |     MDNS_STATIC_CONST_CHAR(TXT_API_ENCRYPTION_SUPPORTED, "api_encryption_supported"); | ||||||
|     MDNS_STATIC_CONST_CHAR(NOISE_ENCRYPTION, "Noise_NNpsk0_25519_ChaChaPoly_SHA256"); |     MDNS_STATIC_CONST_CHAR(NOISE_ENCRYPTION, "Noise_NNpsk0_25519_ChaChaPoly_SHA256"); | ||||||
|     bool has_psk = api::global_api_server->get_noise_ctx()->has_psk(); |     bool has_psk = api::global_api_server->get_noise_ctx()->has_psk(); | ||||||
|     const char *encryption_key = has_psk ? TXT_API_ENCRYPTION : TXT_API_ENCRYPTION_SUPPORTED; |     const char *encryption_key = has_psk ? TXT_API_ENCRYPTION : TXT_API_ENCRYPTION_SUPPORTED; | ||||||
| @@ -138,11 +127,16 @@ void MDNSComponent::compile_records_() { | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef ESPHOME_PROJECT_NAME | #ifdef ESPHOME_PROJECT_NAME | ||||||
|  |     MDNS_STATIC_CONST_CHAR(TXT_PROJECT_NAME, "project_name"); | ||||||
|  |     MDNS_STATIC_CONST_CHAR(TXT_PROJECT_VERSION, "project_version"); | ||||||
|  |     MDNS_STATIC_CONST_CHAR(VALUE_PROJECT_NAME, ESPHOME_PROJECT_NAME); | ||||||
|  |     MDNS_STATIC_CONST_CHAR(VALUE_PROJECT_VERSION, ESPHOME_PROJECT_VERSION); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_PROJECT_NAME), MDNS_STR(VALUE_PROJECT_NAME)}); |     txt_records.push_back({MDNS_STR(TXT_PROJECT_NAME), MDNS_STR(VALUE_PROJECT_NAME)}); | ||||||
|     txt_records.push_back({MDNS_STR(TXT_PROJECT_VERSION), MDNS_STR(VALUE_PROJECT_VERSION)}); |     txt_records.push_back({MDNS_STR(TXT_PROJECT_VERSION), MDNS_STR(VALUE_PROJECT_VERSION)}); | ||||||
| #endif  // ESPHOME_PROJECT_NAME | #endif  // ESPHOME_PROJECT_NAME | ||||||
|  |  | ||||||
| #ifdef USE_DASHBOARD_IMPORT | #ifdef USE_DASHBOARD_IMPORT | ||||||
|  |     MDNS_STATIC_CONST_CHAR(TXT_PACKAGE_IMPORT_URL, "package_import_url"); | ||||||
|     txt_records.push_back( |     txt_records.push_back( | ||||||
|         {MDNS_STR(TXT_PACKAGE_IMPORT_URL), MDNS_STR(dashboard_import::get_package_import_url().c_str())}); |         {MDNS_STR(TXT_PACKAGE_IMPORT_URL), MDNS_STR(dashboard_import::get_package_import_url().c_str())}); | ||||||
| #endif | #endif | ||||||
| @@ -150,6 +144,8 @@ void MDNSComponent::compile_records_() { | |||||||
| #endif  // USE_API | #endif  // USE_API | ||||||
|  |  | ||||||
| #ifdef USE_PROMETHEUS | #ifdef USE_PROMETHEUS | ||||||
|  |   MDNS_STATIC_CONST_CHAR(SERVICE_PROMETHEUS, "_prometheus-http"); | ||||||
|  |  | ||||||
|   auto &prom_service = this->services_.emplace_next(); |   auto &prom_service = this->services_.emplace_next(); | ||||||
|   prom_service.service_type = MDNS_STR(SERVICE_PROMETHEUS); |   prom_service.service_type = MDNS_STR(SERVICE_PROMETHEUS); | ||||||
|   prom_service.proto = MDNS_STR(SERVICE_TCP); |   prom_service.proto = MDNS_STR(SERVICE_TCP); | ||||||
| @@ -157,6 +153,8 @@ void MDNSComponent::compile_records_() { | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef USE_WEBSERVER | #ifdef USE_WEBSERVER | ||||||
|  |   MDNS_STATIC_CONST_CHAR(SERVICE_HTTP, "_http"); | ||||||
|  |  | ||||||
|   auto &web_service = this->services_.emplace_next(); |   auto &web_service = this->services_.emplace_next(); | ||||||
|   web_service.service_type = MDNS_STR(SERVICE_HTTP); |   web_service.service_type = MDNS_STR(SERVICE_HTTP); | ||||||
|   web_service.proto = MDNS_STR(SERVICE_TCP); |   web_service.proto = MDNS_STR(SERVICE_TCP); | ||||||
| @@ -164,6 +162,9 @@ void MDNSComponent::compile_records_() { | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #if !defined(USE_API) && !defined(USE_PROMETHEUS) && !defined(USE_WEBSERVER) && !defined(USE_MDNS_EXTRA_SERVICES) | #if !defined(USE_API) && !defined(USE_PROMETHEUS) && !defined(USE_WEBSERVER) && !defined(USE_MDNS_EXTRA_SERVICES) | ||||||
|  |   MDNS_STATIC_CONST_CHAR(SERVICE_HTTP, "_http"); | ||||||
|  |   MDNS_STATIC_CONST_CHAR(TXT_VERSION, "version"); | ||||||
|  |  | ||||||
|   // Publish "http" service if not using native API or any other services |   // Publish "http" service if not using native API or any other services | ||||||
|   // This is just to have *some* mDNS service so that .local resolution works |   // This is just to have *some* mDNS service so that .local resolution works | ||||||
|   auto &fallback_service = this->services_.emplace_next(); |   auto &fallback_service = this->services_.emplace_next(); | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from enum import Enum | |||||||
|  |  | ||||||
| from esphome.enum import StrEnum | from esphome.enum import StrEnum | ||||||
|  |  | ||||||
| __version__ = "2025.10.0-dev" | __version__ = "2025.11.0-dev" | ||||||
|  |  | ||||||
| ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_" | ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_" | ||||||
| VALID_SUBSTITUTIONS_CHARACTERS = ( | VALID_SUBSTITUTIONS_CHARACTERS = ( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user