11static const char *
const TAG =
"wifi_info";
13#ifdef USE_WIFI_IP_STATE_LISTENERS
25 char buf[network::IP_ADDRESS_BUFFER_SIZE];
29 for (
const auto &ip : ips) {
51 char buf[network::IP_ADDRESS_BUFFER_SIZE * 2];
53 size_t len1 = strlen(buf);
55 dns2.
str_to(buf + len1 + 1);
61#ifdef USE_WIFI_SCAN_RESULTS_LISTENERS
72static char *format_scan_entry(
char *buf,
const char *ssid,
size_t ssid_len, int8_t rssi) {
73 memcpy(buf, ssid, ssid_len);
85 char buf[MAX_STATE_LEN + 1];
87 const char *
end = buf + MAX_STATE_LEN;
89 for (
const auto &scan : results) {
90 if (scan.get_is_hidden())
92 const std::string &ssid = scan.get_ssid();
94 if (ptr + ssid.size() + 9 >
end)
96 ptr = format_scan_entry(ptr, ssid.c_str(), ssid.size(), scan.get_rssi());
105#ifdef USE_WIFI_CONNECT_STATE_LISTENERS
128 char buf[18] =
"unknown";
137#ifdef USE_WIFI_POWER_SAVE_LISTENERS
149#define MODE_STR(s) static const char MODE_##s[] PROGMEM = #s
155 const char *mode_str_p;
158 mode_str_p = MODE_NONE;
161 mode_str_p = MODE_LIGHT;
164 mode_str_p = MODE_HIGH;
167 mode_str_p = MODE_UNKNOWN;
172 strncpy_P(mode_str, mode_str_p,
sizeof(mode_str));
173 mode_str[
sizeof(mode_str) - 1] =
'\0';
176 const char *mode_str;
188 mode_str =
"UNKNOWN";
BedjetMode mode
BedJet operating mode.
StringRef is a reference to a string owned by something else.
constexpr const char * c_str() const
constexpr size_type size() const
void publish_state(const std::string &state)
void add_connect_state_listener(WiFiConnectStateListener *listener)
Add a listener for WiFi connection state changes.
void add_power_save_listener(WiFiPowerSaveListener *listener)
Add a listener for WiFi power save mode changes.
void add_ip_state_listener(WiFiIPStateListener *listener)
Add a listener for IP state changes.
void add_scan_results_listener(WiFiScanResultsListener *listener)
Add a listener for WiFi scan results.
void dump_config() override
void on_wifi_connect_state(StringRef ssid, std::span< const uint8_t, 6 > bssid) override
void on_ip_state(const network::IPAddresses &ips, const network::IPAddress &dns1, const network::IPAddress &dns2) override
void dump_config() override
void dump_config() override
void on_ip_state(const network::IPAddresses &ips, const network::IPAddress &dns1, const network::IPAddress &dns2) override
std::array< text_sensor::TextSensor *, 5 > ip_sensors_
void dump_config() override
void dump_config() override
void on_wifi_power_save(wifi::WiFiPowerSaveMode mode) override
void on_wifi_connect_state(StringRef ssid, std::span< const uint8_t, 6 > bssid) override
void dump_config() override
void on_wifi_scan_results(const wifi::wifi_scan_vector_t< wifi::WiFiScanResult > &results) override
void dump_config() override
std::array< IPAddress, 5 > IPAddresses
std::vector< T > wifi_scan_vector_t
WiFiComponent * global_wifi_component
bool mac_address_is_valid(const uint8_t *mac)
Check if the MAC address is not all zeros or all ones.
char * int8_to_str(char *buf, int8_t val)
Write int8 value to buffer without modulo operations.
char * format_mac_addr_upper(const uint8_t *mac, char *output)
Format MAC address as XX:XX:XX:XX:XX:XX (uppercase, colon separators)
char * str_to(char *buf) const
Write IP address to buffer. Buffer must be at least IP_ADDRESS_BUFFER_SIZE bytes.