Add MotionBlinds BLE integration
Proposed change
This integration adds support for MotionBlinds motors that allow for Bluetooth Low Energy (BLE) communication. Support for all the different blind types is included, with functionality such as position, tilt and auto-calibration (for curtain motors specifically, vertical motors need to be programmed from within the MotionBlinds BLE mobile application). The integration will also automatically notify the user if end positions or favorite position are not set, meaning the blind can't be controlled.
MotionBlinds motors use a BLE connection (no advertisements), therefore the integration will automatically connect once the blind is controlled from Home Assistant, and stay connected for a specified period of time. Since the blind position is unknown when not connected, these attributes also change to 'unknown' status in Home Assistant. The homeassistant.update_entity can be used to periodically update the entity data such as cover position (which will simply connect to the blind and request position, tilt, battery percentage etc.).
The next PRs will include 3 additional platforms: button (to manually connect/disconnect or make the blind move to the favorite position), select (for motors that have the ability to change the speed), and sensor (to see connection status, calibration status if applicable, RSSI and battery percentage).
PyPi library: https://pypi.org/project/motionblindsble/
Type of change
- [ ] Dependency upgrade
- [ ] Bugfix (non-breaking change which fixes an issue)
- [x] New integration (thank you!)
- [ ] New feature (which adds functionality to an existing integration)
- [ ] Deprecation (breaking change to happen in the future)
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
Additional information
- This PR fixes or closes issue:
- This PR is related to issue:
- Link to documentation pull request: https://github.com/home-assistant/home-assistant.io/pull/31224
Checklist
- [x] The code change is tested and works locally.
- [x] Local tests pass. Your PR cannot be merged unless tests pass
- [x] There is no commented out code in this PR.
- [x] I have followed the development checklist
- [x] I have followed the perfect PR recommendations
- [x] The code has been formatted using Ruff (
ruff format homeassistant tests) - [x] Tests have been added to verify that the new code works.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated for www.home-assistant.io
If the code communicates with devices, web services, or third-party tools:
- [x] The manifest file has all fields filled out correctly.
Updated and included derived files by running:python3 -m script.hassfest. - [x] New or updated dependencies have been added to
requirements_all.txt.
Updated by runningpython3 -m script.gen_requirements_all. - [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
- [x] Untested files have been added to
.coveragerc.
To help with the load of incoming pull requests:
- [ ] I have reviewed two other open pull requests in this repository.
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks :+1:
Thanks @LennP
Note that there are still other reviewer request changes on this PR that need to be cleared by the reviewer before this can be merged
Thank you too for the review! @joostlek could you have a look at your request changes that I have resolved and approve them?
Please don't ping asking for reviews
https://developers.home-assistant.io/docs/review-process?_highlight=ping#what-not-to-do
Please don't ping asking for reviews
https://developers.home-assistant.io/docs/review-process?_highlight=ping#what-not-to-do
Sure I understand, but this doesn't need another review right? I resolved all the issues that he addressed more than 2 weeks ago.
I have no way of knowing if his review comments have been addressed to his satisfaction, as he hasn't cleared the request changes. It needs to wait for that to happen, or at least a few days to give him a chance have time to respond following an approval.
I have no way of knowing if his review comments have been addressed to his satisfaction, as he hasn't cleared the request changes. It needs to wait for that to happen, or at least a few days to give him a chance have time to respond following an approval.
The reason I pinged him is because his reviews had already been resolved 2 weeks ago, so I figured he may have forgotten to approve the changes and surely in that case it would not be too inappropriate to remind someone with a ping right? Or is there a bot that takes care of situations like this? Either way I'll just wait for a few days, thank you
I got very busy with working on my thesis, hence the delay :)
I got very busy with working on my thesis, hence the delay :)
I understand, thank you!