Co-authored-by: kbx81 <kbx81x@gmail.com> Co-authored-by: J. Nick Koston <nick@koston.org> Co-authored-by: J. Nick Koston <nick+github@koston.org>
34 lines
998 B
C++
34 lines
998 B
C++
#include "network_component.h"
|
|
|
|
#include "esphome/core/defines.h"
|
|
#if defined(USE_NETWORK) && defined(USE_ESP32)
|
|
#include "esphome/core/log.h"
|
|
#include "esp_err.h"
|
|
#include "esp_netif.h"
|
|
#include "esp_event.h"
|
|
namespace esphome::network {
|
|
|
|
static const char *const TAG = "network";
|
|
|
|
void NetworkComponent::setup() {
|
|
// Initialize ESP-IDF network interfaces and ensure the default event loop exists
|
|
esp_err_t err;
|
|
err = esp_netif_init();
|
|
if (err != ESP_OK) {
|
|
ESP_LOGE(TAG, "esp_netif_init failed: (%d) %s", err, esp_err_to_name(err));
|
|
this->mark_failed();
|
|
return;
|
|
}
|
|
err = esp_event_loop_create_default();
|
|
// ESP_ERR_INVALID_STATE is returned if the default loop already exists,
|
|
// which is fine since we just want to make sure it exists
|
|
if (err != ESP_OK && err != ESP_ERR_INVALID_STATE) {
|
|
ESP_LOGE(TAG, "esp_event_loop_create_default failed: (%d) %s", err, esp_err_to_name(err));
|
|
this->mark_failed();
|
|
return;
|
|
}
|
|
}
|
|
|
|
} // namespace esphome::network
|
|
#endif
|