ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
wifi_signal_sensor.h
Go to the documentation of this file.
1#pragma once
2
8#ifdef USE_WIFI
9#include <span>
10namespace esphome::wifi_signal {
11
12#ifdef USE_WIFI_LISTENERS
13class WiFiSignalSensor : public sensor::Sensor, public PollingComponent, public wifi::WiFiConnectStateListener {
14#else
15class WiFiSignalSensor : public sensor::Sensor, public PollingComponent {
16#endif
17 public:
18#ifdef USE_WIFI_LISTENERS
19 void setup() override { wifi::global_wifi_component->add_connect_state_listener(this); }
20#endif
21 void update() override {
22 int8_t rssi = wifi::global_wifi_component->wifi_rssi();
23 if (rssi != wifi::WIFI_RSSI_DISCONNECTED) {
24 this->publish_state(rssi);
25 }
26 }
27 void dump_config() override;
28
29 float get_setup_priority() const override { return setup_priority::AFTER_WIFI; }
30
31#ifdef USE_WIFI_LISTENERS
32 // WiFiConnectStateListener interface - update RSSI immediately on connect
33 void on_wifi_connect_state(StringRef ssid, std::span<const uint8_t, 6> bssid) override { this->update(); }
34#endif
35};
36
37} // namespace esphome::wifi_signal
38#endif
void setup()