Fix optional returns from templates

This commit is contained in:
Otto Winter 2018-06-06 09:48:59 +02:00
parent c82a44d541
commit 7068808d4f
No known key found for this signature in database
GPG key ID: DB66C0BE6013F97E
5 changed files with 14 additions and 9 deletions

View file

@ -3,7 +3,7 @@ import voluptuous as vol
import esphomeyaml.config_validation as cv import esphomeyaml.config_validation as cv
from esphomeyaml.components import binary_sensor from esphomeyaml.components import binary_sensor
from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME
from esphomeyaml.helpers import App, Application, process_lambda, variable from esphomeyaml.helpers import App, Application, process_lambda, variable, optional, bool_
MakeTemplateBinarySensor = Application.MakeTemplateBinarySensor MakeTemplateBinarySensor = Application.MakeTemplateBinarySensor
@ -15,7 +15,8 @@ PLATFORM_SCHEMA = binary_sensor.PLATFORM_SCHEMA.extend({
def to_code(config): def to_code(config):
template_ = None template_ = None
for template_ in process_lambda(config[CONF_LAMBDA], []): for template_ in process_lambda(config[CONF_LAMBDA], [],
return_type=optional.template(bool_)):
yield yield
rhs = App.make_template_binary_sensor(config[CONF_NAME], template_) rhs = App.make_template_binary_sensor(config[CONF_NAME], template_)
make = variable(config[CONF_MAKE_ID], rhs) make = variable(config[CONF_MAKE_ID], rhs)

View file

@ -5,7 +5,7 @@ from esphomeyaml import automation
from esphomeyaml.components import cover from esphomeyaml.components import cover
from esphomeyaml.const import CONF_CLOSE_ACTION, CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, \ from esphomeyaml.const import CONF_CLOSE_ACTION, CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, \
CONF_OPEN_ACTION, CONF_STOP_ACTION, CONF_OPTIMISTIC CONF_OPEN_ACTION, CONF_STOP_ACTION, CONF_OPTIMISTIC
from esphomeyaml.helpers import App, Application, NoArg, add, process_lambda, variable from esphomeyaml.helpers import App, Application, NoArg, add, process_lambda, variable, optional
MakeTemplateCover = Application.MakeTemplateCover MakeTemplateCover = Application.MakeTemplateCover
@ -25,7 +25,8 @@ def to_code(config):
if CONF_LAMBDA in config: if CONF_LAMBDA in config:
template_ = None template_ = None
for template_ in process_lambda(config[CONF_LAMBDA], []): for template_ in process_lambda(config[CONF_LAMBDA], [],
return_type=optional.template(cover.CoverState)):
yield yield
add(make.Ptemplate_.set_state_lambda(template_)) add(make.Ptemplate_.set_state_lambda(template_))
if CONF_OPEN_ACTION in config: if CONF_OPEN_ACTION in config:

View file

@ -15,7 +15,7 @@ def validate_frequency_bit_depth(obj):
bit_depth = obj.get(CONF_BIT_DEPTH, 12) bit_depth = obj.get(CONF_BIT_DEPTH, 12)
max_freq = APB_CLOCK_FREQ / (2**bit_depth) max_freq = APB_CLOCK_FREQ / (2**bit_depth)
if frequency > max_freq: if frequency > max_freq:
raise vol.Invalid('Maximum frequency for bit depth {} is {}'.format(bit_depth, max_freq)) raise vol.Invalid('Maximum frequency for bit depth {} is {}Hz'.format(bit_depth, max_freq))
return obj return obj

View file

@ -3,7 +3,7 @@ import voluptuous as vol
import esphomeyaml.config_validation as cv import esphomeyaml.config_validation as cv
from esphomeyaml.components import sensor from esphomeyaml.components import sensor
from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, CONF_UPDATE_INTERVAL from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, CONF_UPDATE_INTERVAL
from esphomeyaml.helpers import App, process_lambda, variable, Application from esphomeyaml.helpers import App, process_lambda, variable, Application, float_, optional
MakeTemplateSensor = Application.MakeTemplateSensor MakeTemplateSensor = Application.MakeTemplateSensor
@ -16,7 +16,8 @@ PLATFORM_SCHEMA = sensor.PLATFORM_SCHEMA.extend({
def to_code(config): def to_code(config):
template_ = None template_ = None
for template_ in process_lambda(config[CONF_LAMBDA], []): for template_ in process_lambda(config[CONF_LAMBDA], [],
return_type=optional.template(float_)):
yield yield
rhs = App.make_template_sensor(config[CONF_NAME], template_, rhs = App.make_template_sensor(config[CONF_NAME], template_,
config.get(CONF_UPDATE_INTERVAL)) config.get(CONF_UPDATE_INTERVAL))

View file

@ -5,7 +5,8 @@ from esphomeyaml import automation
from esphomeyaml.components import switch from esphomeyaml.components import switch
from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, CONF_TURN_OFF_ACTION, \ from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, CONF_TURN_OFF_ACTION, \
CONF_TURN_ON_ACTION, CONF_OPTIMISTIC CONF_TURN_ON_ACTION, CONF_OPTIMISTIC
from esphomeyaml.helpers import App, Application, process_lambda, variable, NoArg, add from esphomeyaml.helpers import App, Application, process_lambda, variable, NoArg, add, bool_, \
optional
MakeTemplateSwitch = Application.MakeTemplateSwitch MakeTemplateSwitch = Application.MakeTemplateSwitch
@ -24,7 +25,8 @@ def to_code(config):
if CONF_LAMBDA in config: if CONF_LAMBDA in config:
template_ = None template_ = None
for template_ in process_lambda(config[CONF_LAMBDA], []): for template_ in process_lambda(config[CONF_LAMBDA], [],
return_type=optional.template(bool_)):
yield yield
add(make.Ptemplate_.set_state_lambda(template_)) add(make.Ptemplate_.set_state_lambda(template_))
if CONF_TURN_OFF_ACTION in config: if CONF_TURN_OFF_ACTION in config: