1
0
mirror of https://github.com/esphome/esphome.git synced 2025-11-16 06:45:48 +00:00

add wifi.on_connect and wifi.on_disconnect triggers (#3639)

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
Charles Johnson
2023-11-07 05:17:13 +00:00
committed by GitHub
parent 888c298d7e
commit 31fec2d692
4 changed files with 44 additions and 5 deletions

View File

@@ -1,18 +1,18 @@
#pragma once
#include "esphome/components/network/ip_address.h"
#include "esphome/core/automation.h"
#include "esphome/core/component.h"
#include "esphome/core/defines.h"
#include "esphome/core/automation.h"
#include "esphome/core/helpers.h"
#include "esphome/components/network/ip_address.h"
#include <string>
#include <vector>
#ifdef USE_ESP32_FRAMEWORK_ARDUINO
#include <esp_wifi.h>
#include <WiFiType.h>
#include <WiFi.h>
#include <WiFiType.h>
#include <esp_wifi.h>
#endif
#ifdef USE_LIBRETINY
@@ -294,6 +294,9 @@ class WiFiComponent : public Component {
void set_enable_on_boot(bool enable_on_boot) { this->enable_on_boot_ = enable_on_boot; }
Trigger<> *get_connect_trigger() const { return this->connect_trigger_; };
Trigger<> *get_disconnect_trigger() const { return this->disconnect_trigger_; };
protected:
static std::string format_mac_addr(const uint8_t mac[6]);
void setup_ap_config_();
@@ -354,6 +357,7 @@ class WiFiComponent : public Component {
bool has_ap_{false};
WiFiAP ap_;
WiFiComponentState state_{WIFI_COMPONENT_STATE_OFF};
bool handled_connected_state_{false};
uint32_t action_started_;
uint8_t num_retried_{0};
uint32_t last_connected_{0};
@@ -373,6 +377,9 @@ class WiFiComponent : public Component {
bool rrm_{false};
#endif
bool enable_on_boot_;
Trigger<> *connect_trigger_{new Trigger<>()};
Trigger<> *disconnect_trigger_{new Trigger<>()};
};
extern WiFiComponent *global_wifi_component; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)