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

[meta] Plans for 0.6 series #1114

Open
17 of 22 tasks
rytilahti opened this issue Aug 13, 2021 · 3 comments
Open
17 of 22 tasks

[meta] Plans for 0.6 series #1114

rytilahti opened this issue Aug 13, 2021 · 3 comments
Milestone

Comments

@rytilahti
Copy link
Owner

rytilahti commented Aug 13, 2021

This meta task will track the progress and tasks to do for the next major release, which aims to simplify the use of the library for downstream users and reorganize the organically grown code base to be more maintainable.

This issue will give an overview of the planned changes, which are discussed more in-depth under their corresponding issues linked below as they get written. This meta issue shall serve as a checklist for the changelog, and is open for discussions.


Repository structure

  • Motivation: all source files are currently stored in the main miio directory for historical reasons, making it messy.
  • Goal: by splitting each individual implementation (integration?) and files related to it (e.g., tests and some data files) will clean up the code base.

Tasks


"Device factory"

  • Motivation: there is currently no way to construct device instances just by knowing their host and the token, making it necessary for downstreams to import the classes implementing the support and initializing it separately based on model information (or simply supporting a single implementation, like done by homeassistant's vacuum platform).
  • Goal: allow initializing device-derived objects by simply knowing their host and the token which simplifies downstream implementations.

Tasks


Common APIs

  • Motivation: adding support for devices of the same device class (e.g., vacuums) is cumbersome as there is no well-defined API among the different implementations.
  • Goal: provide device-type based base classes to make adding support for new device integrations on downstream just a matter of upgrading the python-miio.

Tasks


MiOT support

  • Motivation: all new devices are using miot instead of custom protocols to control devices, so it makes sense to add first class support to the library.
  • Goal: all miot supporting devices can be controlled as long as internet-connectivity is available to fetch the required schema file.

Tasks


Other changes

@rytilahti rytilahti added this to the 0.6.0 milestone Aug 13, 2021
@rytilahti rytilahti pinned this issue Aug 13, 2021
This was referenced Jan 4, 2023
@hmmbob
Copy link

hmmbob commented Jul 4, 2024

Is this project still maintained @rytilahti?

Hundreds of open issues here and dozens at the HA repo, all awaiting for this famous 0.6.0 version. Any stable release in sight already?

Can't help to notice that the 0.6.0 milestone is running for almost 3 years already.

@rytilahti
Copy link
Owner Author

Well, sort of, I try to fix issues that are reported, merge contributions, etc. But as I don't really have test devices and I personally use this rather seldom, it hasn't been my priority.

I did a pre-release earlier to make it easier to start porting the home assistant integration & gather some issue reports, but alas, it didn't gather much interest nor contributors.

I'm still planning to create a release at some point, hopefully by autumn, when I find enough time & motivation, but I wouldn't really want to release something that may break things for existing users, as the library is seemingly used and downloaded by many as it is.

So if you want to help, a good starting point would be by porting the current home assistant integration to use the pre-release (as there should not be that many API breaking changes). I have a separate repository for a custom integration that rewrites the whole integration to use the new APIs to support more devices, but getting it into the home assistant core will require much more effort. Any help with that is also welcome!

@hmmbob
Copy link

hmmbob commented Jul 4, 2024

Clear! Thanks 😄

Is the custom_integration easy to run in parallel (or maybe on top of) the core integration?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants