ESPHome
2024.11.0
|
Main Wireguard component class. More...
#include <wireguard.h>
Public Member Functions | |
void | setup () override |
void | loop () override |
void | update () override |
void | dump_config () override |
void | on_shutdown () override |
bool | can_proceed () override |
float | get_setup_priority () const override |
void | set_address (const std::string &address) |
void | set_netmask (const std::string &netmask) |
void | set_private_key (const std::string &key) |
void | set_peer_endpoint (const std::string &endpoint) |
void | set_peer_public_key (const std::string &key) |
void | set_peer_port (uint16_t port) |
void | set_preshared_key (const std::string &key) |
void | add_allowed_ip (const std::string &ip, const std::string &netmask) |
void | set_keepalive (uint16_t seconds) |
void | set_reboot_timeout (uint32_t seconds) |
void | set_srctime (time::RealTimeClock *srctime) |
void | set_status_sensor (binary_sensor::BinarySensor *sensor) |
void | set_enabled_sensor (binary_sensor::BinarySensor *sensor) |
void | set_handshake_sensor (sensor::Sensor *sensor) |
void | set_address_sensor (text_sensor::TextSensor *sensor) |
void | disable_auto_proceed () |
Block the setup step until peer is connected. More... | |
void | enable () |
Enable the WireGuard component. More... | |
void | disable () |
Stop any running connection and disable the WireGuard component. More... | |
void | publish_enabled_state () |
Publish the enabled state if the enabled binary sensor is configured. More... | |
bool | is_enabled () |
Return if the WireGuard component is or is not enabled. More... | |
bool | is_peer_up () const |
time_t | get_latest_handshake () const |
Public Member Functions inherited from esphome::PollingComponent | |
PollingComponent () | |
PollingComponent (uint32_t update_interval) | |
Initialize this polling component with the given update interval in ms. More... | |
virtual void | set_update_interval (uint32_t update_interval) |
Manually set the update interval in ms for this polling object. More... | |
void | call_setup () override |
virtual uint32_t | get_update_interval () const |
Get the update interval in ms of this sensor. More... | |
void | start_poller () |
void | stop_poller () |
Public Member Functions inherited from esphome::Component | |
float | get_actual_setup_priority () const |
void | set_setup_priority (float priority) |
virtual float | get_loop_priority () const |
priority of loop(). More... | |
void | call () |
virtual void | on_safe_shutdown () |
uint32_t | get_component_state () const |
virtual void | mark_failed () |
Mark this component as failed. More... | |
bool | is_failed () const |
bool | is_ready () const |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message="unspecified") |
void | status_set_error (const char *message="unspecified") |
void | status_clear_warning () |
void | status_clear_error () |
void | status_momentary_warning (const std::string &name, uint32_t length=5000) |
void | status_momentary_error (const std::string &name, uint32_t length=5000) |
bool | has_overridden_loop () const |
void | set_component_source (const char *source) |
Set where this component was loaded from for some debug messages. More... | |
const char * | get_component_source () const |
Get the integration where this component was declared as a string. More... | |
Protected Member Functions | |
void | start_connection_ () |
void | stop_connection_ () |
Protected Member Functions inherited from esphome::Component | |
virtual void | call_loop () |
virtual void | call_dump_config () |
void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a unique name. More... | |
void | set_interval (uint32_t interval, std::function< void()> &&f) |
bool | cancel_interval (const std::string &name) |
Cancel an interval function. More... | |
void | set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
Set an retry function with a unique name. More... | |
void | set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
bool | cancel_retry (const std::string &name) |
Cancel a retry function. More... | |
void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a unique name. More... | |
void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
bool | cancel_timeout (const std::string &name) |
Cancel a timeout function. More... | |
void | defer (const std::string &name, std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
void | defer (std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
bool | cancel_defer (const std::string &name) |
Cancel a defer callback using the specified name, name must not be empty. More... | |
Protected Attributes | |
std::string | address_ |
std::string | netmask_ |
std::string | private_key_ |
std::string | peer_endpoint_ |
std::string | peer_public_key_ |
std::string | preshared_key_ |
std::vector< std::tuple< std::string, std::string > > | allowed_ips_ |
uint16_t | peer_port_ |
uint16_t | keepalive_ |
uint32_t | reboot_timeout_ |
time::RealTimeClock * | srctime_ |
binary_sensor::BinarySensor * | status_sensor_ = nullptr |
binary_sensor::BinarySensor * | enabled_sensor_ = nullptr |
sensor::Sensor * | handshake_sensor_ = nullptr |
text_sensor::TextSensor * | address_sensor_ = nullptr |
bool | proceed_allowed_ = true |
Set to false to block the setup step until peer is connected. More... | |
bool | enabled_ = true |
When false the wireguard link will not be established. More... | |
wireguard_config_t | wg_config_ = ESP_WIREGUARD_CONFIG_DEFAULT() |
wireguard_ctx_t | wg_ctx_ = ESP_WIREGUARD_CONTEXT_DEFAULT() |
esp_err_t | wg_initialized_ = ESP_FAIL |
esp_err_t | wg_connected_ = ESP_FAIL |
uint32_t | wg_peer_offline_time_ = 0 |
The last time the remote peer become offline. More... | |
time_t | latest_saved_handshake_ = 0 |
The latest saved handshake. More... | |
Protected Attributes inherited from esphome::PollingComponent | |
uint32_t | update_interval_ |
Protected Attributes inherited from esphome::Component | |
uint32_t | component_state_ {0x0000} |
State of this component. More... | |
float | setup_priority_override_ {NAN} |
const char * | component_source_ {nullptr} |
Main Wireguard component class.
Definition at line 29 of file wireguard.h.
void esphome::wireguard::Wireguard::add_allowed_ip | ( | const std::string & | ip, |
const std::string & | netmask | ||
) |
Definition at line 179 of file wireguard.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 156 of file wireguard.cpp.
void esphome::wireguard::Wireguard::disable | ( | ) |
Stop any running connection and disable the WireGuard component.
Definition at line 208 of file wireguard.cpp.
void esphome::wireguard::Wireguard::disable_auto_proceed | ( | ) |
Block the setup step until peer is connected.
Definition at line 200 of file wireguard.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 131 of file wireguard.cpp.
void esphome::wireguard::Wireguard::enable | ( | ) |
Enable the WireGuard component.
Definition at line 202 of file wireguard.cpp.
time_t esphome::wireguard::Wireguard::get_latest_handshake | ( | ) | const |
Definition at line 163 of file wireguard.cpp.
|
inlineoverridevirtual |
Reimplemented from esphome::Component.
Definition at line 38 of file wireguard.h.
bool esphome::wireguard::Wireguard::is_enabled | ( | ) |
Return if the WireGuard component is or is not enabled.
Definition at line 223 of file wireguard.cpp.
bool esphome::wireguard::Wireguard::is_peer_up | ( | ) | const |
Definition at line 158 of file wireguard.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 64 of file wireguard.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 154 of file wireguard.cpp.
void esphome::wireguard::Wireguard::publish_enabled_state | ( | ) |
Publish the enabled state if the enabled binary sensor is configured.
Definition at line 215 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_address | ( | const std::string & | address | ) |
Definition at line 171 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_address_sensor | ( | text_sensor::TextSensor * | sensor | ) |
Definition at line 197 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_enabled_sensor | ( | binary_sensor::BinarySensor * | sensor | ) |
Definition at line 189 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_handshake_sensor | ( | sensor::Sensor * | sensor | ) |
Definition at line 193 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_keepalive | ( | uint16_t | seconds | ) |
Definition at line 183 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_netmask | ( | const std::string & | netmask | ) |
Definition at line 172 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_peer_endpoint | ( | const std::string & | endpoint | ) |
Definition at line 174 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_peer_port | ( | uint16_t | port | ) |
Definition at line 176 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_peer_public_key | ( | const std::string & | key | ) |
Definition at line 175 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_preshared_key | ( | const std::string & | key | ) |
Definition at line 177 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_private_key | ( | const std::string & | key | ) |
Definition at line 173 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_reboot_timeout | ( | uint32_t | seconds | ) |
Definition at line 184 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_srctime | ( | time::RealTimeClock * | srctime | ) |
Definition at line 185 of file wireguard.cpp.
void esphome::wireguard::Wireguard::set_status_sensor | ( | binary_sensor::BinarySensor * | sensor | ) |
Definition at line 188 of file wireguard.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 29 of file wireguard.cpp.
|
protected |
Definition at line 225 of file wireguard.cpp.
|
protected |
Definition at line 280 of file wireguard.cpp.
|
overridevirtual |
Implements esphome::PollingComponent.
Definition at line 75 of file wireguard.cpp.
|
protected |
Definition at line 86 of file wireguard.h.
|
protected |
Definition at line 111 of file wireguard.h.
|
protected |
Definition at line 93 of file wireguard.h.
|
protected |
When false the wireguard link will not be established.
Definition at line 118 of file wireguard.h.
|
protected |
Definition at line 103 of file wireguard.h.
|
protected |
Definition at line 107 of file wireguard.h.
|
protected |
Definition at line 96 of file wireguard.h.
|
protected |
The latest saved handshake.
This is used to save (and log) the latest completed handshake even after a full refresh of the wireguard keys (for example after a stop/start connection cycle).
Definition at line 135 of file wireguard.h.
|
protected |
Definition at line 87 of file wireguard.h.
|
protected |
Definition at line 89 of file wireguard.h.
|
protected |
Definition at line 95 of file wireguard.h.
|
protected |
Definition at line 90 of file wireguard.h.
|
protected |
Definition at line 91 of file wireguard.h.
|
protected |
Definition at line 88 of file wireguard.h.
|
protected |
Set to false to block the setup step until peer is connected.
Definition at line 115 of file wireguard.h.
|
protected |
Definition at line 97 of file wireguard.h.
|
protected |
Definition at line 99 of file wireguard.h.
|
protected |
Definition at line 102 of file wireguard.h.
|
protected |
Definition at line 120 of file wireguard.h.
|
protected |
Definition at line 124 of file wireguard.h.
|
protected |
Definition at line 121 of file wireguard.h.
|
protected |
Definition at line 123 of file wireguard.h.
|
protected |
The last time the remote peer become offline.
Definition at line 127 of file wireguard.h.