feat: Add ability to listen for ready devices#664
Merged
allenporter merged 5 commits intoPython-roborock:mainfrom Dec 14, 2025
Merged
feat: Add ability to listen for ready devices#664allenporter merged 5 commits intoPython-roborock:mainfrom
allenporter merged 5 commits intoPython-roborock:mainfrom
Conversation
Add a callback that will be invoked when devices become ready. This is to allow non-blocking setup with dynamically connected devices. In the future we can periodically or asynchronously invoke discover_devices and automatically find new devices as they become available.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds a ready callback mechanism to notify consumers when Roborock devices become ready for use. This enables non-blocking device setup and lays groundwork for future dynamic device discovery.
Key changes:
- Introduces
DeviceReadyCallbacktype andadd_ready_callbackmethod onRoborockDevice - Integrates ready callback into
create_device_managerfor automatic notification when devices connect - Adds comprehensive test coverage for the ready callback feature
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| roborock/devices/device.py | Adds DeviceReadyCallback type, add_ready_callback method, and integrates callback invocation into connection logic; also increases START_ATTEMPT_TIMEOUT |
| roborock/devices/device_manager.py | Adds ready_callback parameter to create_device_manager and wires it to newly created devices |
| tests/devices/test_device_manager.py | Adds test_ready_callback test and updates test_start_connect_failure to verify callback behavior with connection failures and retries |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
… into device-ready
Lash-L
approved these changes
Dec 14, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a callback that will be invoked when devices become ready. This is to allow non-blocking setup with dynamically connected devices. In the future we can periodically or asynchronously invoke discover_devices and automatically find new devices as they become available.