74 char *config_hash_buf) {
91 service.service_type = MDNS_STR(SERVICE_ESPHOMELIB);
92 service.proto = MDNS_STR(SERVICE_TCP);
96 bool friendly_name_empty = friendly_name.
empty();
100 if (!friendly_name_empty) {
103#if defined(USE_ESP8266) || defined(USE_ESP32) || defined(USE_RP2040) || defined(USE_LIBRETINY)
106#if defined(USE_WIFI) || defined(USE_ETHERNET) || defined(USE_OPENTHREAD)
112#ifdef ESPHOME_PROJECT_NAME
115#ifdef USE_DASHBOARD_IMPORT
119 auto &txt_records = service.txt_records;
120 txt_records.init(txt_count);
122 if (!friendly_name_empty) {
123 txt_records.push_back({MDNS_STR(TXT_FRIENDLY_NAME), MDNS_STR(friendly_name.c_str())});
125 txt_records.push_back({MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)});
128 txt_records.push_back({MDNS_STR(TXT_CONFIG_HASH), MDNS_STR(config_hash_buf)});
131 txt_records.push_back({MDNS_STR(TXT_MAC), MDNS_STR(mac_address_buf)});
135 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP8266)});
136#elif defined(USE_ESP32)
138 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP32)});
139#elif defined(USE_RP2040)
141 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_RP2040)});
142#elif defined(USE_LIBRETINY)
143 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(lt_cpu_get_model_name())});
146 txt_records.push_back({MDNS_STR(TXT_BOARD), MDNS_STR(VALUE_BOARD)});
150 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_WIFI)});
151#elif defined(USE_ETHERNET)
153 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_ETHERNET)});
154#elif defined(USE_OPENTHREAD)
156 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_THREAD)});
164 const char *encryption_key = has_psk ? TXT_API_ENCRYPTION : TXT_API_ENCRYPTION_SUPPORTED;
165 txt_records.push_back({MDNS_STR(encryption_key), MDNS_STR(NOISE_ENCRYPTION)});
168#ifdef ESPHOME_PROJECT_NAME
173 txt_records.push_back({MDNS_STR(TXT_PROJECT_NAME), MDNS_STR(VALUE_PROJECT_NAME)});
174 txt_records.push_back({MDNS_STR(TXT_PROJECT_VERSION), MDNS_STR(VALUE_PROJECT_VERSION)});
177#ifdef USE_DASHBOARD_IMPORT
188 prom_service.service_type = MDNS_STR(SERVICE_PROMETHEUS);
189 prom_service.proto = MDNS_STR(SERVICE_TCP);
190 prom_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
199 sendspin_service.service_type = MDNS_STR(SERVICE_SENDSPIN);
200 sendspin_service.proto = MDNS_STR(SERVICE_TCP);
201 sendspin_service.port = []() -> uint16_t {
return USE_SENDSPIN_PORT; };
202 sendspin_service.txt_records = {{MDNS_STR(TXT_SENDSPIN_PATH), MDNS_STR(VALUE_SENDSPIN_PATH)}};
209 web_service.service_type = MDNS_STR(SERVICE_HTTP);
210 web_service.proto = MDNS_STR(SERVICE_TCP);
211 web_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
214#if !defined(USE_API) && !defined(USE_PROMETHEUS) && !defined(USE_SENDSPIN) && !defined(USE_WEBSERVER) && \
215 !defined(USE_MDNS_EXTRA_SERVICES)
222 fallback_service.service_type = MDNS_STR(SERVICE_HTTP);
223 fallback_service.proto = MDNS_STR(SERVICE_TCP);
224 fallback_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
225 fallback_service.txt_records = {{MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)}};