diff --git a/homeassistant/util/template.py b/homeassistant/util/template.py index ad0fabdab53..f8fa2c70f8b 100644 --- a/homeassistant/util/template.py +++ b/homeassistant/util/template.py @@ -41,8 +41,9 @@ def render(hass, template, variables=None, **kwargs): try: return ENV.from_string(template, { - 'states': AllStates(hass) - }).render(kwargs) + 'states': AllStates(hass), + 'is_state': hass.states.is_state + }).render(kwargs).strip() except jinja2.TemplateError as err: raise TemplateError(err) diff --git a/tests/util/test_template.py b/tests/util/test_template.py index ba354f3e7be..1e34d999fa7 100644 --- a/tests/util/test_template.py +++ b/tests/util/test_template.py @@ -100,3 +100,11 @@ class TestUtilTemplate(unittest.TestCase): def test_raise_exception_on_error(self): with self.assertRaises(TemplateError): template.render(self.hass, '{{ invalid_syntax') + + def test_is_state(self): + self.hass.states.set('test.object', 'available') + self.assertEqual( + 'yes', + template.render( + self.hass, + '{% if is_state("test.object", "available") %}yes{% else %}no{% endif %}'))