Skip to content

honsma235/pybeckerplus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pybeckerplus

Warning

Work in Progress: This library is currently in early development and is not considered production-ready. Use it with caution and expect potential breaking changes.

A Python library implementing the Becker Centronic Plus USB protocol using asyncio. This library was designed to be used in this custom Home Assistant integration to control Centronic Plus devices via a Becker Centronic Plus USB stick (ordering codes 4036 200 001 0 or 4036 000 009 0).

Important

This integration does not work with the older non-Plus Centronic USB sticks (4035 200 041 0 or 4035 000 041 0)!

Features

  • Async-first: Built on serialx for high-performance, non-blocking I/O
  • Device Registry: Automatically tracks device states (position, status bits, names).
  • Global Discovery: Support for automated mesh-wide status and info requests.
  • Activity Polling: Optional status updates while devices are moving or recovering.

Known Limitations

  • Currently only tested with roller shutter drives of the C01 PLUS series.
  • It likely does not yet support the EVO 20 R PLUS series or sun protection drives of the Cxx PLUS series.
  • Does not support pairing the Becker USB stick with covers or performing initial commissioning. This functionality is not yet implemented to ensure setup reliability.

Tip

Pairing and initial commissioning (e.g., setting end-stop positions) can be performed using a computer or mobile device with the Becker Tool app, available on the Microsoft Store, Google Play Store, and Apple App Store.

Caution

Configuring end-stops is a critical task. Incorrect settings can lead to hardware damage. It is your responsibility to ensure you follow the manufacturer's instructions or consider hiring a professional installer.

Documentation

For detailed information about the communication protocol, see the Protocol Description.

CLI Usage

You can test your USB stick directly from the command line:

# Run the monitor tool (Linux)
python tools/cli.py /dev/ttyUSB0

# Run the monitor tool (Windows)
python tools/cli.py COM3

Development

Setup

  1. Install uv if you haven't already.
  2. Clone the repository and run:
uv sync --all-groups

This automatically installs the correct Python version, creates a virtual environment, and installs all core and development dependencies.

Developer checks

Run these before committing changes:

uv run ruff format
uv run ruff check --fix
uv run ty check
uv run pytest

Release process

When publishing a new version:

  1. Update version in pyproject.toml and __init__.py.
  2. Run the developer checks above.
  3. Update the package:
uv sync
  1. Commit the version bump using a clear message, for example bump version.
  2. Create and push an annotated tag, e.g.:
git tag -a v0.2.4 -m "Release v0.2.4"
git push origin --tags

About

Python library implementing the Becker Centronic Plus USB protocol

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages