78 size_t services_count = 0;
90#ifdef USE_MDNS_EXTRA_SERVICES
94 if (services_count == 0) {
103 service.service_type = MDNS_STR(SERVICE_ESPHOMELIB);
104 service.proto = MDNS_STR(SERVICE_TCP);
108 bool friendly_name_empty = friendly_name.empty();
111 size_t txt_count = 3;
112 if (!friendly_name_empty) {
115#if defined(USE_ESP8266) || defined(USE_ESP32) || defined(USE_RP2040) || defined(USE_LIBRETINY)
118#if defined(USE_WIFI) || defined(USE_ETHERNET) || defined(USE_OPENTHREAD)
124#ifdef ESPHOME_PROJECT_NAME
127#ifdef USE_DASHBOARD_IMPORT
131 auto &txt_records = service.txt_records;
132 txt_records.reserve(txt_count);
134 if (!friendly_name_empty) {
135 txt_records.push_back({MDNS_STR(TXT_FRIENDLY_NAME), friendly_name});
137 txt_records.push_back({MDNS_STR(TXT_VERSION), ESPHOME_VERSION});
141 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP8266)});
142#elif defined(USE_ESP32)
143 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_ESP32)});
144#elif defined(USE_RP2040)
145 txt_records.push_back({MDNS_STR(TXT_PLATFORM), MDNS_STR(PLATFORM_RP2040)});
146#elif defined(USE_LIBRETINY)
147 txt_records.emplace_back(
MDNSTXTRecord{
"platform", lt_cpu_get_model_name()});
150 txt_records.push_back({MDNS_STR(TXT_BOARD), ESPHOME_BOARD});
153 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_WIFI)});
154#elif defined(USE_ETHERNET)
155 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_ETHERNET)});
156#elif defined(USE_OPENTHREAD)
157 txt_records.push_back({MDNS_STR(TXT_NETWORK), MDNS_STR(NETWORK_THREAD)});
163 txt_records.push_back({MDNS_STR(TXT_API_ENCRYPTION), MDNS_STR(NOISE_ENCRYPTION)});
165 txt_records.push_back({MDNS_STR(TXT_API_ENCRYPTION_SUPPORTED), MDNS_STR(NOISE_ENCRYPTION)});
169#ifdef ESPHOME_PROJECT_NAME
170 txt_records.push_back({MDNS_STR(TXT_PROJECT_NAME), ESPHOME_PROJECT_NAME});
171 txt_records.push_back({MDNS_STR(TXT_PROJECT_VERSION), ESPHOME_PROJECT_VERSION});
174#ifdef USE_DASHBOARD_IMPORT
182 auto &prom_service = this->
services_.back();
183 prom_service.service_type = MDNS_STR(SERVICE_PROMETHEUS);
184 prom_service.proto = MDNS_STR(SERVICE_TCP);
185 prom_service.port = USE_WEBSERVER_PORT;
190 auto &web_service = this->
services_.back();
191 web_service.service_type = MDNS_STR(SERVICE_HTTP);
192 web_service.proto = MDNS_STR(SERVICE_TCP);
193 web_service.port = USE_WEBSERVER_PORT;
196#ifdef USE_MDNS_EXTRA_SERVICES
197 this->
services_.insert(this->
services_.end(), this->services_extra_.begin(), this->services_extra_.end());
200#if !defined(USE_API) && !defined(USE_PROMETHEUS) && !defined(USE_WEBSERVER) && !defined(USE_MDNS_EXTRA_SERVICES)
204 auto &fallback_service = this->
services_.back();
205 fallback_service.service_type =
"_http";
206 fallback_service.proto =
"_tcp";
207 fallback_service.port = USE_WEBSERVER_PORT;
208 fallback_service.txt_records.emplace_back(
MDNSTXTRecord{
"version", ESPHOME_VERSION});