mirror of
https://github.com/esphome/esphome.git
synced 2026-02-08 08:41:59 +00:00
33 lines
989 B
C++
33 lines
989 B
C++
#include "network_component.h"
|
|
#ifdef USE_ESP32
|
|
#include "esphome/core/log.h"
|
|
#include "esp_event.h"
|
|
#include "esp_netif.h"
|
|
|
|
namespace esphome::network {
|
|
|
|
static const char *const TAG = "network";
|
|
|
|
void NetworkComponent::setup() {
|
|
// Initialize network stack early - required before web_server can bind.
|
|
// This must run before WiFi/Ethernet setup so web_server can register
|
|
// its handlers before captive_portal.
|
|
esp_err_t err = esp_netif_init();
|
|
if (err != ESP_OK) {
|
|
ESP_LOGE(TAG, "esp_netif_init failed: %s", esp_err_to_name(err));
|
|
}
|
|
err = esp_event_loop_create_default();
|
|
if (err != ESP_OK && err != ESP_ERR_INVALID_STATE) {
|
|
// ESP_ERR_INVALID_STATE means it was already created
|
|
ESP_LOGE(TAG, "esp_event_loop_create_default failed: %s", esp_err_to_name(err));
|
|
}
|
|
}
|
|
|
|
float NetworkComponent::get_setup_priority() const {
|
|
// Run before web_server (WIFI + 0.5) and WiFi (WIFI)
|
|
return setup_priority::WIFI + 2.0f;
|
|
}
|
|
|
|
} // namespace esphome::network
|
|
#endif
|