mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	| @@ -93,7 +93,7 @@ async def to_code(config): | |||||||
|     cg.add(var.set_scroll(config[CONF_SCROLL_ENABLE])) |     cg.add(var.set_scroll(config[CONF_SCROLL_ENABLE])) | ||||||
|     cg.add(var.set_scroll_mode(config[CONF_SCROLL_MODE])) |     cg.add(var.set_scroll_mode(config[CONF_SCROLL_MODE])) | ||||||
|     cg.add(var.set_reverse(config[CONF_REVERSE_ENABLE])) |     cg.add(var.set_reverse(config[CONF_REVERSE_ENABLE])) | ||||||
|     cg.add(var.set_flip_x([CONF_FLIP_X])) |     cg.add(var.set_flip_x(config[CONF_FLIP_X])) | ||||||
|  |  | ||||||
|     if CONF_LAMBDA in config: |     if CONF_LAMBDA in config: | ||||||
|         lambda_ = await cg.process_lambda( |         lambda_ = await cg.process_lambda( | ||||||
|   | |||||||
| @@ -25,10 +25,12 @@ from esphome.const import ( | |||||||
|     CONF_STATE_CLASS, |     CONF_STATE_CLASS, | ||||||
|     CONF_TO, |     CONF_TO, | ||||||
|     CONF_TRIGGER_ID, |     CONF_TRIGGER_ID, | ||||||
|  |     CONF_TYPE, | ||||||
|     CONF_UNIT_OF_MEASUREMENT, |     CONF_UNIT_OF_MEASUREMENT, | ||||||
|     CONF_WINDOW_SIZE, |     CONF_WINDOW_SIZE, | ||||||
|     CONF_MQTT_ID, |     CONF_MQTT_ID, | ||||||
|     CONF_FORCE_UPDATE, |     CONF_FORCE_UPDATE, | ||||||
|  |     CONF_VALUE, | ||||||
|     DEVICE_CLASS_APPARENT_POWER, |     DEVICE_CLASS_APPARENT_POWER, | ||||||
|     DEVICE_CLASS_AQI, |     DEVICE_CLASS_AQI, | ||||||
|     DEVICE_CLASS_ATMOSPHERIC_PRESSURE, |     DEVICE_CLASS_ATMOSPHERIC_PRESSURE, | ||||||
| @@ -476,21 +478,38 @@ async def lambda_filter_to_code(config, filter_id): | |||||||
|     return cg.new_Pvariable(filter_id, lambda_) |     return cg.new_Pvariable(filter_id, lambda_) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | DELTA_SCHEMA = cv.Schema( | ||||||
|  |     { | ||||||
|  |         cv.Required(CONF_VALUE): cv.positive_float, | ||||||
|  |         cv.Optional(CONF_TYPE, default="absolute"): cv.one_of( | ||||||
|  |             "absolute", "percentage", lower=True | ||||||
|  |         ), | ||||||
|  |     } | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| def validate_delta(config): | def validate_delta(config): | ||||||
|     try: |     try: | ||||||
|         return (cv.positive_float(config), False) |         value = cv.positive_float(config) | ||||||
|  |         return DELTA_SCHEMA({CONF_VALUE: value, CONF_TYPE: "absolute"}) | ||||||
|     except cv.Invalid: |     except cv.Invalid: | ||||||
|         pass |         pass | ||||||
|     try: |     try: | ||||||
|         return (cv.percentage(config), True) |         value = cv.percentage(config) | ||||||
|  |         return DELTA_SCHEMA({CONF_VALUE: value, CONF_TYPE: "percentage"}) | ||||||
|     except cv.Invalid: |     except cv.Invalid: | ||||||
|         pass |         pass | ||||||
|     raise cv.Invalid("Delta filter requires a positive number or percentage value.") |     raise cv.Invalid("Delta filter requires a positive number or percentage value.") | ||||||
|  |  | ||||||
|  |  | ||||||
| @FILTER_REGISTRY.register("delta", DeltaFilter, validate_delta) | @FILTER_REGISTRY.register("delta", DeltaFilter, cv.Any(DELTA_SCHEMA, validate_delta)) | ||||||
| async def delta_filter_to_code(config, filter_id): | async def delta_filter_to_code(config, filter_id): | ||||||
|     return cg.new_Pvariable(filter_id, *config) |     percentage = config[CONF_TYPE] == "percentage" | ||||||
|  |     return cg.new_Pvariable( | ||||||
|  |         filter_id, | ||||||
|  |         config[CONF_VALUE], | ||||||
|  |         percentage, | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  |  | ||||||
| @FILTER_REGISTRY.register("or", OrFilter, validate_filters) | @FILTER_REGISTRY.register("or", OrFilter, validate_filters) | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| """Constants used by esphome.""" | """Constants used by esphome.""" | ||||||
|  |  | ||||||
| __version__ = "2023.4.0" | __version__ = "2023.4.1" | ||||||
|  |  | ||||||
| ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_" | ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_" | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user