add mac address to wifi info (#1030)

* add mac address to wifi info

* add test

* lint
This commit is contained in:
Guillermo Ruffino 2020-04-24 20:58:32 -03:00 committed by GitHub
parent 8040e3cf95
commit 6123cb7c69
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 1 deletions

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -1644,3 +1644,5 @@ text_sensor:
name: "SSID" name: "SSID"
bssid: bssid:
name: "BSSID" name: "BSSID"
mac_address:
name: "Mac Address"