Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add availability_template to Template Switch platform #26513

merged 17 commits into from Sep 25, 2019


Copy link

commented Sep 8, 2019

Breaking Change:

Not a Breaking change


This PR adds an availability_template option to Template Switch platform.

By defining the availability_template the availability of a Template Switch can be controlled using a template.

As Template Components rely on other component states, (i.e. they do not have state themselves) it would be useful to also be able to control when a component is unavailable. e.g. when a component that the template component relies on to function becomes 'unavailable' it would be useful to be able to mark the template component as 'unavailable' also.

If the availability_template is not configured, the device will always be 'available' (default behavior)

If the availability_template is configured, the device will be 'available' if the template returns true or 'unavailable' if the template returns any other value.


Example entry for configuration.yaml (if applicable):

For a Template Switch platform component that requires a 'switch.some_sensor' to be available to operate:

  - platform: template
        availability_template: >-
          {%- if not is_state("switch.some_sensor", "unavailable") %}
          {%- endif %}


  • The code change is tested and works locally.
  • Local tests pass with tox. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • [N/A] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
  • [N/A] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
  • [N/A] Untested files have been added to .coveragerc.

If the code does not interact with devices:

  • Tests have been added to verify that the new code works.
@MartinHjelmare MartinHjelmare changed the title Added availability_template to Template Switch platform Add availability_template to Template Switch platform Sep 14, 2019
Dev automation moved this from Needs review to Reviewer approved Sep 25, 2019
@balloob balloob merged commit cd976b6 into home-assistant:dev Sep 25, 2019
8 of 11 checks passed
8 of 11 checks passed
CI Build #20190924.100 failed
CI (FullCheck Pylint) FullCheck Pylint failed
codecov/patch 93.54% of diff hit (target 94.14%)
CI (FullCheck Mypy) FullCheck Mypy succeeded
CI (Overview CheckFormat) Overview CheckFormat succeeded
CI (Overview Lint) Overview Lint succeeded
CI (Overview Validate) Overview Validate succeeded
CI (Tests PyTest Python36) Tests PyTest Python36 succeeded
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
cla-bot Everyone involved has signed the CLA
codecov/project 94.15% (target 90%)
Dev automation moved this from Reviewer approved to Done Sep 25, 2019
@grillp grillp deleted the grillp:dev-avail-template-switch branch Sep 26, 2019
@lock lock bot locked and limited conversation to collaborators Sep 27, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
4 participants
You can’t perform that action at this time.