Pre-compile templates (#3515)

* Pre-compile templates

* Compile templates in numeric_state condition
This commit is contained in:
Paulus Schoutsen 2016-09-25 13:33:01 -07:00 committed by GitHub
parent b3d67a7ed9
commit 0c0feda834
15 changed files with 134 additions and 80 deletions

View file

@ -46,6 +46,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
sensor_class = config.get(CONF_SENSOR_CLASS)
value_template = config.get(CONF_VALUE_TEMPLATE)
if value_template is not None:
value_template = template.compile_template(hass, value_template)
data = CommandSensorData(command)
add_devices([CommandBinarySensor(

View file

@ -37,6 +37,11 @@ PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({
# pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the MQTT binary sensor."""
value_template = config.get(CONF_VALUE_TEMPLATE)
if value_template is not None:
value_template = template.compile_template(hass, value_template)
add_devices([MqttBinarySensor(
hass,
config.get(CONF_NAME),
@ -45,7 +50,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
config.get(CONF_QOS),
config.get(CONF_PAYLOAD_ON),
config.get(CONF_PAYLOAD_OFF),
config.get(CONF_VALUE_TEMPLATE)
value_template
)])

View file

@ -45,6 +45,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
sensor_class = config.get(CONF_SENSOR_CLASS)
value_template = config.get(CONF_VALUE_TEMPLATE)
if value_template is not None:
value_template = template.compile_template(hass, value_template)
rest = RestData(method, resource, payload, verify_ssl)
rest.update()

View file

@ -73,7 +73,7 @@ class BinarySensorTemplate(BinarySensorDevice):
hass=hass)
self._name = friendly_name
self._sensor_class = sensor_class
self._template = value_template
self._template = template.compile_template(hass, value_template)
self._state = None
self.update()

View file

@ -42,7 +42,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
# pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the template sensors."""
"""Setup the trend sensors."""
sensors = []
for device, device_config in config[CONF_SENSORS].items():