diff --git a/esphomeyaml/components/display/ssd1306_i2c.py b/esphomeyaml/components/display/ssd1306_i2c.py index 7e04082e85..be19b119c0 100644 --- a/esphomeyaml/components/display/ssd1306_i2c.py +++ b/esphomeyaml/components/display/ssd1306_i2c.py @@ -4,8 +4,10 @@ import esphomeyaml.config_validation as cv from esphomeyaml import pins from esphomeyaml.components import display from esphomeyaml.components.display import ssd1306_spi -from esphomeyaml.const import CONF_ADDRESS, CONF_EXTERNAL_VCC, CONF_ID, CONF_MODEL, CONF_RESET_PIN -from esphomeyaml.helpers import App, Pvariable, add, gpio_output_pin_expression +from esphomeyaml.const import CONF_ADDRESS, CONF_EXTERNAL_VCC, CONF_ID, \ + CONF_MODEL, CONF_RESET_PIN, CONF_LAMBDA +from esphomeyaml.helpers import App, Pvariable, add, \ + gpio_output_pin_expression, process_lambda DEPENDENCIES = ['i2c'] @@ -32,6 +34,11 @@ def to_code(config): add(ssd.set_external_vcc(config[CONF_EXTERNAL_VCC])) if CONF_ADDRESS in config: add(ssd.set_address(config[CONF_ADDRESS])) + if CONF_LAMBDA in config: + for lambda_ in process_lambda(config[CONF_LAMBDA], + [(display.DisplayBufferRef, 'it')]): + yield + add(ssd.set_writer(lambda_)) display.setup_display(ssd, config) diff --git a/esphomeyaml/components/display/ssd1306_spi.py b/esphomeyaml/components/display/ssd1306_spi.py index b27a6be3d4..cc9fab724a 100644 --- a/esphomeyaml/components/display/ssd1306_spi.py +++ b/esphomeyaml/components/display/ssd1306_spi.py @@ -4,9 +4,11 @@ import esphomeyaml.config_validation as cv from esphomeyaml import pins from esphomeyaml.components import display from esphomeyaml.components.spi import SPIComponent -from esphomeyaml.const import CONF_CS_PIN, CONF_DC_PIN, CONF_EXTERNAL_VCC, CONF_ID, CONF_MODEL, \ - CONF_RESET_PIN, CONF_SPI_ID -from esphomeyaml.helpers import App, Pvariable, add, get_variable, gpio_output_pin_expression +from esphomeyaml.const import CONF_CS_PIN, CONF_DC_PIN, CONF_EXTERNAL_VCC, \ + CONF_ID, CONF_MODEL, \ + CONF_RESET_PIN, CONF_SPI_ID, CONF_LAMBDA +from esphomeyaml.helpers import App, Pvariable, add, get_variable, \ + gpio_output_pin_expression, process_lambda DEPENDENCIES = ['spi'] @@ -52,6 +54,11 @@ def to_code(config): add(ssd.set_reset_pin(reset)) if CONF_EXTERNAL_VCC in config: add(ssd.set_external_vcc(config[CONF_EXTERNAL_VCC])) + if CONF_LAMBDA in config: + for lambda_ in process_lambda(config[CONF_LAMBDA], + [(display.DisplayBufferRef, 'it')]): + yield + add(ssd.set_writer(lambda_)) display.setup_display(ssd, config)