* Addresses #135443: Set on connect.
* Make clean start implementation compatible with v2 API
* Add tests
* Do not pass default value for `clean_start` on_connect
* Revert "Do not pass default value for `clean_start` on_connect"
This reverts commit 75806736cf511a6d6b6496454843de34f05f7758.
* Use partial top pass kwargs to mqtt client connect
---------
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: jbouwh <jan@jbsoft.nl>
* Bump paho-mqtt client to version 2.1.0
* Remove commented code
* Bump pyeconet==0.1.26
* Ensure types-paho-mqtt==1.6.0.20240321 is uninstalled if test requirements are updated
* Update roombapy dependency
* Remove pyeconet from exceptions list
* Revert changes to install test requirements task
* 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>
Borrows the same design from homeassistant.helpers.storage to avoid
rescheduling the timer every time async_schedule is called if a timer
is already running.
Instead of the timer fires too early it gets rescheduled for the time
we wanted it. This avoids 1000s of timer add/cancel during startup
* Increase MQTT broker socket buffer size
* Revert unrelated change
* Try to increase buffer size
* Set INITIAL_SUBSCRIBE_COOLDOWN back to 0.5 sec
* Sinplify and add test
* comments
* comments
---------
Co-authored-by: J. Nick Koston <nick@koston.org>