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 Sensor platform #26516

Merged
merged 15 commits into from Sep 24, 2019

Conversation

@grillp
Copy link
Contributor

commented Sep 8, 2019

Breaking Change:

Not a Breaking change

Description:

This PR adds an availability_template option to Template Sensor platform.

By defining the availability_template the availability of a Template Sensor 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.

Closes #25918

Docs PR:

home-assistant/home-assistant.io#10308

Example entry for configuration.yaml (if applicable):

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

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

Checklist:

  • 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.
@grillp

This comment has been minimized.

Copy link
Contributor Author

commented Sep 13, 2019

Not sure why the coverage is failing here as my changes have improved coverage..??

Dev automation moved this from Needs review to Review in progress Sep 13, 2019
homeassistant/const.py Outdated Show resolved Hide resolved
@MartinHjelmare MartinHjelmare changed the title Added availability_template to Template Sensor platform Add availability_template to Template Sensor platform Sep 14, 2019
@MartinHjelmare

This comment has been minimized.

Copy link
Member

commented Sep 14, 2019

This PR and #25918 seem to implement the same feature but in slightly different ways.

@MartinHjelmare MartinHjelmare referenced this pull request Sep 14, 2019
6 of 6 tasks complete
@grillp

This comment has been minimized.

Copy link
Contributor Author

commented Sep 15, 2019

Hey @MartinHjelmare , Yes it does. I mentioned that to the @Limych in tin his PR when I already had my original 'too big' pull request that added this feature to all the template components (#25918 (comment)).. But it seems he just pressed on anyway.
So not sure which you want to go with. His is slightly different. Mine is consistent across the 8 PRs. Do I need to change my other 7 to be consistent with his approach? or do we use mine?

@MartinHjelmare

This comment has been minimized.

Copy link
Member

commented Sep 15, 2019

@balloob and @pvizeli should say as they are reviewing these PRs.

@pvizeli

This comment has been minimized.

Copy link
Member

commented Sep 16, 2019

@MartinHjelmare he implements this on every template, not only sensor. Of curse, they need to adjust somethings bug after the experience of this review, he can fix the others and we have a complete solution.

@MartinHjelmare

This comment has been minimized.

Copy link
Member

commented Sep 16, 2019

Yes. Should we close the other PR?

@pvizeli

This comment has been minimized.

Copy link
Member

commented Sep 17, 2019

Set the available around the state render like the other PR. Is important that the available is false if the state is Unknown. And I don't think you need a const for xy.lower() == "true"

After you address that comments, we can merge it 👍 good work

@grillp

This comment has been minimized.

Copy link
Contributor Author

commented Sep 17, 2019

OK. Will check that out..

@grillp

This comment has been minimized.

Copy link
Contributor Author

commented Sep 17, 2019

@pvizeli please check if this is what you mean and I will update to the other PRs.

Dev automation moved this from Review in progress to Reviewer approved Sep 24, 2019
@pvizeli

This comment has been minimized.

Copy link
Member

commented Sep 24, 2019

Now you can address other PRs too

@pvizeli pvizeli merged commit 161c8aa into home-assistant:dev Sep 24, 2019
9 checks passed
9 checks passed
CI Build #20190922.19 succeeded
Details
CI (FullCheck Mypy) FullCheck Mypy succeeded
Details
CI (FullCheck Pylint) FullCheck Pylint succeeded
Details
CI (Overview CheckFormat) Overview CheckFormat succeeded
Details
CI (Overview Lint) Overview Lint succeeded
Details
CI (Overview Validate) Overview Validate succeeded
Details
CI (Tests PyTest Python36) Tests PyTest Python36 succeeded
Details
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
Details
cla-bot Everyone involved has signed the CLA
Dev automation moved this from Reviewer approved to Done Sep 24, 2019
@grillp

This comment has been minimized.

Copy link
Contributor Author

commented Sep 24, 2019

@lock lock bot locked and limited conversation to collaborators Sep 25, 2019
@grillp grillp deleted the grillp:dev-avail-template-sensor branch Sep 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Dev
  
Done
5 participants
You can’t perform that action at this time.