129 const char *mac_address_buf,
const char *config_hash_buf) {
133#ifdef USE_MDNS_DEVICE_INFO_TXT
149 service.service_type = MDNS_STR(SERVICE_ESPHOMELIB);
150 service.proto = MDNS_STR(SERVICE_TCP);
154 bool friendly_name_empty = friendly_name.
empty();
157 size_t txt_count = 4;
158 if (!friendly_name_empty) {
161#if defined(USE_ESP8266) || defined(USE_ESP32) || defined(USE_RP2) || defined(USE_LIBRETINY) || defined(USE_NRF52)
164#if defined(USE_WIFI) || defined(USE_ETHERNET) || defined(USE_OPENTHREAD)
170#ifndef USE_API_NOISE_PSK_FROM_YAML
176#ifdef USE_OTA_SIGNED_VERIFICATION
179#ifdef ESPHOME_PROJECT_NAME
182#ifdef USE_DASHBOARD_IMPORT
186 auto &txt_records = service.txt_records;
187 txt_records.init(txt_count);
189 if (!friendly_name_empty) {
190 txt_records.push_back({MDNS_STR(TXT_FRIENDLY_NAME), MDNS_STR(friendly_name.c_str())});
192 txt_records.push_back({MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)});
195 txt_records.push_back({MDNS_STR(TXT_CONFIG_HASH), MDNS_STR(config_hash_buf)});
198 txt_records.push_back({MDNS_STR(TXT_MAC), MDNS_STR(mac_address_buf)});
202 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP8266)});
203#elif defined(USE_ESP32)
205 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP32)});
206#elif defined(USE_RP2)
208 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_RP2)});
209#elif defined(USE_LIBRETINY)
210 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(lt_cpu_get_model_name())});
211#elif defined(USE_NRF52)
213 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_NRF52)});
216 txt_records.push_back({MDNS_STR(TXT_BOARD), MDNS_STR(VALUE_BOARD)});
218#ifdef USE_MDNS_DYNAMIC_NETWORK_TXT
220 this->
network_txt_ = network !=
nullptr ? network : NETWORK_WIFI;
221 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(this->
network_txt_)});
222#ifdef USE_MDNS_STORE_SERVICES
226#elif defined(USE_WIFI)
228 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_WIFI)});
229#elif defined(USE_ETHERNET)
231 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_ETHERNET)});
232#elif defined(USE_OPENTHREAD)
234 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_THREAD)});
241 const char *encryption_key = api_has_psk ? TXT_API_ENCRYPTION : TXT_API_ENCRYPTION_SUPPORTED;
242 txt_records.push_back({MDNS_STR(encryption_key), MDNS_STR(NOISE_ENCRYPTION)});
243#ifndef USE_API_NOISE_PSK_FROM_YAML
250 txt_records.push_back({MDNS_STR(TXT_API_PROVISIONING), MDNS_STR(VALUE_ZERO_PSK)});
255#ifdef USE_OTA_SIGNED_VERIFICATION
259 txt_records.push_back({MDNS_STR(TXT_OTA_SIGNED), MDNS_STR(VALUE_TRUE)});
262#ifdef ESPHOME_PROJECT_NAME
267 txt_records.push_back({MDNS_STR(TXT_PROJECT_NAME), MDNS_STR(VALUE_PROJECT_NAME)});
268 txt_records.push_back({MDNS_STR(TXT_PROJECT_VERSION), MDNS_STR(VALUE_PROJECT_VERSION)});
271#ifdef USE_DASHBOARD_IMPORT
282 prom_service.service_type = MDNS_STR(SERVICE_PROMETHEUS);
283 prom_service.proto = MDNS_STR(SERVICE_TCP);
284 prom_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
293 sendspin_service.service_type = MDNS_STR(SERVICE_SENDSPIN);
294 sendspin_service.proto = MDNS_STR(SERVICE_TCP);
295 sendspin_service.port = []() -> uint16_t {
return USE_SENDSPIN_PORT; };
296 sendspin_service.txt_records = {{MDNS_STR(TXT_SENDSPIN_PATH), MDNS_STR(VALUE_SENDSPIN_PATH)}};
297#ifdef USE_MDNS_SUPPORTS_ENABLE_DISABLE
299 sendspin_service.enabled =
false;
307 web_service.service_type = MDNS_STR(SERVICE_HTTP);
308 web_service.proto = MDNS_STR(SERVICE_TCP);
309 web_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
313 web_service.txt_records = {{MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)},
314 {MDNS_STR(TXT_MAC), MDNS_STR(mac_address_buf)},
315 {MDNS_STR(TXT_CONFIG_HASH), MDNS_STR(config_hash_buf)}};
319#if !defined(USE_API) && !defined(USE_PROMETHEUS) && !defined(USE_SENDSPIN) && !defined(USE_WEBSERVER) && \
320 !defined(USE_MDNS_EXTRA_SERVICES)
326 fallback_service.service_type = MDNS_STR(SERVICE_HTTP);
327 fallback_service.proto = MDNS_STR(SERVICE_TCP);
328 fallback_service.port = []() -> uint16_t {
return USE_WEBSERVER_PORT; };
329 fallback_service.txt_records = {{MDNS_STR(TXT_VERSION), MDNS_STR(VALUE_VERSION)},
330 {MDNS_STR(TXT_MAC), MDNS_STR(mac_address_buf)},
331 {MDNS_STR(TXT_CONFIG_HASH), MDNS_STR(config_hash_buf)}};