mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Add total daily energy sensor (#220)
* Add total daily energy sensor * Add test
This commit is contained in:
		
							
								
								
									
										37
									
								
								esphomeyaml/components/sensor/total_daily_energy.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								esphomeyaml/components/sensor/total_daily_energy.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| import voluptuous as vol | ||||
|  | ||||
| from esphomeyaml.components import sensor | ||||
| from esphomeyaml.components.time import sntp | ||||
| import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml.const import CONF_MAKE_ID, CONF_NAME, CONF_TIME_ID | ||||
| from esphomeyaml.helpers import App, Application, get_variable, variable | ||||
|  | ||||
| DEPENDENCIES = ['time'] | ||||
|  | ||||
| CONF_POWER_ID = 'power_id' | ||||
| MakeTotalDailyEnergySensor = Application.MakeTotalDailyEnergySensor | ||||
| TotalDailyEnergy = sensor.sensor_ns.TotalDailyEnergy | ||||
|  | ||||
| PLATFORM_SCHEMA = cv.nameable(sensor.SENSOR_PLATFORM_SCHEMA.extend({ | ||||
|     cv.GenerateID(): cv.declare_variable_id(TotalDailyEnergy), | ||||
|     cv.GenerateID(CONF_MAKE_ID): cv.declare_variable_id(MakeTotalDailyEnergySensor), | ||||
|     cv.GenerateID(CONF_TIME_ID): cv.use_variable_id(sntp.SNTPComponent), | ||||
|     vol.Required(CONF_POWER_ID): cv.use_variable_id(None), | ||||
| })) | ||||
|  | ||||
|  | ||||
| def to_code(config): | ||||
|     for time in get_variable(config[CONF_TIME_ID]): | ||||
|         yield | ||||
|     for sens in get_variable(config[CONF_POWER_ID]): | ||||
|         yield | ||||
|     rhs = App.make_total_daily_energy_sensor(config[CONF_NAME], time, sens) | ||||
|     make = variable(config[CONF_MAKE_ID], rhs) | ||||
|     sensor.setup_sensor(make.Ptotal_energy, make.Pmqtt, config) | ||||
|  | ||||
|  | ||||
| BUILD_FLAGS = '-DUSE_TOTAL_DAILY_ENERGY_SENSOR' | ||||
|  | ||||
|  | ||||
| def to_hass_config(data, config): | ||||
|     return sensor.core_to_hass_config(data, config) | ||||
| @@ -360,6 +360,7 @@ CONF_STEP_PIN = 'step_pin' | ||||
| CONF_DIR_PIN = 'dir_pin' | ||||
| CONF_SLEEP_PIN = 'sleep_pin' | ||||
| CONF_SEND_FIRST_AT = 'send_first_at' | ||||
| CONF_TIME_ID = 'time_id' | ||||
| CONF_RESTORE_STATE = 'restore_state' | ||||
| CONF_TIMING = 'timing' | ||||
| CONF_INVALID_COOLDOWN = 'invalid_cooldown' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user