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