2#if defined(USE_RP2) && defined(USE_MDNS)
13#pragma push_macro("IRAM_ATTR")
15#include <ESP8266mDNS.h>
16#pragma pop_macro("IRAM_ATTR")
20static void register_rp2(MDNSComponent *, StaticVector<MDNSService, MDNS_SERVICE_COUNT> &services) {
23 for (
const auto &service : services) {
25 auto *proto = MDNS_STR_ARG(service.proto);
26 while (*proto ==
'_') {
29 auto *service_type = MDNS_STR_ARG(service.service_type);
30 while (*service_type ==
'_') {
33 uint16_t port = service.port.value();
34 MDNS.addService(service_type, proto, port);
35 for (
const auto &record : service.txt_records) {
36 MDNS.addServiceTxt(service_type, proto, MDNS_STR_ARG(record.key), MDNS_STR_ARG(record.value));
41#ifdef USE_MDNS_EVENT_DRIVEN_POLLING
54#ifdef USE_MDNS_WIFI_LISTENER
60 if (ips[0].is_set()) {
66#ifdef USE_MDNS_ETHERNET_LISTENER
70 if (ips[0].is_set()) {
71 this->
on_ip_state(ips, network::IPAddress{}, network::IPAddress{});
77#ifdef USE_MDNS_EVENT_DRIVEN_POLLING
79 const network::IPAddress &) {
81 if (!ips[0].is_set()) {
88 MDNS.notifyAPChange();
const StringRef & get_name() const
Get the name of this Application set by pre_setup().
bool cancel_interval(const char *name)
Cancel an interval function.
void set_timeout(const char *name, uint32_t timeout, std::function< void()> &&f)
Set a timeout function with a const char* name.
void set_interval(const char *name, uint32_t interval, std::function< void()> &&f)
Set an interval function with a const char* name.
constexpr const char * c_str() const
network::IPAddresses get_ip_addresses()
void add_ip_state_listener(EthernetIPStateListener *listener)
void on_shutdown() override
static constexpr uint32_t MDNS_POLL_STOP_ID
void start_polling_window_()
Arm a fresh MDNS_POLL_WINDOW_MS polling window.
void on_ip_state(const network::IPAddresses &ips, const network::IPAddress &dns1, const network::IPAddress &dns2) override
static constexpr uint32_t MDNS_POLL_WINDOW_MS
void setup_buffers_and_register_(PlatformRegisterFn platform_register)
static constexpr uint32_t MDNS_POLL_ID
static constexpr uint32_t MDNS_UPDATE_INTERVAL_MS
void add_ip_state_listener(WiFiIPStateListener *listener)
Add a listener for IP state changes.
network::IPAddresses wifi_sta_ip_addresses()
EthernetComponent * global_eth_component
std::array< IPAddress, 5 > IPAddresses
ESPHOME_ALWAYS_INLINE bool is_connected()
Return whether the node is connected to the network (through wifi, eth, ...)
WiFiComponent * global_wifi_component
void HOT delay(uint32_t ms)
Application App
Global storage of Application pointer - only one Application can exist.