* Move entry options to entry.options en remove broker setup from mqtt option flow
* UPdate diagnostics to export both entry data and options
* Parameterize entry options directly not depending on migration
* Update tests to use v2 entry and add separate migration test
* use start_reconfigure_flow helper
* Update quality scale comment
* Do minor entry upgrade, and do not force to upgrade entry
* Ensure options are read from older entries
* Add comment
* Follow up on code review
* Assert config entry version checking the broker connection
* Update comment
* Allow MQTT device based auto discovery
* Fix merge error
* Remove unused import
* Fix discovery device based topics
* Fix cannot delete twice
* Improve cleanup test
* Follow up comment
* Typo
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Explain more
* Use tuple
* Default a device payload to have priority over a platform based payload
* Add unique_id to sensor test data
* Set migration flag to mark a discovery topic for migration
* Correct type hint
* Make unique_id required for components in device based discovery payload
* Remove CONF_MIGRATE_DISCOVERY from platform schema
* Unload discovered MQTT item to allow migration
* Follow up comments from code review
* ruff
* Subscribe to platform discovery wildcards first
* Use normal dict
* Use dict to persist wildcard subscription order
* Remove missed unused parameter
* Add a comment to explain we use a dict to preserve the subscription order
* Add wildcard subscription order test
* Remove discovery flag from test
* Improve discovery migration origin logging
* Assert initial wildcard discovery topics subscription order and after reconnect
* Improve log messages
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add fixture to synchronze with debouncer in MQTT tests
* Migrate more tests to use the debouncer
* Migrate more tests
* Migrate util tests
* Improve mqtt on_callback test using new fixture
* Improve test_subscribe_error
* Migrate other tests
* Import EnsureJobAfterCooldown from `util.py` but patch `client.py`
* Add MQTT device based auto discovery
* Respect override of component options over shared ones
* Add state_topic, command_topic, qos and encoding as shared options
* Add shared option test
* Rename device.py to schemas.py
* Remove unused legacy `platform` attribute to avoid confusion
* Split validation device and origin info
* Require `origin` info on device based discovery
* Log origin info for only once for device discovery
* Fix tests and linters
* ruff
* speed up _replace_all_abbreviations
* Fix imports and merging errors - add slots attr
* Fix unrelated const changes
* More unrelated changes
* join string
* fix merge
* Undo move
* Adjust logger statement
* fix task storm to load platforms
* Revert "fix task storm to load platforms"
This reverts commit 8f12a5f2511ab872880a186f5a4605c8bae80c7d.
* bail if logging is disabled
* Correct mixup object_id and node_id
* Auto migrate entities to device discovery
* Add device discovery test for device_trigger
* Add migration support for non entity platforms
* Use helper to remove discovery payload
* Fix tests after update branch
* Add discovery migration test
* Refactor
* Repair after rebase
* Fix discovery is broken after migration
* Improve comments
* More comment improvements
* Split long lines
* Add comment to indicate payload dict can be empty
* typo
* Add walrus and update comment
* Add tag to migration test
* Join try blocks
* Refactor
* Cleanup not used attribute
* Refactor
* Move _replace_all_abbreviations out of try block
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Shared fixture on TEMP_DIR_NAME mock in MQTT tests
* Improve mqtt certificate file tests
* Update tests/components/mqtt/test_util.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update tests/components/mqtt/conftest.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Avoid blocking code
* typo in sub function
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Unused pylint suppression cleanups
* Remove outdated pylint bug references
* Add flake8-noqa config and note to run it every now and then
* Add codes to noqa's
* Unused noqa cleanups
* Move mqtt_mock to tests/components/mqtt/conftest.py
* Move mqtt room presence sensor test to tests/components/mqtt
* Revert "Move mqtt room presence sensor test to tests/components/mqtt"
This reverts commit e08bc143
* Decouple mqtt room presence sensor test and mqtt_mock