12#include "esp_eth_mac.h"
15#include "esp_idf_version.h"
20#ifdef USE_ETHERNET_IP_STATE_LISTENERS
74 void setup()
override;
81#ifdef USE_ETHERNET_SPI
89#ifdef USE_ETHERNET_SPI_POLLING_SUPPORT
102#ifdef USE_ETHERNET_MANUAL_IP
118#ifdef USE_ETHERNET_IP_STATE_LISTENERS
128#ifdef USE_ETHERNET_IP_STATE_LISTENERS
136#ifdef USE_ETHERNET_KSZ8081
143#ifdef USE_ETHERNET_SPI
152#ifdef USE_ETHERNET_SPI_POLLING_SUPPORT
167#ifdef USE_ETHERNET_MANUAL_IP
189#ifdef USE_ETHERNET_IP_STATE_LISTENERS
196 const char *use_address_{
""};
202#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 4, 2)
Minimal static vector - saves memory by avoiding std::vector overhead.
void set_clk_pin(uint8_t clk_pin)
std::vector< PHYRegister > phy_registers_
void get_eth_mac_address_raw(uint8_t *mac)
esp_eth_handle_t eth_handle_
static void got_ip_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
void set_clock_speed(int clock_speed)
void set_polling_interval(uint32_t polling_interval)
float get_setup_priority() const override
eth_duplex_t get_duplex_mode()
void notify_ip_state_listeners_()
void set_manual_ip(const ManualIP &manual_ip)
network::IPAddresses get_ip_addresses()
void write_phy_register_(esp_eth_mac_t *mac, PHYRegister register_data)
Set arbitratry PHY registers from config.
void dump_connect_params_()
static void got_ip6_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
void log_error_and_mark_failed_(esp_err_t err, const char *message)
EthernetComponentState state_
void set_phy_addr(uint8_t phy_addr)
void add_ip_state_listener(EthernetIPStateListener *listener)
network::IPAddress get_dns_address(uint8_t num)
void set_reset_pin(uint8_t reset_pin)
void set_type(EthernetType type)
void add_phy_register(PHYRegister register_value)
void ksz8081_set_clock_reference_(esp_eth_mac_t *mac)
Set RMII Reference Clock Select bit for KSZ8081.
optional< ManualIP > manual_ip_
eth_speed_t get_link_speed()
StaticVector< EthernetIPStateListener *, ESPHOME_ETHERNET_IP_STATE_LISTENERS > ip_state_listeners_
void set_fixed_mac(const std::array< uint8_t, 6 > &mac)
void dump_config() override
emac_rmii_clock_mode_t clk_mode_
void set_interrupt_pin(uint8_t interrupt_pin)
static void eth_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data)
const char * get_use_address() const
void set_miso_pin(uint8_t miso_pin)
optional< std::array< uint8_t, 6 > > fixed_mac_
void set_cs_pin(uint8_t cs_pin)
std::string get_eth_mac_address_pretty()
void set_mdc_pin(uint8_t mdc_pin)
void set_power_pin(int power_pin)
void on_powerdown() override
void set_use_address(const char *use_address)
uint32_t polling_interval_
void set_mdio_pin(uint8_t mdio_pin)
void set_mosi_pin(uint8_t mosi_pin)
void set_clk_mode(emac_rmii_clock_mode_t clk_mode)
const char * get_eth_mac_address_pretty_into_buffer(std::span< char, MAC_ADDRESS_PRETTY_BUFFER_SIZE > buf)
Listener interface for Ethernet IP state changes.
virtual void on_ip_state(const network::IPAddresses &ips, const network::IPAddress &dns1, const network::IPAddress &dns2)=0
esp_eth_phy_t * esp_eth_phy_new_jl1101(const eth_phy_config_t *config)
EthernetComponent * global_eth_component
@ ETHERNET_TYPE_KSZ8081RNA
std::array< IPAddress, 5 > IPAddresses
Providing packet encoding functions for exchanging data with a remote host.
network::IPAddress subnet
network::IPAddress static_ip
network::IPAddress gateway
network::IPAddress dns1
The first DNS server. 0.0.0.0 for default.
network::IPAddress dns2
The second DNS server. 0.0.0.0 for default.