mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 14:43:51 +00:00 
			
		
		
		
	Preparations for 1.5.0
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml.const import CONF_DEFAULT_TRANSITION_LENGTH | ||||
| from esphomeyaml.const import CONF_DEFAULT_TRANSITION_LENGTH, CONF_GAMMA_CORRECT | ||||
| from esphomeyaml.helpers import add | ||||
|  | ||||
| PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ | ||||
| @@ -10,6 +10,8 @@ PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ | ||||
| def setup_light_component(obj, config): | ||||
|     if CONF_DEFAULT_TRANSITION_LENGTH in config: | ||||
|         add(obj.set_default_transition_length(config[CONF_DEFAULT_TRANSITION_LENGTH])) | ||||
|     if CONF_GAMMA_CORRECT in config: | ||||
|         add(obj.set_gamma_correct(config[CONF_GAMMA_CORRECT])) | ||||
|  | ||||
|  | ||||
| BUILD_FLAGS = '-DUSE_LIGHT' | ||||
|   | ||||
							
								
								
									
										98
									
								
								esphomeyaml/components/light/fastled_clockless.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								esphomeyaml/components/light/fastled_clockless.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| import voluptuous as vol | ||||
|  | ||||
| import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml import pins, core | ||||
| from esphomeyaml.components import light | ||||
| from esphomeyaml.const import CONF_CHIPSET, CONF_DEFAULT_TRANSITION_LENGTH, CONF_GAMMA_CORRECT, \ | ||||
|     CONF_ID, CONF_MAX_REFRESH_RATE, CONF_NAME, CONF_NUM_LEDS, CONF_PIN, CONF_RGB_ORDER, \ | ||||
|     ESP_PLATFORM_ESP32 | ||||
| from esphomeyaml.helpers import App, TemplateArguments, add, setup_mqtt_component, variable, \ | ||||
|     RawExpression | ||||
|  | ||||
| TYPES = [ | ||||
|     'NEOPIXEL', | ||||
|     'TM1829', | ||||
|     'TM1809', | ||||
|     'TM1804', | ||||
|     'TM1803', | ||||
|     'UCS1903', | ||||
|     'UCS1903B', | ||||
|     'UCS1904', | ||||
|     'UCS2903', | ||||
|     'WS2812', | ||||
|     'WS2852', | ||||
|     'WS2812B', | ||||
|     'SK6812', | ||||
|     'SK6822', | ||||
|     'APA106', | ||||
|     'PL9823', | ||||
|     'WS2811', | ||||
|     'WS2813', | ||||
|     'APA104', | ||||
|     'WS2811_400', | ||||
|     'GW6205', | ||||
|     'GW6205_400', | ||||
|     'LPD1886', | ||||
|     'LPD1886_8BIT', | ||||
|     'PIXIE', | ||||
| ] | ||||
|  | ||||
| RGB_ORDERS = [ | ||||
|     'RGB', | ||||
|     'RBG', | ||||
|     'GRB', | ||||
|     'GBR', | ||||
|     'BRG', | ||||
|     'BGR', | ||||
| ] | ||||
|  | ||||
|  | ||||
| def validate(value): | ||||
|     if value[CONF_CHIPSET] == 'NEOPIXEL' and CONF_RGB_ORDER in value: | ||||
|         raise vol.Invalid("NEOPIXEL doesn't support RGB order") | ||||
|     if value[CONF_CHIPSET] == 'PIXIE' and core.ESP_PLATFORM == ESP_PLATFORM_ESP32: | ||||
|         raise vol.Invalid("PIXIE lights are not supported with the ESP32") | ||||
|     return value | ||||
|  | ||||
|  | ||||
| PLATFORM_SCHEMA = vol.All(light.PLATFORM_SCHEMA.extend({ | ||||
|     cv.GenerateID('fast_led_clockless_light'): cv.register_variable_id, | ||||
|  | ||||
|     vol.Required(CONF_CHIPSET): vol.All(vol.Upper, vol.Any(*TYPES)), | ||||
|     vol.Required(CONF_PIN): pins.output_pin, | ||||
|  | ||||
|     vol.Required(CONF_NUM_LEDS): cv.positive_not_null_int, | ||||
|     vol.Optional(CONF_MAX_REFRESH_RATE): cv.positive_time_period_microseconds, | ||||
|     vol.Optional(CONF_RGB_ORDER): vol.All(vol.Upper, vol.Any(*RGB_ORDERS)), | ||||
|  | ||||
|     vol.Optional(CONF_GAMMA_CORRECT): cv.positive_float, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period_milliseconds, | ||||
| }), validate) | ||||
|  | ||||
|  | ||||
| def to_code(config): | ||||
|     rhs = App.make_fast_led_light(config[CONF_NAME]) | ||||
|     make = variable('Application::MakeFastLEDLight', config[CONF_ID], rhs) | ||||
|     fast_led = make.Pfast_led | ||||
|  | ||||
|     rgb_order = None | ||||
|     if CONF_RGB_ORDER in config: | ||||
|         rgb_order = RawExpression(config[CONF_RGB_ORDER]) | ||||
|     template_args = TemplateArguments(RawExpression(config[CONF_CHIPSET]), | ||||
|                                       config[CONF_PIN], rgb_order) | ||||
|     add(fast_led.add_leds(template_args, config[CONF_NUM_LEDS])) | ||||
|  | ||||
|     if CONF_MAX_REFRESH_RATE in config: | ||||
|         add(fast_led.set_max_refresh_rate(config[CONF_MAX_REFRESH_RATE])) | ||||
|  | ||||
|     setup_mqtt_component(make.Pmqtt, config) | ||||
|     light.setup_light_component(make.Pstate, config) | ||||
|  | ||||
|  | ||||
| BUILD_FLAGS = '-DUSE_FAST_LED_LIGHT' | ||||
|  | ||||
|  | ||||
| def required_build_flags(config): | ||||
|     if config[CONF_CHIPSET] == 'PIXIE': | ||||
|         return '-DUSE_FAST_LED_LIGHT_PIXIE' | ||||
|     return None | ||||
							
								
								
									
										69
									
								
								esphomeyaml/components/light/fastled_spi.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								esphomeyaml/components/light/fastled_spi.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| import voluptuous as vol | ||||
