mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-29 22:24:26 +00:00 
			
		
		
		
	Add Wifi info text sensor (#473)
* Add WiFi Info text sensor * Lint * Fix register * Add newline at end of file
This commit is contained in:
		| @@ -56,9 +56,10 @@ def setup_text_sensor(text_sensor_obj, config): | ||||
|  | ||||
|  | ||||
| def register_text_sensor(var, config): | ||||
|     text_sensor_var = Pvariable(config[CONF_ID], var, has_side_effects=True) | ||||
|     add(App.register_text_sensor(text_sensor_var)) | ||||
|     CORE.add_job(setup_text_sensor_core_, text_sensor_var, config) | ||||
|     if not CORE.has_id(config[CONF_ID]): | ||||
|         var = Pvariable(config[CONF_ID], var, has_side_effects=True) | ||||
|     add(App.register_text_sensor(var)) | ||||
|     CORE.add_job(setup_text_sensor_core_, var, config) | ||||
|  | ||||
|  | ||||
| BUILD_FLAGS = '-DUSE_TEXT_SENSOR' | ||||
|   | ||||
							
								
								
									
										45
									
								
								esphome/components/text_sensor/wifi_info.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								esphome/components/text_sensor/wifi_info.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| import voluptuous as vol | ||||
|  | ||||
| from esphome.components import text_sensor | ||||
| import esphome.config_validation as cv | ||||
| from esphome.const import CONF_BSSID, CONF_ID, CONF_IP_ADDRESS, CONF_NAME, CONF_SSID | ||||
| from esphome.cpp_generator import Pvariable | ||||
| from esphome.cpp_types import App, Component | ||||
|  | ||||
| DEPENDENCIES = ['wifi'] | ||||
|  | ||||
| IPAddressWiFiInfo = text_sensor.text_sensor_ns.class_('IPAddressWiFiInfo', | ||||
|                                                       text_sensor.TextSensor, Component) | ||||
| SSIDWiFiInfo = text_sensor.text_sensor_ns.class_('SSIDWiFiInfo', | ||||
|                                                  text_sensor.TextSensor, Component) | ||||
| BSSIDWiFiInfo = text_sensor.text_sensor_ns.class_('BSSIDWiFiInfo', | ||||
|                                                   text_sensor.TextSensor, Component) | ||||
|  | ||||
| PLATFORM_SCHEMA = text_sensor.PLATFORM_SCHEMA.extend({ | ||||
|     vol.Optional(CONF_IP_ADDRESS): cv.nameable(text_sensor.TEXT_SENSOR_SCHEMA.extend({ | ||||
|         cv.GenerateID(): cv.declare_variable_id(IPAddressWiFiInfo), | ||||
|     })), | ||||
|     vol.Optional(CONF_SSID): cv.nameable(text_sensor.TEXT_SENSOR_SCHEMA.extend({ | ||||
|         cv.GenerateID(): cv.declare_variable_id(SSIDWiFiInfo), | ||||
|     })), | ||||
|     vol.Optional(CONF_BSSID): cv.nameable(text_sensor.TEXT_SENSOR_SCHEMA.extend({ | ||||
|         cv.GenerateID(): cv.declare_variable_id(BSSIDWiFiInfo), | ||||
|     })), | ||||
| }) | ||||
|  | ||||
|  | ||||
| def setup_conf(config, key, klass): | ||||
|     if key in config: | ||||
|         conf = config[key] | ||||
|         rhs = App.register_component(klass.new(conf[CONF_NAME])) | ||||
|         sensor_ = Pvariable(conf[CONF_ID], rhs) | ||||
|         text_sensor.register_text_sensor(sensor_, conf) | ||||
|  | ||||
|  | ||||
| def to_code(config): | ||||
|     setup_conf(config, CONF_IP_ADDRESS, IPAddressWiFiInfo) | ||||
|     setup_conf(config, CONF_SSID, SSIDWiFiInfo) | ||||
|     setup_conf(config, CONF_BSSID, BSSIDWiFiInfo) | ||||
|  | ||||
|  | ||||
| BUILD_FLAGS = '-DUSE_WIFI_INFO_TEXT_SENSOR' | ||||
| @@ -29,6 +29,7 @@ CONF_BRANCH = 'branch' | ||||
| CONF_LOGGER = 'logger' | ||||
| CONF_WIFI = 'wifi' | ||||
| CONF_SSID = 'ssid' | ||||
| CONF_IP_ADDRESS = 'ip_address' | ||||
| CONF_BSSID = 'bssid' | ||||
| CONF_PASSWORD = 'password' | ||||
| CONF_MANUAL_IP = 'manual_ip' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user