mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Add FastLED color correction option (#200)
* Add FastLED color correction option * Add test
This commit is contained in:
		| @@ -6,7 +6,7 @@ from esphomeyaml.components import light | ||||
| from esphomeyaml.components.power_supply import PowerSupplyComponent | ||||
| from esphomeyaml.const import CONF_CHIPSET, CONF_DEFAULT_TRANSITION_LENGTH, CONF_GAMMA_CORRECT, \ | ||||
|     CONF_MAKE_ID, CONF_MAX_REFRESH_RATE, CONF_NAME, CONF_NUM_LEDS, CONF_PIN, CONF_POWER_SUPPLY, \ | ||||
|     CONF_RGB_ORDER, CONF_EFFECTS | ||||
|     CONF_RGB_ORDER, CONF_EFFECTS, CONF_COLOR_CORRECT | ||||
| from esphomeyaml.helpers import App, Application, RawExpression, TemplateArguments, add, \ | ||||
|     get_variable, variable | ||||
|  | ||||
| @@ -66,6 +66,7 @@ PLATFORM_SCHEMA = cv.nameable(light.LIGHT_PLATFORM_SCHEMA.extend({ | ||||
|     vol.Optional(CONF_RGB_ORDER): vol.All(vol.Upper, cv.one_of(*RGB_ORDERS)), | ||||
|  | ||||
|     vol.Optional(CONF_GAMMA_CORRECT): cv.positive_float, | ||||
|     vol.Optional(CONF_COLOR_CORRECT): vol.All([cv.percentage], vol.Length(min=3, max=3)), | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period_milliseconds, | ||||
|     vol.Optional(CONF_POWER_SUPPLY): cv.use_variable_id(PowerSupplyComponent), | ||||
|     vol.Optional(CONF_EFFECTS): light.validate_effects(light.FASTLED_EFFECTS), | ||||
| @@ -93,6 +94,10 @@ def to_code(config): | ||||
|             yield | ||||
|         add(fast_led.set_power_supply(power_supply)) | ||||
|  | ||||
|     if CONF_COLOR_CORRECT in config: | ||||
|         r, g, b = config[CONF_COLOR_CORRECT] | ||||
|         add(fast_led.set_correction(r, g, b)) | ||||
|  | ||||
|     light.setup_light(make.Pstate, make.Pmqtt, config) | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -6,7 +6,7 @@ from esphomeyaml.components import light | ||||
| from esphomeyaml.components.power_supply import PowerSupplyComponent | ||||
| from esphomeyaml.const import CONF_CHIPSET, CONF_CLOCK_PIN, CONF_DATA_PIN, \ | ||||
|     CONF_DEFAULT_TRANSITION_LENGTH, CONF_GAMMA_CORRECT, CONF_MAKE_ID, CONF_MAX_REFRESH_RATE, \ | ||||
|     CONF_NAME, CONF_NUM_LEDS, CONF_POWER_SUPPLY, CONF_RGB_ORDER, CONF_EFFECTS | ||||
|     CONF_NAME, CONF_NUM_LEDS, CONF_POWER_SUPPLY, CONF_RGB_ORDER, CONF_EFFECTS, CONF_COLOR_CORRECT | ||||
| from esphomeyaml.helpers import App, Application, RawExpression, TemplateArguments, add, \ | ||||
|     get_variable, variable | ||||
|  | ||||
| @@ -44,6 +44,7 @@ PLATFORM_SCHEMA = cv.nameable(light.LIGHT_PLATFORM_SCHEMA.extend({ | ||||
|     vol.Optional(CONF_MAX_REFRESH_RATE): cv.positive_time_period_microseconds, | ||||
|  | ||||
|     vol.Optional(CONF_GAMMA_CORRECT): cv.positive_float, | ||||
|     vol.Optional(CONF_COLOR_CORRECT): vol.All([cv.percentage], vol.Length(min=3, max=3)), | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period_milliseconds, | ||||
|     vol.Optional(CONF_POWER_SUPPLY): cv.use_variable_id(PowerSupplyComponent), | ||||
|     vol.Optional(CONF_EFFECTS): light.validate_effects(light.FASTLED_EFFECTS), | ||||
| @@ -73,7 +74,11 @@ def to_code(config): | ||||
|             yield | ||||
|         add(fast_led.set_power_supply(power_supply)) | ||||
|  | ||||
|         light.setup_light(make.Pstate, make.Pmqtt, config) | ||||
|     if CONF_COLOR_CORRECT in config: | ||||
|         r, g, b = config[CONF_COLOR_CORRECT] | ||||
|         add(fast_led.set_correction(r, g, b)) | ||||
|  | ||||
|     light.setup_light(make.Pstate, make.Pmqtt, config) | ||||
|  | ||||
|  | ||||
| BUILD_FLAGS = '-DUSE_FAST_LED_LIGHT' | ||||
|   | ||||
| @@ -346,6 +346,7 @@ CONF_PM_2_5 = 'pm_2_5' | ||||
| CONF_PM_10_0 = 'pm_10_0' | ||||
| CONF_FORMALDEHYDE = 'formaldehyde' | ||||
| CONF_ON_TAG = 'on_tag' | ||||
| CONF_COLOR_CORRECT = 'color_correct' | ||||
| CONF_ON_JSON_MESSAGE = 'on_json_message' | ||||
|  | ||||
| ALLOWED_NAME_CHARS = u'abcdefghijklmnopqrstuvwxyz0123456789_' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user