|  | ||||
| import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml import pins | ||||
| from esphomeyaml.components import light | ||||
| from esphomeyaml.const import CONF_CHIPSET, CONF_CLOCK_PIN, CONF_DATA_PIN, \ | ||||
|     CONF_DEFAULT_TRANSITION_LENGTH, CONF_GAMMA_CORRECT, CONF_ID, CONF_MAX_REFRESH_RATE, CONF_NAME, \ | ||||
|     CONF_NUM_LEDS, CONF_RGB_ORDER | ||||
| from esphomeyaml.helpers import App, TemplateArguments, add, setup_mqtt_component, variable, \ | ||||
|     RawExpression | ||||
|  | ||||
| CHIPSETS = [ | ||||
|     'LPD8806', | ||||
|     'WS2801', | ||||
|     'WS2803', | ||||
|     'SM16716', | ||||
|     'P9813', | ||||
|     'APA102', | ||||
|     'SK9822', | ||||
|     'DOTSTAR', | ||||
| ] | ||||
|  | ||||
| RGB_ORDERS = [ | ||||
|     'RGB', | ||||
|     'RBG', | ||||
|     'GRB', | ||||
|     'GBR', | ||||
|     'BRG', | ||||
|     'BGR', | ||||
| ] | ||||
|  | ||||
| PLATFORM_SCHEMA = light.PLATFORM_SCHEMA.extend({ | ||||
|     cv.GenerateID('fast_led_spi_light'): cv.register_variable_id, | ||||
|  | ||||
|     vol.Required(CONF_CHIPSET): vol.All(vol.Upper, vol.Any(*CHIPSETS)), | ||||
|     vol.Required(CONF_DATA_PIN): pins.output_pin, | ||||
|     vol.Required(CONF_CLOCK_PIN): pins.output_pin, | ||||
|  | ||||
|     vol.Required(CONF_NUM_LEDS): cv.positive_not_null_int, | ||||
|     vol.Optional(CONF_RGB_ORDER): vol.All(vol.Upper, vol.Any(*RGB_ORDERS)), | ||||
|     vol.Optional(CONF_MAX_REFRESH_RATE): cv.positive_time_period_microseconds, | ||||
|  | ||||
|     vol.Optional(CONF_GAMMA_CORRECT): cv.positive_float, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period_milliseconds, | ||||
| }) | ||||
|  | ||||
|  | ||||
| def to_code(config): | ||||
|     rhs = App.make_fast_led_light(config[CONF_NAME]) | ||||
|     make = variable('Application::MakeFastLEDLight', config[CONF_ID], rhs) | ||||
|     fast_led = make.Pfast_led | ||||
|  | ||||
|     rgb_order = None | ||||
|     if CONF_RGB_ORDER in config: | ||||
|         rgb_order = RawExpression(config[CONF_RGB_ORDER]) | ||||
|     template_args = TemplateArguments(RawExpression(config[CONF_CHIPSET]), | ||||
|                                       config[CONF_DATA_PIN], | ||||
|                                       config[CONF_CLOCK_PIN], | ||||
|                                       rgb_order) | ||||
|     add(fast_led.add_leds(template_args, config[CONF_NUM_LEDS])) | ||||
|  | ||||
|     if CONF_MAX_REFRESH_RATE in config: | ||||
|         add(fast_led.set_max_refresh_rate(config[CONF_MAX_REFRESH_RATE])) | ||||
|  | ||||
|     setup_mqtt_component(make.Pmqtt, config) | ||||
|     light.setup_light_component(make.Pstate, config) | ||||
|  | ||||
|  | ||||
| BUILD_FLAGS = 'DUSE_FAST_LED_LIGHT' | ||||
| @@ -4,13 +4,13 @@ import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml.components import light | ||||
| from esphomeyaml.const import CONF_DEFAULT_TRANSITION_LENGTH, CONF_GAMMA_CORRECT, CONF_ID, \ | ||||
|     CONF_NAME, CONF_OUTPUT | ||||
| from esphomeyaml.helpers import App, add, get_variable, variable, setup_mqtt_component | ||||
| from esphomeyaml.helpers import App, get_variable, setup_mqtt_component, variable | ||||
|  | ||||
| PLATFORM_SCHEMA = light.PLATFORM_SCHEMA.extend({ | ||||
|     cv.GenerateID('monochromatic_light'): cv.register_variable_id, | ||||
|     vol.Required(CONF_OUTPUT): cv.variable_id, | ||||
|     vol.Optional(CONF_GAMMA_CORRECT): cv.positive_float, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period_milliseconds, | ||||
| }) | ||||
|  | ||||
|  | ||||
| @@ -18,7 +18,5 @@ def to_code(config): | ||||
|     output = get_variable(config[CONF_OUTPUT]) | ||||
|     rhs = App.make_monochromatic_light(config[CONF_NAME], output) | ||||
|     light_struct = variable('Application::MakeLight', config[CONF_ID], rhs) | ||||
|     if CONF_GAMMA_CORRECT in config: | ||||
|         add(light_struct.Poutput.set_gamma_correct(config[CONF_GAMMA_CORRECT])) | ||||
|     setup_mqtt_component(light_struct.Pmqtt, config) | ||||
|     light.setup_light_component(light_struct.Pstate, config) | ||||
|   | ||||
| @@ -12,7 +12,7 @@ PLATFORM_SCHEMA = light.PLATFORM_SCHEMA.extend({ | ||||
|     vol.Required(CONF_GREEN): cv.variable_id, | ||||
|     vol.Required(CONF_BLUE): cv.variable_id, | ||||
|     vol.Optional(CONF_GAMMA_CORRECT): cv.positive_float, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period_milliseconds, | ||||
| }) | ||||
|  | ||||
|  | ||||
| @@ -22,7 +22,5 @@ def to_code(config): | ||||
|     blue = get_variable(config[CONF_BLUE]) | ||||
|     rhs = App.make_rgb_light(config[CONF_NAME], red, green, blue) | ||||
|     light_struct = variable('Application::MakeLight', config[CONF_ID], rhs) | ||||
|     if CONF_GAMMA_CORRECT in config: | ||||
|         add(light_struct.Poutput.set_gamma_correct(config[CONF_GAMMA_CORRECT])) | ||||
|     setup_mqtt_component(light_struct.Pmqtt, config) | ||||
|     light.setup_light_component(light_struct.Pstate, config) | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml.components import light | ||||
| from esphomeyaml.const import CONF_BLUE, CONF_DEFAULT_TRANSITION_LENGTH, CONF_GAMMA_CORRECT, \ | ||||
|     CONF_GREEN, CONF_ID, CONF_NAME, CONF_RED, CONF_WHITE | ||||
| from esphomeyaml.helpers import App, add, get_variable, setup_mqtt_component, variable | ||||
| from esphomeyaml.helpers import App, get_variable, setup_mqtt_component, variable | ||||
|  | ||||
| PLATFORM_SCHEMA = light.PLATFORM_SCHEMA.extend({ | ||||
|     cv.GenerateID('rgbw_light'): cv.register_variable_id, | ||||
| @@ -13,7 +13,7 @@ PLATFORM_SCHEMA = light.PLATFORM_SCHEMA.extend({ | ||||
|     vol.Required(CONF_BLUE): cv.variable_id, | ||||
|     vol.Required(CONF_WHITE): cv.variable_id, | ||||
|     vol.Optional(CONF_GAMMA_CORRECT): cv.positive_float, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period, | ||||
|     vol.Optional(CONF_DEFAULT_TRANSITION_LENGTH): cv.positive_time_period_milliseconds, | ||||
| }) | ||||
|  | ||||
|  | ||||
| @@ -24,7 +24,5 @@ def to_code(config): | ||||
|     white = get_variable(config[CONF_WHITE]) | ||||
|     rhs = App.make_rgbw_light(config[CONF_NAME], red, green, blue, white) | ||||
|     light_struct = variable('Application::MakeLight', config[CONF_ID], rhs) | ||||
|     if CONF_GAMMA_CORRECT in config: | ||||
|         add(light_struct.Poutput.set_gamma_correct(config[CONF_GAMMA_CORRECT])) | ||||
|     setup_mqtt_component(light_struct.Pmqtt, config) | ||||
|     light.setup_light_component(light_struct.Pstate, config) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user