74 const char *mac_address_buf,
const char *config_hash_buf) {
78#ifdef USE_MDNS_DEVICE_INFO_TXT
94 service.service_type = MDNS_STR(SERVICE_ESPHOMELIB);
95 service.proto = MDNS_STR(SERVICE_TCP);
99 bool friendly_name_empty = friendly_name.
empty();
102 size_t txt_count = 4;
103 if (!friendly_name_empty) {
106#if defined(USE_ESP8266) || defined(USE_ESP32) || defined(USE_RP2) || defined(USE_LIBRETINY) || defined(USE_NRF52)
109#if defined(USE_WIFI) || defined(USE_ETHERNET) || defined(USE_OPENTHREAD)
115#ifndef USE_API_NOISE_PSK_FROM_YAML
121#ifdef ESPHOME_PROJECT_NAME
124#ifdef USE_DASHBOARD_IMPORT
128 auto &txt_records = service.txt_records;
129 txt_records.init(txt_count);
131 if (!friendly_name_empty) {
132 txt_records.push_back({MDNS_STR(TXT_FRIENDLY_NAME), MDNS_STR(friendly_name.c_str())});
134 txt_records.push_back({MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)});
137 txt_records.push_back({MDNS_STR(TXT_CONFIG_HASH), MDNS_STR(config_hash_buf)});
140 txt_records.push_back({MDNS_STR(TXT_MAC), MDNS_STR(mac_address_buf)});
144 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP8266)});
145#elif defined(USE_ESP32)
147 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP32)});
148#elif defined(USE_RP2)
150 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_RP2)});
151#elif defined(USE_LIBRETINY)
152 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(lt_cpu_get_model_name())});
153#elif defined(USE_NRF52)
155 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_NRF52)});
158 txt_records.push_back({MDNS_STR(TXT_BOARD), MDNS_STR(VALUE_BOARD)});
162 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_WIFI)});
163#elif defined(USE_ETHERNET)
165 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_ETHERNET)});
166#elif defined(USE_OPENTHREAD)
168 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_THREAD)});
175 const char *encryption_key = api_has_psk ? TXT_API_ENCRYPTION : TXT_API_ENCRYPTION_SUPPORTED;
176 txt_records.push_back({MDNS_STR(encryption_key), MDNS_STR(NOISE_ENCRYPTION)});
177#ifndef USE_API_NOISE_PSK_FROM_YAML
184 txt_records.push_back({MDNS_STR(TXT_API_PROVISIONING), MDNS_STR(VALUE_ZERO_PSK)});
189#ifdef ESPHOME_PROJECT_NAME
194 txt_records.push_back({MDNS_STR(TXT_PROJECT_NAME), MDNS_STR(VALUE_PROJECT_NAME)});
195 txt_records.push_back({MDNS_STR(TXT_PROJECT_VERSION), MDNS_STR(VALUE_PROJECT_VERSION)});
198#ifdef USE_DASHBOARD_IMPORT
209 prom_service.service_type = MDNS_STR(SERVICE_PROMETHEUS);
210 prom_service.proto = MDNS_STR(SERVICE_TCP);
211 prom_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
220 sendspin_service.service_type = MDNS_STR(SERVICE_SENDSPIN);
221 sendspin_service.proto = MDNS_STR(SERVICE_TCP);
222 sendspin_service.port = []() -> uint16_t {
return USE_SENDSPIN_PORT; };
223 sendspin_service.txt_records = {{MDNS_STR(TXT_SENDSPIN_PATH), MDNS_STR(VALUE_SENDSPIN_PATH)}};
230 web_service.service_type = MDNS_STR(SERVICE_HTTP);
231 web_service.proto = MDNS_STR(SERVICE_TCP);
232 web_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
236 web_service.txt_records = {{MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)},
237 {MDNS_STR(TXT_MAC), MDNS_STR(mac_address_buf)},
238 {MDNS_STR(TXT_CONFIG_HASH), MDNS_STR(config_hash_buf)}};
242#if !defined(USE_API) && !defined(USE_PROMETHEUS) && !defined(USE_SENDSPIN) && !defined(USE_WEBSERVER) && \
243 !defined(USE_MDNS_EXTRA_SERVICES)
249 fallback_service.service_type = MDNS_STR(SERVICE_HTTP);
250 fallback_service.proto = MDNS_STR(SERVICE_TCP);
251 fallback_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
252 fallback_service.txt_records = {{MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)},
253 {MDNS_STR(TXT_MAC), MDNS_STR(mac_address_buf)},
254 {MDNS_STR(TXT_CONFIG_HASH), MDNS_STR(config_hash_buf)}};