core icon indicating copy to clipboard operation
core copied to clipboard

Add Anova integration

Open Lash-L opened this issue 2 years ago • 11 comments

Proposed change

Adding read only entities for Anova Sous Vides with Wifi support. Uses anova-wifi

Type of change

  • [ ] Dependency upgrade
  • [ ] Bugfix (non-breaking change which fixes an issue)
  • [x] New integration (thank you!)
  • [ ] New feature (which adds functionality to an existing integration)
  • [ ] Deprecation (breaking change to happen in the future)
  • [ ] Breaking change (fix/feature causing existing functionality to break)
  • [ ] Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request: https://github.com/home-assistant/home-assistant.io/pull/25851

Checklist

  • [x] The code change is tested and works locally.
  • [x] Local tests pass. Your PR cannot be merged unless tests pass
  • [x] There is no commented out code in this PR.
  • [x] I have followed the development checklist
  • [x] The code has been formatted using Black (black --fast homeassistant tests)
  • [x] Tests have been added to verify that the new code works.

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

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

  • [x] The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • [x] New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • [x] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
  • [x] Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

Lash-L avatar Jan 19 '23 22:01 Lash-L

I noticed that the docs mentioned YAML configuration. I don't think that will be accepted here per ADR 0010 integrations that communicate with a device/service should be config flow only.

dshokouhi avatar Jan 20 '23 03:01 dshokouhi

I noticed that the docs mentioned YAML configuration. I don't think that will be accepted here per ADR 0010 integrations that communicate with a device/service should be config flow only.

Thanks for the heads up! I have resolved that now

Lash-L avatar Jan 20 '23 14:01 Lash-L

Hi Lash-L

It seems you haven't yet signed a CLA. Please do so here.

Once you do that we will be able to review and accept this pull request.

Thanks!

home-assistant[bot] avatar Jan 22 '23 22:01 home-assistant[bot]

Hello. I have a couple of comments which might help improve the code a bit as well as the component itself

Thanks for the feedback! I agreed with everything you had to say, so I went ahead and applied them.

Lash-L avatar Jan 27 '23 22:01 Lash-L

Tested this PR using the corresponding HACS integration. I can confirm it works on my Anova AN500-US00 model. I get a set of entities that update as expected.

dshokouhi avatar Jan 29 '23 19:01 dshokouhi

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks :+1:

Learn more about our pull request process.

home-assistant[bot] avatar Feb 20 '23 23:02 home-assistant[bot]

Thank you for keeping the initial PR small 👍

Of course! Thank you for taking the time to review.

Lash-L avatar Feb 21 '23 17:02 Lash-L

Lets rename this to the Anova integration as they have multiple products and we don't want to end up with a seperate integration for each device type in the future.

https://anovaculinary.com/products/anova-precision-oven

bdraco avatar Feb 21 '23 17:02 bdraco

Lets rename this to the Anova integration as they have multiple products and we don't want to end up with a seperate integration for each device type in the future.

https://anovaculinary.com/products/anova-precision-oven

Can do.

so the new domain should be "anova"? I can go through and make that change here and on docs and on brands

Lash-L avatar Feb 21 '23 17:02 Lash-L

I am planning to add authentication to be able to control the sous vide. It is best if I wait for this PR to be merged and then add authentication correct?

Lash-L avatar Mar 03 '23 01:03 Lash-L

I ended up adding authentication to this PR, as it will completely change the config flow, so I figured it made more sense to have it as it will be for the long-term future. As well, it makes setup significantly easier for the end user.

If I need to revert it because you already partially reviewed this. Let me know and I will. It is a relatively small change, with most of the changes coming from the test config flow.

Thank you!

Lash-L avatar Mar 15 '23 20:03 Lash-L

image Functioning after all of our changes

Lash-L avatar Mar 29 '23 01:03 Lash-L

Bumped this and docs to 2023.5

Edit: rerun to try to fix checks

Lash-L avatar Mar 30 '23 17:03 Lash-L

Merging dev to fix frontend test

Lash-L avatar Apr 02 '23 19:04 Lash-L

merged to fix conflicts

Lash-L avatar Apr 07 '23 20:04 Lash-L

Let me know what else you need me to do for this. No rush, I know you have plenty going on! Would love to have this included in 2023.05 so I can add more functionality before 2023.06, but I completely understand if that doesn't happen.

Lash-L avatar Apr 20 '23 18:04 Lash-L

Not sure why that Mariadb one keeps failing- I assume it's just the ci pipeline being weird?

Lash-L avatar Apr 22 '23 21:04 Lash-L

Not sure why that Mariadb one keeps failing- I assume it's just the ci pipeline being weird?

I think I recently fixed that test. It might have just needed dev merged in

bdraco avatar Apr 22 '23 22:04 bdraco

Thanks bdraco! I appreciate all your help!

Lash-L avatar Apr 22 '23 23:04 Lash-L