mirror of
https://github.com/esphome/esphome.git
synced 2024-11-29 02:04:13 +01:00
add mac address to wifi info (#1030)
* add mac address to wifi info * add test * lint
This commit is contained in:
parent
8040e3cf95
commit
6123cb7c69
4 changed files with 16 additions and 1 deletions
|
@ -1,7 +1,7 @@
|
||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.components import text_sensor
|
from esphome.components import text_sensor
|
||||||
from esphome.const import CONF_BSSID, CONF_ID, CONF_IP_ADDRESS, CONF_SSID
|
from esphome.const import CONF_BSSID, CONF_ID, CONF_IP_ADDRESS, CONF_SSID, CONF_MAC_ADDRESS
|
||||||
from esphome.core import coroutine
|
from esphome.core import coroutine
|
||||||
|
|
||||||
DEPENDENCIES = ['wifi']
|
DEPENDENCIES = ['wifi']
|
||||||
|
@ -10,6 +10,7 @@ wifi_info_ns = cg.esphome_ns.namespace('wifi_info')
|
||||||
IPAddressWiFiInfo = wifi_info_ns.class_('IPAddressWiFiInfo', text_sensor.TextSensor, cg.Component)
|
IPAddressWiFiInfo = wifi_info_ns.class_('IPAddressWiFiInfo', text_sensor.TextSensor, cg.Component)
|
||||||
SSIDWiFiInfo = wifi_info_ns.class_('SSIDWiFiInfo', text_sensor.TextSensor, cg.Component)
|
SSIDWiFiInfo = wifi_info_ns.class_('SSIDWiFiInfo', text_sensor.TextSensor, cg.Component)
|
||||||
BSSIDWiFiInfo = wifi_info_ns.class_('BSSIDWiFiInfo', text_sensor.TextSensor, cg.Component)
|
BSSIDWiFiInfo = wifi_info_ns.class_('BSSIDWiFiInfo', text_sensor.TextSensor, cg.Component)
|
||||||
|
MacAddressWifiInfo = wifi_info_ns.class_('MacAddressWifiInfo', text_sensor.TextSensor, cg.Component)
|
||||||
|
|
||||||
CONFIG_SCHEMA = cv.Schema({
|
CONFIG_SCHEMA = cv.Schema({
|
||||||
cv.Optional(CONF_IP_ADDRESS): text_sensor.TEXT_SENSOR_SCHEMA.extend({
|
cv.Optional(CONF_IP_ADDRESS): text_sensor.TEXT_SENSOR_SCHEMA.extend({
|
||||||
|
@ -21,6 +22,9 @@ CONFIG_SCHEMA = cv.Schema({
|
||||||
cv.Optional(CONF_BSSID): text_sensor.TEXT_SENSOR_SCHEMA.extend({
|
cv.Optional(CONF_BSSID): text_sensor.TEXT_SENSOR_SCHEMA.extend({
|
||||||
cv.GenerateID(): cv.declare_id(BSSIDWiFiInfo),
|
cv.GenerateID(): cv.declare_id(BSSIDWiFiInfo),
|
||||||
}),
|
}),
|
||||||
|
cv.Optional(CONF_MAC_ADDRESS): text_sensor.TEXT_SENSOR_SCHEMA.extend({
|
||||||
|
cv.GenerateID(): cv.declare_id(MacAddressWifiInfo),
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,3 +41,4 @@ def to_code(config):
|
||||||
yield setup_conf(config, CONF_IP_ADDRESS)
|
yield setup_conf(config, CONF_IP_ADDRESS)
|
||||||
yield setup_conf(config, CONF_SSID)
|
yield setup_conf(config, CONF_SSID)
|
||||||
yield setup_conf(config, CONF_BSSID)
|
yield setup_conf(config, CONF_BSSID)
|
||||||
|
yield setup_conf(config, CONF_MAC_ADDRESS)
|
||||||
|
|
|
@ -9,6 +9,7 @@ static const char *TAG = "wifi_info";
|
||||||
void IPAddressWiFiInfo::dump_config() { LOG_TEXT_SENSOR("", "WifiInfo IPAddress", this); }
|
void IPAddressWiFiInfo::dump_config() { LOG_TEXT_SENSOR("", "WifiInfo IPAddress", this); }
|
||||||
void SSIDWiFiInfo::dump_config() { LOG_TEXT_SENSOR("", "WifiInfo SSID", this); }
|
void SSIDWiFiInfo::dump_config() { LOG_TEXT_SENSOR("", "WifiInfo SSID", this); }
|
||||||
void BSSIDWiFiInfo::dump_config() { LOG_TEXT_SENSOR("", "WifiInfo BSSID", this); }
|
void BSSIDWiFiInfo::dump_config() { LOG_TEXT_SENSOR("", "WifiInfo BSSID", this); }
|
||||||
|
void MacAddressWifiInfo::dump_config() { LOG_TEXT_SENSOR("", "WifiInfo Mac Address", this); }
|
||||||
|
|
||||||
} // namespace wifi_info
|
} // namespace wifi_info
|
||||||
} // namespace esphome
|
} // namespace esphome
|
||||||
|
|
|
@ -60,5 +60,12 @@ class BSSIDWiFiInfo : public Component, public text_sensor::TextSensor {
|
||||||
wifi::bssid_t last_bssid_;
|
wifi::bssid_t last_bssid_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MacAddressWifiInfo : public Component, public text_sensor::TextSensor {
|
||||||
|
public:
|
||||||
|
void setup() override { this->publish_state(get_mac_address_pretty()); }
|
||||||
|
std::string unique_id() override { return get_mac_address() + "-wifiinfo-macadr"; }
|
||||||
|
void dump_config() override;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace wifi_info
|
} // namespace wifi_info
|
||||||
} // namespace esphome
|
} // namespace esphome
|
||||||
|
|
|
@ -1644,3 +1644,5 @@ text_sensor:
|
||||||
name: "SSID"
|
name: "SSID"
|
||||||
bssid:
|
bssid:
|
||||||
name: "BSSID"
|
name: "BSSID"
|
||||||
|
mac_address:
|
||||||
|
name: "Mac Address"
|
||||||
|
|
Loading…
Reference in a new issue