mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	fix percentage handling (#1094)
* fix percentage handling * add test * fix lint errors Co-authored-by: Samuel Sieb <samuel@sieb.net>
This commit is contained in:
		| @@ -838,9 +838,16 @@ def percentage(value): | ||||
|  | ||||
|  | ||||
| def possibly_negative_percentage(value): | ||||
|     has_percent_sign = isinstance(value, str) and value.endswith('%') | ||||
|     if has_percent_sign: | ||||
|     has_percent_sign = False | ||||
|     if isinstance(value, str): | ||||
|         try: | ||||
|             if value.endswith('%'): | ||||
|                 has_percent_sign = False | ||||
|                 value = float(value[:-1].rstrip()) / 100.0 | ||||
|             else: | ||||
|                 value = float(value) | ||||
|         except ValueError: | ||||
|             raise Invalid("invalid number") | ||||
|     if value > 1: | ||||
|         msg = "Percentage must not be higher than 100%." | ||||
|         if not has_percent_sign: | ||||
|   | ||||
| @@ -14,6 +14,8 @@ esphome: | ||||
| substitutions: | ||||
|   devicename: test3 | ||||
|   devicecomment: test3 device | ||||
|   min_sub: "0.03" | ||||
|   max_sub: "12.0%" | ||||
|  | ||||
| api: | ||||
|   port: 8000 | ||||
| @@ -769,6 +771,8 @@ servo: | ||||
|   id: my_servo | ||||
|   output: out | ||||
|   restore: true | ||||
|   min_level: $min_sub | ||||
|   max_level: $max_sub | ||||
|  | ||||
| ttp229_lsf: | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user