mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	Miscellaneous Fixes
This commit is contained in:
		| @@ -7,10 +7,10 @@ from esphomeyaml.const import CONF_ABOVE, CONF_ACTION_ID, CONF_AND, CONF_AUTOMAT | |||||||
|     CONF_BELOW, CONF_CONDITION, CONF_CONDITION_ID, CONF_DELAY, CONF_ELSE, CONF_ID, CONF_IF, \ |     CONF_BELOW, CONF_CONDITION, CONF_CONDITION_ID, CONF_DELAY, CONF_ELSE, CONF_ID, CONF_IF, \ | ||||||
|     CONF_LAMBDA, CONF_OR, CONF_RANGE, CONF_THEN, CONF_TRIGGER_ID, CONF_WHILE |     CONF_LAMBDA, CONF_OR, CONF_RANGE, CONF_THEN, CONF_TRIGGER_ID, CONF_WHILE | ||||||
| from esphomeyaml.core import CORE | from esphomeyaml.core import CORE | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, Pvariable, TemplateArguments, add, \ | from esphomeyaml.cpp_generator import Pvariable, TemplateArguments, add, get_variable, \ | ||||||
|     get_variable, process_lambda, templatable |     process_lambda, templatable | ||||||
| from esphomeyaml.cpp_types import Action, App, Component, PollingComponent, Trigger, \ | from esphomeyaml.cpp_types import Action, App, Component, PollingComponent, Trigger, bool_, \ | ||||||
|     esphomelib_ns, float_, uint32, void, bool_ |     esphomelib_ns, float_, uint32, void | ||||||
| from esphomeyaml.util import ServiceRegistry | from esphomeyaml.util import ServiceRegistry | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -318,11 +318,10 @@ def build_action(full_config, arg_type): | |||||||
| def build_actions(config, arg_type): | def build_actions(config, arg_type): | ||||||
|     actions = [] |     actions = [] | ||||||
|     for conf in config: |     for conf in config: | ||||||
|         action = None |  | ||||||
|         for action in build_action(conf, arg_type): |         for action in build_action(conf, arg_type): | ||||||
|             yield None |             yield None | ||||||
|         actions.append(action) |         actions.append(action) | ||||||
|     yield ArrayInitializer(*actions, multiline=False) |     yield actions | ||||||
|  |  | ||||||
|  |  | ||||||
| def build_condition(full_config, arg_type): | def build_condition(full_config, arg_type): | ||||||
| @@ -342,7 +341,7 @@ def build_conditions(config, arg_type): | |||||||
|         for condition in build_condition(conf, arg_type): |         for condition in build_condition(conf, arg_type): | ||||||
|             yield None |             yield None | ||||||
|         conditions.append(condition) |         conditions.append(condition) | ||||||
|     yield ArrayInitializer(*conditions, multiline=False) |     yield conditions | ||||||
|  |  | ||||||
|  |  | ||||||
| def build_automation_(trigger, arg_type, config): | def build_automation_(trigger, arg_type, config): | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ import esphomeyaml.config_validation as cv | |||||||
| from esphomeyaml.const import CONF_DATA, CONF_DATA_TEMPLATE, CONF_ID, CONF_PASSWORD, CONF_PORT, \ | from esphomeyaml.const import CONF_DATA, CONF_DATA_TEMPLATE, CONF_ID, CONF_PASSWORD, CONF_PORT, \ | ||||||
|     CONF_SERVICE, CONF_VARIABLES, CONF_REBOOT_TIMEOUT |     CONF_SERVICE, CONF_VARIABLES, CONF_REBOOT_TIMEOUT | ||||||
| from esphomeyaml.core import CORE | from esphomeyaml.core import CORE | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, Pvariable, add, get_variable, process_lambda | from esphomeyaml.cpp_generator import Pvariable, add, get_variable, process_lambda | ||||||
| from esphomeyaml.cpp_helpers import setup_component | from esphomeyaml.cpp_helpers import setup_component | ||||||
| from esphomeyaml.cpp_types import Action, App, Component, StoringController, esphomelib_ns | from esphomeyaml.cpp_types import Action, App, Component, StoringController, esphomelib_ns | ||||||
|  |  | ||||||
| @@ -74,15 +74,15 @@ def homeassistant_service_to_code(config, action_id, arg_type, template_arg): | |||||||
|     add(act.set_service(config[CONF_SERVICE])) |     add(act.set_service(config[CONF_SERVICE])) | ||||||
|     if CONF_DATA in config: |     if CONF_DATA in config: | ||||||
|         datas = [KeyValuePair(k, v) for k, v in config[CONF_DATA].items()] |         datas = [KeyValuePair(k, v) for k, v in config[CONF_DATA].items()] | ||||||
|         add(act.set_data(ArrayInitializer(*datas))) |         add(act.set_data(datas)) | ||||||
|     if CONF_DATA_TEMPLATE in config: |     if CONF_DATA_TEMPLATE in config: | ||||||
|         datas = [KeyValuePair(k, v) for k, v in config[CONF_DATA_TEMPLATE].items()] |         datas = [KeyValuePair(k, v) for k, v in config[CONF_DATA_TEMPLATE].items()] | ||||||
|         add(act.set_data_template(ArrayInitializer(*datas))) |         add(act.set_data_template(datas)) | ||||||
|     if CONF_VARIABLES in config: |     if CONF_VARIABLES in config: | ||||||
|         datas = [] |         datas = [] | ||||||
|         for key, value in config[CONF_VARIABLES].items(): |         for key, value in config[CONF_VARIABLES].items(): | ||||||
|             for value_ in process_lambda(value, []): |             for value_ in process_lambda(value, []): | ||||||
|                 yield None |                 yield None | ||||||
|             datas.append(TemplatableKeyValuePair(key, value_)) |             datas.append(TemplatableKeyValuePair(key, value_)) | ||||||
|         add(act.set_variables(ArrayInitializer(*datas))) |         add(act.set_variables(datas)) | ||||||
|     yield act |     yield act | ||||||
|   | |||||||
| @@ -216,11 +216,10 @@ def setup_filter(config): | |||||||
| def setup_filters(config): | def setup_filters(config): | ||||||
|     filters = [] |     filters = [] | ||||||
|     for conf in config: |     for conf in config: | ||||||
|         filter = None |  | ||||||
|         for filter in setup_filter(conf): |         for filter in setup_filter(conf): | ||||||
|             yield None |             yield None | ||||||
|         filters.append(filter) |         filters.append(filter) | ||||||
|     yield ArrayInitializer(*filters) |     yield filters | ||||||
|  |  | ||||||
|  |  | ||||||
| def setup_binary_sensor_core_(binary_sensor_var, config): | def setup_binary_sensor_core_(binary_sensor_var, config): | ||||||
| @@ -231,7 +230,6 @@ def setup_binary_sensor_core_(binary_sensor_var, config): | |||||||
|     if CONF_INVERTED in config: |     if CONF_INVERTED in config: | ||||||
|         add(binary_sensor_var.set_inverted(config[CONF_INVERTED])) |         add(binary_sensor_var.set_inverted(config[CONF_INVERTED])) | ||||||
|     if CONF_FILTERS in config: |     if CONF_FILTERS in config: | ||||||
|         filters = None |  | ||||||
|         for filters in setup_filters(config[CONF_FILTERS]): |         for filters in setup_filters(config[CONF_FILTERS]): | ||||||
|             yield |             yield | ||||||
|         add(binary_sensor_var.add_filters(filters)) |         add(binary_sensor_var.add_filters(filters)) | ||||||
| @@ -266,7 +264,6 @@ def setup_binary_sensor_core_(binary_sensor_var, config): | |||||||
|                 ('min_length', tim[CONF_MIN_LENGTH]), |                 ('min_length', tim[CONF_MIN_LENGTH]), | ||||||
|                 ('max_length', tim.get(CONF_MAX_LENGTH, 4294967294)), |                 ('max_length', tim.get(CONF_MAX_LENGTH, 4294967294)), | ||||||
|             )) |             )) | ||||||
|         timings = ArrayInitializer(*timings, multiline=False) |  | ||||||
|         rhs = App.register_component(binary_sensor_var.make_multi_click_trigger(timings)) |         rhs = App.register_component(binary_sensor_var.make_multi_click_trigger(timings)) | ||||||
|         trigger = Pvariable(conf[CONF_TRIGGER_ID], rhs) |         trigger = Pvariable(conf[CONF_TRIGGER_ID], rhs) | ||||||
|         if CONF_INVALID_COOLDOWN in conf: |         if CONF_INVALID_COOLDOWN in conf: | ||||||
|   | |||||||
| @@ -1,11 +1,11 @@ | |||||||
| import voluptuous as vol | import voluptuous as vol | ||||||
|  |  | ||||||
| import esphomeyaml.config_validation as cv |  | ||||||
| from esphomeyaml.components import binary_sensor | from esphomeyaml.components import binary_sensor | ||||||
| from esphomeyaml.components.pn532 import PN532Component | from esphomeyaml.components.pn532 import PN532Component | ||||||
|  | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml.const import CONF_NAME, CONF_UID | from esphomeyaml.const import CONF_NAME, CONF_UID | ||||||
| from esphomeyaml.core import HexInt | from esphomeyaml.core import HexInt | ||||||
| from esphomeyaml.cpp_generator import get_variable, ArrayInitializer | from esphomeyaml.cpp_generator import get_variable | ||||||
|  |  | ||||||
| DEPENDENCIES = ['pn532'] | DEPENDENCIES = ['pn532'] | ||||||
|  |  | ||||||
| @@ -41,7 +41,7 @@ def to_code(config): | |||||||
|     for hub in get_variable(config[CONF_PN532_ID]): |     for hub in get_variable(config[CONF_PN532_ID]): | ||||||
|         yield |         yield | ||||||
|     addr = [HexInt(int(x, 16)) for x in config[CONF_UID].split('-')] |     addr = [HexInt(int(x, 16)) for x in config[CONF_UID].split('-')] | ||||||
|     rhs = hub.make_tag(config[CONF_NAME], ArrayInitializer(*addr, multiline=False)) |     rhs = hub.make_tag(config[CONF_NAME], addr) | ||||||
|     binary_sensor.register_binary_sensor(rhs, config) |     binary_sensor.register_binary_sensor(rhs, config) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,17 +1,17 @@ | |||||||
| import voluptuous as vol | import voluptuous as vol | ||||||
|  |  | ||||||
| import esphomeyaml.config_validation as cv |  | ||||||
| from esphomeyaml.components import binary_sensor | from esphomeyaml.components import binary_sensor | ||||||
| from esphomeyaml.components.remote_receiver import RemoteReceiverComponent, remote_ns | from esphomeyaml.components.remote_receiver import RemoteReceiverComponent, remote_ns | ||||||
| from esphomeyaml.components.remote_transmitter import RC_SWITCH_RAW_SCHEMA, \ | from esphomeyaml.components.remote_transmitter import RC_SWITCH_RAW_SCHEMA, \ | ||||||
|     RC_SWITCH_TYPE_A_SCHEMA, RC_SWITCH_TYPE_B_SCHEMA, RC_SWITCH_TYPE_C_SCHEMA, \ |     RC_SWITCH_TYPE_A_SCHEMA, RC_SWITCH_TYPE_B_SCHEMA, RC_SWITCH_TYPE_C_SCHEMA, \ | ||||||
|     RC_SWITCH_TYPE_D_SCHEMA, binary_code, build_rc_switch_protocol |     RC_SWITCH_TYPE_D_SCHEMA, binary_code, build_rc_switch_protocol | ||||||
|  | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml.const import CONF_ADDRESS, CONF_CHANNEL, CONF_CODE, CONF_COMMAND, CONF_DATA, \ | from esphomeyaml.const import CONF_ADDRESS, CONF_CHANNEL, CONF_CODE, CONF_COMMAND, CONF_DATA, \ | ||||||
|     CONF_DEVICE, CONF_FAMILY, CONF_GROUP, CONF_LG, CONF_NAME, CONF_NBITS, CONF_NEC, \ |     CONF_DEVICE, CONF_FAMILY, CONF_GROUP, CONF_LG, CONF_NAME, CONF_NBITS, CONF_NEC, \ | ||||||
|     CONF_PANASONIC, CONF_PROTOCOL, CONF_RAW, CONF_RC_SWITCH_RAW, CONF_RC_SWITCH_TYPE_A, \ |     CONF_PANASONIC, CONF_PROTOCOL, CONF_RAW, CONF_RC_SWITCH_RAW, CONF_RC_SWITCH_TYPE_A, \ | ||||||
|     CONF_RC_SWITCH_TYPE_B, CONF_RC_SWITCH_TYPE_C, CONF_RC_SWITCH_TYPE_D, CONF_SAMSUNG, CONF_SONY, \ |     CONF_RC_SWITCH_TYPE_B, CONF_RC_SWITCH_TYPE_C, CONF_RC_SWITCH_TYPE_D, CONF_SAMSUNG, CONF_SONY, \ | ||||||
|     CONF_STATE |     CONF_STATE | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, get_variable, Pvariable | from esphomeyaml.cpp_generator import Pvariable, get_variable | ||||||
|  |  | ||||||
| DEPENDENCIES = ['remote_receiver'] | DEPENDENCIES = ['remote_receiver'] | ||||||
|  |  | ||||||
| @@ -82,8 +82,7 @@ def receiver_base(full_config): | |||||||
|     if key == CONF_SONY: |     if key == CONF_SONY: | ||||||
|         return SonyReceiver.new(name, config[CONF_DATA], config[CONF_NBITS]) |         return SonyReceiver.new(name, config[CONF_DATA], config[CONF_NBITS]) | ||||||
|     if key == CONF_RAW: |     if key == CONF_RAW: | ||||||
|         data = ArrayInitializer(*config, multiline=False) |         return RawReceiver.new(name, *config) | ||||||
|         return RawReceiver.new(name, data) |  | ||||||
|     if key == CONF_RC_SWITCH_RAW: |     if key == CONF_RC_SWITCH_RAW: | ||||||
|         return RCSwitchRawReceiver.new(name, build_rc_switch_protocol(config[CONF_PROTOCOL]), |         return RCSwitchRawReceiver.new(name, build_rc_switch_protocol(config[CONF_PROTOCOL]), | ||||||
|                                        binary_code(config[CONF_CODE]), len(config[CONF_CODE])) |                                        binary_code(config[CONF_CODE]), len(config[CONF_CODE])) | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ import voluptuous as vol | |||||||
|  |  | ||||||
| from esphomeyaml import config_validation as cv | from esphomeyaml import config_validation as cv | ||||||
| from esphomeyaml.const import CONF_ID, CONF_SCAN_INTERVAL, CONF_TYPE, CONF_UUID, ESP_PLATFORM_ESP32 | from esphomeyaml.const import CONF_ID, CONF_SCAN_INTERVAL, CONF_TYPE, CONF_UUID, ESP_PLATFORM_ESP32 | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, Pvariable, RawExpression, add | from esphomeyaml.cpp_generator import Pvariable, RawExpression, add | ||||||
| from esphomeyaml.cpp_helpers import setup_component | from esphomeyaml.cpp_helpers import setup_component | ||||||
| from esphomeyaml.cpp_types import App, Component, esphomelib_ns | from esphomeyaml.cpp_types import App, Component, esphomelib_ns | ||||||
|  |  | ||||||
| @@ -26,7 +26,7 @@ CONFIG_SCHEMA = vol.Schema({ | |||||||
| def to_code(config): | def to_code(config): | ||||||
|     uuid = config[CONF_UUID].hex |     uuid = config[CONF_UUID].hex | ||||||
|     uuid_arr = [RawExpression('0x{}'.format(uuid[i:i + 2])) for i in range(0, len(uuid), 2)] |     uuid_arr = [RawExpression('0x{}'.format(uuid[i:i + 2])) for i in range(0, len(uuid), 2)] | ||||||
|     rhs = App.make_esp32_ble_beacon(ArrayInitializer(*uuid_arr, multiline=False)) |     rhs = App.make_esp32_ble_beacon(uuid_arr) | ||||||
|     ble = Pvariable(config[CONF_ID], rhs) |     ble = Pvariable(config[CONF_ID], rhs) | ||||||
|     if CONF_MAJOR in config: |     if CONF_MAJOR in config: | ||||||
|         add(ble.set_major(config[CONF_MAJOR])) |         add(ble.set_major(config[CONF_MAJOR])) | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from esphomeyaml import config_validation as cv | |||||||
| from esphomeyaml.components import sensor | from esphomeyaml.components import sensor | ||||||
| from esphomeyaml.const import CONF_ID, CONF_SCAN_INTERVAL, ESP_PLATFORM_ESP32 | from esphomeyaml.const import CONF_ID, CONF_SCAN_INTERVAL, ESP_PLATFORM_ESP32 | ||||||
| from esphomeyaml.core import HexInt | from esphomeyaml.core import HexInt | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, Pvariable, add | from esphomeyaml.cpp_generator import Pvariable, add | ||||||
| from esphomeyaml.cpp_helpers import setup_component | from esphomeyaml.cpp_helpers import setup_component | ||||||
| from esphomeyaml.cpp_types import App, Component, esphomelib_ns | from esphomeyaml.cpp_types import App, Component, esphomelib_ns | ||||||
|  |  | ||||||
| @@ -25,8 +25,7 @@ CONFIG_SCHEMA = vol.Schema({ | |||||||
|  |  | ||||||
|  |  | ||||||
| def make_address_array(address): | def make_address_array(address): | ||||||
|     addr = [HexInt(i) for i in address.parts] |     return [HexInt(i) for i in address.parts] | ||||||
|     return ArrayInitializer(*addr, multiline=False) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def to_code(config): | def to_code(config): | ||||||
|   | |||||||
| @@ -8,8 +8,9 @@ from esphomeyaml.const import CONF_ID, CONF_INTERNAL, CONF_MQTT_ID, CONF_NAME, C | |||||||
|     CONF_OSCILLATION_COMMAND_TOPIC, CONF_OSCILLATION_OUTPUT, CONF_OSCILLATION_STATE_TOPIC, \ |     CONF_OSCILLATION_COMMAND_TOPIC, CONF_OSCILLATION_OUTPUT, CONF_OSCILLATION_STATE_TOPIC, \ | ||||||
|     CONF_SPEED, CONF_SPEED_COMMAND_TOPIC, CONF_SPEED_STATE_TOPIC |     CONF_SPEED, CONF_SPEED_COMMAND_TOPIC, CONF_SPEED_STATE_TOPIC | ||||||
| from esphomeyaml.core import CORE | from esphomeyaml.core import CORE | ||||||
| from esphomeyaml.cpp_generator import add, Pvariable, get_variable, templatable | from esphomeyaml.cpp_generator import Pvariable, add, get_variable, templatable | ||||||
| from esphomeyaml.cpp_types import Application, Component, Nameable, esphomelib_ns, Action, bool_ | from esphomeyaml.cpp_types import Action, Application, Component, Nameable, bool_, esphomelib_ns | ||||||
|  | from esphomeyaml.py_compat import string_types | ||||||
|  |  | ||||||
| PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ | PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ | ||||||
|  |  | ||||||
| @@ -125,6 +126,8 @@ def fan_turn_on_to_code(config, action_id, arg_type, template_arg): | |||||||
|     if CONF_SPEED in config: |     if CONF_SPEED in config: | ||||||
|         for template_ in templatable(config[CONF_SPEED], arg_type, FanSpeed): |         for template_ in templatable(config[CONF_SPEED], arg_type, FanSpeed): | ||||||
|             yield None |             yield None | ||||||
|  |         if isinstance(template_, string_types): | ||||||
|  |             template_ = FAN_SPEEDS[template_] | ||||||
|         add(action.set_speed(template_)) |         add(action.set_speed(template_)) | ||||||
|     yield action |     yield action | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from esphomeyaml.components import display | |||||||
| import esphomeyaml.config_validation as cv | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml.const import CONF_FILE, CONF_GLYPHS, CONF_ID, CONF_SIZE | from esphomeyaml.const import CONF_FILE, CONF_GLYPHS, CONF_ID, CONF_SIZE | ||||||
| from esphomeyaml.core import CORE, HexInt | from esphomeyaml.core import CORE, HexInt | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, MockObj, Pvariable, RawExpression, add | from esphomeyaml.cpp_generator import MockObj, Pvariable, RawExpression, add, safe_exp | ||||||
| from esphomeyaml.cpp_types import App | from esphomeyaml.cpp_types import App | ||||||
| from esphomeyaml.py_compat import sort_by_cmp | from esphomeyaml.py_compat import sort_by_cmp | ||||||
|  |  | ||||||
| @@ -111,11 +111,11 @@ def to_code(config): | |||||||
|     raw_data = MockObj(config[CONF_RAW_DATA_ID]) |     raw_data = MockObj(config[CONF_RAW_DATA_ID]) | ||||||
|     add(RawExpression('static const uint8_t {}[{}] PROGMEM = {}'.format( |     add(RawExpression('static const uint8_t {}[{}] PROGMEM = {}'.format( | ||||||
|         raw_data, len(data), |         raw_data, len(data), | ||||||
|         ArrayInitializer(*[HexInt(x) for x in data], multiline=False)))) |         safe_exp([HexInt(x) for x in data])))) | ||||||
|  |  | ||||||
|     glyphs = [] |     glyphs = [] | ||||||
|     for glyph in config[CONF_GLYPHS]: |     for glyph in config[CONF_GLYPHS]: | ||||||
|         glyphs.append(Glyph(glyph, raw_data, *glyph_args[glyph])) |         glyphs.append(Glyph(glyph, raw_data, *glyph_args[glyph])) | ||||||
|  |  | ||||||
|     rhs = App.make_font(ArrayInitializer(*glyphs), ascent, ascent + descent) |     rhs = App.make_font(glyphs, ascent, ascent + descent) | ||||||
|     Pvariable(config[CONF_ID], rhs) |     Pvariable(config[CONF_ID], rhs) | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from esphomeyaml.components import display, font | |||||||
| import esphomeyaml.config_validation as cv | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml.const import CONF_FILE, CONF_ID, CONF_RESIZE | from esphomeyaml.const import CONF_FILE, CONF_ID, CONF_RESIZE | ||||||
| from esphomeyaml.core import CORE, HexInt | from esphomeyaml.core import CORE, HexInt | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, MockObj, Pvariable, RawExpression, add | from esphomeyaml.cpp_generator import MockObj, Pvariable, RawExpression, add, safe_exp | ||||||
| from esphomeyaml.cpp_types import App | from esphomeyaml.cpp_types import App | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
| @@ -59,7 +59,7 @@ def to_code(config): | |||||||
|     raw_data = MockObj(config[CONF_RAW_DATA_ID]) |     raw_data = MockObj(config[CONF_RAW_DATA_ID]) | ||||||
|     add(RawExpression('static const uint8_t {}[{}] PROGMEM = {}'.format( |     add(RawExpression('static const uint8_t {}[{}] PROGMEM = {}'.format( | ||||||
|         raw_data, len(data), |         raw_data, len(data), | ||||||
|         ArrayInitializer(*[HexInt(x) for x in data], multiline=False)))) |         safe_exp([HexInt(x) for x in data])))) | ||||||
|  |  | ||||||
|     rhs = App.make_image(raw_data, width, height) |     rhs = App.make_image(raw_data, width, height) | ||||||
|     Pvariable(config[CONF_ID], rhs) |     Pvariable(config[CONF_ID], rhs) | ||||||
|   | |||||||
| @@ -279,7 +279,7 @@ def build_effect(full_config): | |||||||
|                 ('duration', color[CONF_DURATION]), |                 ('duration', color[CONF_DURATION]), | ||||||
|             )) |             )) | ||||||
|         if colors: |         if colors: | ||||||
|             add(effect.set_colors(ArrayInitializer(*colors))) |             add(effect.set_colors(colors)) | ||||||
|         yield effect |         yield effect | ||||||
|     elif key == CONF_FLICKER: |     elif key == CONF_FLICKER: | ||||||
|         rhs = FlickerLightEffect.new(config[CONF_NAME]) |         rhs = FlickerLightEffect.new(config[CONF_NAME]) | ||||||
| @@ -322,7 +322,7 @@ def build_effect(full_config): | |||||||
|                 ('num_leds', color[CONF_NUM_LEDS]), |                 ('num_leds', color[CONF_NUM_LEDS]), | ||||||
|             )) |             )) | ||||||
|         if colors: |         if colors: | ||||||
|             add(effect.set_colors(ArrayInitializer(*colors))) |             add(effect.set_colors(colors)) | ||||||
|         yield effect |         yield effect | ||||||
|     elif key == CONF_ADDRESSABLE_SCAN: |     elif key == CONF_ADDRESSABLE_SCAN: | ||||||
|         rhs = AddressableScanEffect.new(config[CONF_NAME]) |         rhs = AddressableScanEffect.new(config[CONF_NAME]) | ||||||
| @@ -383,7 +383,7 @@ def setup_light_core_(light_var, config): | |||||||
|             yield |             yield | ||||||
|         effects.append(effect) |         effects.append(effect) | ||||||
|     if effects: |     if effects: | ||||||
|         add(light_var.add_effects(ArrayInitializer(*effects))) |         add(light_var.add_effects(effects)) | ||||||
|  |  | ||||||
|     setup_mqtt_component(light_var.Pget_mqtt(), config) |     setup_mqtt_component(light_var.Pget_mqtt(), config) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,8 +15,8 @@ from esphomeyaml.const import CONF_AVAILABILITY, CONF_BIRTH_MESSAGE, CONF_BROKER | |||||||
|     CONF_RETAIN, CONF_SHUTDOWN_MESSAGE, CONF_SSL_FINGERPRINTS, CONF_STATE_TOPIC, CONF_TOPIC, \ |     CONF_RETAIN, CONF_SHUTDOWN_MESSAGE, CONF_SSL_FINGERPRINTS, CONF_STATE_TOPIC, CONF_TOPIC, \ | ||||||
|     CONF_TOPIC_PREFIX, CONF_TRIGGER_ID, CONF_USERNAME, CONF_WILL_MESSAGE |     CONF_TOPIC_PREFIX, CONF_TRIGGER_ID, CONF_USERNAME, CONF_WILL_MESSAGE | ||||||
| from esphomeyaml.core import EsphomeyamlError | from esphomeyaml.core import EsphomeyamlError | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, Pvariable, RawExpression, \ | from esphomeyaml.cpp_generator import Pvariable, RawExpression, StructInitializer, \ | ||||||
|     StructInitializer, TemplateArguments, add, process_lambda, templatable |     TemplateArguments, add, process_lambda, templatable | ||||||
| from esphomeyaml.cpp_types import Action, App, Component, JsonObjectConstRef, JsonObjectRef, \ | from esphomeyaml.cpp_types import Action, App, Component, JsonObjectConstRef, JsonObjectRef, \ | ||||||
|     Trigger, bool_, esphomelib_ns, optional, std_string, uint8, void |     Trigger, bool_, esphomelib_ns, optional, std_string, uint8, void | ||||||
|  |  | ||||||
| @@ -169,7 +169,7 @@ def to_code(config): | |||||||
|     if CONF_SSL_FINGERPRINTS in config: |     if CONF_SSL_FINGERPRINTS in config: | ||||||
|         for fingerprint in config[CONF_SSL_FINGERPRINTS]: |         for fingerprint in config[CONF_SSL_FINGERPRINTS]: | ||||||
|             arr = [RawExpression("0x{}".format(fingerprint[i:i + 2])) for i in range(0, 40, 2)] |             arr = [RawExpression("0x{}".format(fingerprint[i:i + 2])) for i in range(0, 40, 2)] | ||||||
|             add(mqtt.add_ssl_fingerprint(ArrayInitializer(*arr, multiline=False))) |             add(mqtt.add_ssl_fingerprint(arr)) | ||||||
|  |  | ||||||
|     if CONF_KEEPALIVE in config: |     if CONF_KEEPALIVE in config: | ||||||
|         add(mqtt.set_keep_alive(config[CONF_KEEPALIVE])) |         add(mqtt.set_keep_alive(config[CONF_KEEPALIVE])) | ||||||
| @@ -340,4 +340,4 @@ def setup_mqtt_component(obj, config): | |||||||
|  |  | ||||||
|  |  | ||||||
| LIB_DEPS = 'AsyncMqttClient@0.8.2' | LIB_DEPS = 'AsyncMqttClient@0.8.2' | ||||||
| REQUIRED_BUILD_FLAGS = '-DUSE_MQTT' | BUILD_FLAGS = '-DUSE_MQTT' | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ import voluptuous as vol | |||||||
| from esphomeyaml.components import output | from esphomeyaml.components import output | ||||||
| import esphomeyaml.config_validation as cv | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml.const import CONF_ID, CONF_LAMBDA, CONF_OUTPUTS, CONF_TYPE | from esphomeyaml.const import CONF_ID, CONF_LAMBDA, CONF_OUTPUTS, CONF_TYPE | ||||||
| from esphomeyaml.cpp_generator import process_lambda, variable, Pvariable | from esphomeyaml.cpp_generator import process_lambda, variable | ||||||
| from esphomeyaml.cpp_types import std_vector | from esphomeyaml.cpp_types import std_vector | ||||||
|  |  | ||||||
| CustomBinaryOutputConstructor = output.output_ns.class_('CustomBinaryOutputConstructor') | CustomBinaryOutputConstructor = output.output_ns.class_('CustomBinaryOutputConstructor') | ||||||
| @@ -62,8 +62,7 @@ def to_code(config): | |||||||
|     rhs = klass(template_) |     rhs = klass(template_) | ||||||
|     custom = variable(config[CONF_ID], rhs) |     custom = variable(config[CONF_ID], rhs) | ||||||
|     for i, conf in enumerate(config[CONF_OUTPUTS]): |     for i, conf in enumerate(config[CONF_OUTPUTS]): | ||||||
|         var = Pvariable(conf[CONF_ID], custom.get_output(i)) |         output.register_output(custom.get_output(i), conf) | ||||||
|         output.register_output(var, conf) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| BUILD_FLAGS = '-DUSE_CUSTOM_OUTPUT' | BUILD_FLAGS = '-DUSE_CUSTOM_OUTPUT' | ||||||
|   | |||||||
| @@ -162,7 +162,7 @@ def setup_filters(config): | |||||||
|         for filter in setup_filter(conf): |         for filter in setup_filter(conf): | ||||||
|             yield None |             yield None | ||||||
|         filters.append(filter) |         filters.append(filter) | ||||||
|     yield ArrayInitializer(*filters) |     yield filters | ||||||
|  |  | ||||||
|  |  | ||||||
| def setup_sensor_core_(sensor_var, config): | def setup_sensor_core_(sensor_var, config): | ||||||
|   | |||||||
| @@ -120,5 +120,5 @@ def stepper_report_position_to_code(config, action_id, arg_type, template_arg): | |||||||
|     action = Pvariable(action_id, rhs, type=type) |     action = Pvariable(action_id, rhs, type=type) | ||||||
|     for template_ in templatable(config[CONF_POSITION], arg_type, int32): |     for template_ in templatable(config[CONF_POSITION], arg_type, int32): | ||||||
|         yield None |         yield None | ||||||
|     add(action.set_target(template_)) |     add(action.set_position(template_)) | ||||||
|     yield action |     yield action | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ from esphomeyaml.const import CONF_ADDRESS, CONF_CARRIER_FREQUENCY, CONF_CHANNEL | |||||||
|     CONF_RC_SWITCH_TYPE_A, CONF_RC_SWITCH_TYPE_B, CONF_RC_SWITCH_TYPE_C, CONF_RC_SWITCH_TYPE_D, \ |     CONF_RC_SWITCH_TYPE_A, CONF_RC_SWITCH_TYPE_B, CONF_RC_SWITCH_TYPE_C, CONF_RC_SWITCH_TYPE_D, \ | ||||||
|     CONF_REPEAT, CONF_SAMSUNG, CONF_SONY, CONF_STATE, CONF_TIMES, \ |     CONF_REPEAT, CONF_SAMSUNG, CONF_SONY, CONF_STATE, CONF_TIMES, \ | ||||||
|     CONF_WAIT_TIME |     CONF_WAIT_TIME | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, Pvariable, add, get_variable | from esphomeyaml.cpp_generator import Pvariable, add, get_variable | ||||||
|  |  | ||||||
| DEPENDENCIES = ['remote_transmitter'] | DEPENDENCIES = ['remote_transmitter'] | ||||||
|  |  | ||||||
| @@ -100,7 +100,7 @@ def transmitter_base(full_config): | |||||||
|         else: |         else: | ||||||
|             data = config |             data = config | ||||||
|             carrier_frequency = None |             carrier_frequency = None | ||||||
|         return RawTransmitter.new(name, ArrayInitializer(*data, multiline=False), |         return RawTransmitter.new(name, data, | ||||||
|                                   carrier_frequency) |                                   carrier_frequency) | ||||||
|     if key == CONF_RC_SWITCH_RAW: |     if key == CONF_RC_SWITCH_RAW: | ||||||
|         return RCSwitchRawTransmitter.new(name, build_rc_switch_protocol(config[CONF_PROTOCOL]), |         return RCSwitchRawTransmitter.new(name, build_rc_switch_protocol(config[CONF_PROTOCOL]), | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ from esphomeyaml.components.uart import UARTComponent | |||||||
| import esphomeyaml.config_validation as cv | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml.const import CONF_DATA, CONF_ID, CONF_INVERTED, CONF_NAME, CONF_UART_ID | from esphomeyaml.const import CONF_DATA, CONF_ID, CONF_INVERTED, CONF_NAME, CONF_UART_ID | ||||||
| from esphomeyaml.core import HexInt | from esphomeyaml.core import HexInt | ||||||
| from esphomeyaml.cpp_generator import ArrayInitializer, Pvariable, get_variable | from esphomeyaml.cpp_generator import Pvariable, get_variable | ||||||
| from esphomeyaml.cpp_types import App | from esphomeyaml.cpp_types import App | ||||||
| from esphomeyaml.py_compat import text_type | from esphomeyaml.py_compat import text_type | ||||||
|  |  | ||||||
| @@ -38,7 +38,7 @@ def to_code(config): | |||||||
|     data = config[CONF_DATA] |     data = config[CONF_DATA] | ||||||
|     if isinstance(data, str): |     if isinstance(data, str): | ||||||
|         data = [HexInt(ord(x)) for x in data] |         data = [HexInt(ord(x)) for x in data] | ||||||
|     rhs = App.make_uart_switch(uart_, config[CONF_NAME], ArrayInitializer(*data, multiline=False)) |     rhs = App.make_uart_switch(uart_, config[CONF_NAME], data) | ||||||
|     var = Pvariable(config[CONF_ID], rhs) |     var = Pvariable(config[CONF_ID], rhs) | ||||||
|     switch.setup_switch(var, config) |     switch.setup_switch(var, config) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -278,22 +278,22 @@ def setup_time_core_(time_var, config): | |||||||
|         trigger = Pvariable(conf[CONF_TRIGGER_ID], rhs) |         trigger = Pvariable(conf[CONF_TRIGGER_ID], rhs) | ||||||
|  |  | ||||||
|         seconds = conf.get(CONF_SECONDS, [x for x in range(0, 61)]) |         seconds = conf.get(CONF_SECONDS, [x for x in range(0, 61)]) | ||||||
|         add(trigger.add_seconds(ArrayInitializer(*seconds, multiline=False))) |         add(trigger.add_seconds(seconds)) | ||||||
|  |  | ||||||
|         minutes = conf.get(CONF_MINUTES, [x for x in range(0, 60)]) |         minutes = conf.get(CONF_MINUTES, [x for x in range(0, 60)]) | ||||||
|         add(trigger.add_minutes(ArrayInitializer(*minutes, multiline=False))) |         add(trigger.add_minutes(minutes)) | ||||||
|  |  | ||||||
|         hours = conf.get(CONF_HOURS, [x for x in range(0, 24)]) |         hours = conf.get(CONF_HOURS, [x for x in range(0, 24)]) | ||||||
|         add(trigger.add_hours(ArrayInitializer(*hours, multiline=False))) |         add(trigger.add_hours(hours)) | ||||||
|  |  | ||||||
|         days_of_month = conf.get(CONF_DAYS_OF_MONTH, [x for x in range(1, 32)]) |         days_of_month = conf.get(CONF_DAYS_OF_MONTH, [x for x in range(1, 32)]) | ||||||
|         add(trigger.add_days_of_month(ArrayInitializer(*days_of_month, multiline=False))) |         add(trigger.add_days_of_month(days_of_month)) | ||||||
|  |  | ||||||
|         months = conf.get(CONF_MONTHS, [x for x in range(1, 13)]) |         months = conf.get(CONF_MONTHS, [x for x in range(1, 13)]) | ||||||
|         add(trigger.add_months(ArrayInitializer(*months, multiline=False))) |         add(trigger.add_months(months)) | ||||||
|  |  | ||||||
|         days_of_week = conf.get(CONF_DAYS_OF_WEEK, [x for x in range(1, 8)]) |         days_of_week = conf.get(CONF_DAYS_OF_WEEK, [x for x in range(1, 8)]) | ||||||
|         add(trigger.add_days_of_week(ArrayInitializer(*days_of_week, multiline=False))) |         add(trigger.add_days_of_week(days_of_week)) | ||||||
|  |  | ||||||
|         automation.build_automation(trigger, NoArg, conf) |         automation.build_automation(trigger, NoArg, conf) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,15 +1,14 @@ | |||||||
| import voluptuous as vol | import voluptuous as vol | ||||||
|  |  | ||||||
| import esphomeyaml.config_validation as cv | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml.const import CONF_AP, CONF_CHANNEL, CONF_DNS1, CONF_DNS2, CONF_DOMAIN, \ | from esphomeyaml.const import CONF_AP, CONF_BSSID, CONF_CHANNEL, CONF_DNS1, CONF_DNS2, \ | ||||||
|     CONF_GATEWAY, CONF_HOSTNAME, CONF_ID, CONF_MANUAL_IP, CONF_PASSWORD, CONF_POWER_SAVE_MODE, \ |     CONF_DOMAIN, \ | ||||||
|     CONF_REBOOT_TIMEOUT, CONF_SSID, CONF_STATIC_IP, CONF_SUBNET, CONF_NETWORKS, CONF_BSSID, \ |     CONF_FAST_CONNECT, CONF_GATEWAY, CONF_HOSTNAME, CONF_ID, CONF_MANUAL_IP, CONF_NETWORKS, \ | ||||||
|     CONF_FAST_CONNECT |     CONF_PASSWORD, CONF_POWER_SAVE_MODE, CONF_REBOOT_TIMEOUT, CONF_SSID, CONF_STATIC_IP, CONF_SUBNET | ||||||
| from esphomeyaml.core import CORE, HexInt | from esphomeyaml.core import CORE, HexInt | ||||||
| from esphomeyaml.cpp_generator import Pvariable, StructInitializer, add, variable, ArrayInitializer | from esphomeyaml.cpp_generator import Pvariable, StructInitializer, add, variable | ||||||
| from esphomeyaml.cpp_types import App, Component, esphomelib_ns, global_ns | from esphomeyaml.cpp_types import App, Component, esphomelib_ns, global_ns | ||||||
|  |  | ||||||
|  |  | ||||||
| IPAddress = global_ns.class_('IPAddress') | IPAddress = global_ns.class_('IPAddress') | ||||||
| ManualIP = esphomelib_ns.struct('ManualIP') | ManualIP = esphomelib_ns.struct('ManualIP') | ||||||
| WiFiComponent = esphomelib_ns.class_('WiFiComponent', Component) | WiFiComponent = esphomelib_ns.class_('WiFiComponent', Component) | ||||||
| @@ -141,8 +140,7 @@ def wifi_network(config, static_ip): | |||||||
|     if CONF_PASSWORD in config: |     if CONF_PASSWORD in config: | ||||||
|         add(ap.set_password(config[CONF_PASSWORD])) |         add(ap.set_password(config[CONF_PASSWORD])) | ||||||
|     if CONF_BSSID in config: |     if CONF_BSSID in config: | ||||||
|         bssid = [HexInt(i) for i in config[CONF_BSSID].parts] |         add(ap.set_bssid([HexInt(i) for i in config[CONF_BSSID].parts])) | ||||||
|         add(ap.set_bssid(ArrayInitializer(*bssid, multiline=False))) |  | ||||||
|     if CONF_CHANNEL in config: |     if CONF_CHANNEL in config: | ||||||
|         add(ap.set_channel(config[CONF_CHANNEL])) |         add(ap.set_channel(config[CONF_CHANNEL])) | ||||||
|     if static_ip is not None: |     if static_ip is not None: | ||||||
|   | |||||||
| @@ -134,7 +134,7 @@ class StructInitializer(Expression): | |||||||
| class ArrayInitializer(Expression): | class ArrayInitializer(Expression): | ||||||
|     def __init__(self, *args, **kwargs):  # type: (*Any, **Any) -> None |     def __init__(self, *args, **kwargs):  # type: (*Any, **Any) -> None | ||||||
|         super(ArrayInitializer, self).__init__() |         super(ArrayInitializer, self).__init__() | ||||||
|         self.multiline = kwargs.get('multiline', True) |         self.multiline = kwargs.get('multiline', False) | ||||||
|         self.args = [] |         self.args = [] | ||||||
|         for arg in args: |         for arg in args: | ||||||
|             if arg is None: |             if arg is None: | ||||||
| @@ -264,7 +264,8 @@ class FloatLiteral(Literal): | |||||||
|  |  | ||||||
|  |  | ||||||
| # pylint: disable=bad-continuation | # pylint: disable=bad-continuation | ||||||
| def safe_exp(obj  # type: Union[Expression, bool, str, unicode, int, long, float, TimePeriod] | def safe_exp( | ||||||
|  |         obj  # type: Union[Expression, bool, str, unicode, int, long, float, TimePeriod, list] | ||||||
|              ): |              ): | ||||||
|     # type: (...) -> Expression |     # type: (...) -> Expression | ||||||
|     if isinstance(obj, Expression): |     if isinstance(obj, Expression): | ||||||
| @@ -285,6 +286,8 @@ def safe_exp(obj  # type: Union[Expression, bool, str, unicode, int, long, float | |||||||
|         return IntLiteral(int(obj.total_milliseconds)) |         return IntLiteral(int(obj.total_milliseconds)) | ||||||
|     if isinstance(obj, TimePeriodSeconds): |     if isinstance(obj, TimePeriodSeconds): | ||||||
|         return IntLiteral(int(obj.total_seconds)) |         return IntLiteral(int(obj.total_seconds)) | ||||||
|  |     if isinstance(obj, (tuple, list)): | ||||||
|  |         return ArrayInitializer(*[safe_exp(o) for o in obj]) | ||||||
|     raise ValueError(u"Object is not an expression", obj) |     raise ValueError(u"Object is not an expression", obj) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user