-
-
Notifications
You must be signed in to change notification settings - Fork 32.3k
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 hyperion config options flow #43673
Conversation
* Add initial skeletal config flow. * Deprecate all remaining YAML options. * Add basic config_entry plumbing. * Add priority and name plumbing. * Add token support. * Add auth handling. * Test correct abort message is used. * Variable tidy. * Break out instance into a separate stage/form. * Add zeroconf step. * Add flow diagram. * Use IP address rather than hostname for zeroconf. * Add zeroconf support and final confirmation. * Update http port comment and remove TODO for now. * Back out instances support, the entry is for the Hyperion server. * Dynamic instance creation/deletion. * Convert tests to use config entries by default * Test unload. * Argument cleanup. * Test YAML key * Add automatic migration from YAML to config entry * Various pylint fixes * Remove completed TODO * Add unique_id comment. * Add to the domain to the id for extensibility. * Update unique_id comment. * Add skeletal options flow. * Add strings for options flow. * Plumb options through to entity. * Add strings entry for already_in_progress. * Set unique_id as early as possible for Zeroconf. * Ensure entry_id actually exists in data. * Fix bug in dynamic token creation. * Use context manager for connections. * Lint fixes * Migrate options from YAML. * Add SSDP support. * Fix duplicate SSDP discoveries., * Remove zeroconf support (as SSDP is used anyway). * Fix migration bug of old unique_id values. * Add test for new style unique_id without config * Remove domain from unique_id. * Add log entry for migration * Change title to host:port rather than id. * Rely on the latest hyperion-py * Fix merge error AsyncMock -> CoroutineMock. * Test some additional error conditions. * Phase 1 fixes for codereview * Rearrange flow steps as per code review. * Update flow diagram * Minor diagram update * Re-arrange loading logic as per codereview. * Remove TODO. * Remove options flow and save for a future PR. * Remove TODO as it fails pylint. * Address @balloob code review feedback * Codereview fixes for @MartinHjelmare (Part 1) * Codereview fixes for @MartinHjelmare (Part 2) * Codereview fixes for @MartinHjelmare (Part 3) * pylint fix. * Codereview fixes for @MartinHjelmare (Part 4) * Codereview fixes for @MartinHjelmare (Part 4) * pylint fixes. * Codereview fixes for @MartinHjelmare (Part 5) * Codereview fixes for @MartinHjelmare (Part 6)
* Add options flow and tests. * Codereview fixes for @MartinHjelmare (Part 1) * Use relative import
* Add rigorous type hinting to Hyperion * Typing/lint fixes and bump hyperion-py version * Add type definition for effect_list. * Fix mypy when run w/o the underlying hyperion-py
* Add name to entity unique ids for future extensibility * Bump the Hyperion version we warn at * Use a type name instead of the light domain
@MartinHjelmare Time to get out of this special branch! As you previously requested, here is a draft PR to merge I have locally tested the resultant merge into dev (both unittests and functionality sanity check). This PR description is unchanged from when I started down this rabbit hole. The only alteration is a new PR to update the documentation: home-assistant/home-assistant.io#15763 Thank you! |
* Allow more time until config option invalidation * Restore the invalidation of CONF_HDMI_PRIORITY * Remove invalidation_version as flags used in tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great!
Hi @MartinHjelmare , anything left to do before merging this in and closing out this special branch? Thank you! |
Breaking change
Adds Hyperion config flow, with automated migration between YAML configuration to config entries. Every attempt is made to preserve entity_ids, but they may change during this migration.
Proposed change
Type of change
Example entry for
configuration.yaml
:None.
Additional information
Checklist
black --fast homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
..coveragerc
.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: