Skip to main content

ENTR BLE

Your ENTR lock, over Bluetooth. A Python library, a command-line interface, and a Home Assistant integration sharing the same protocol implementation.

GitHub release Checks License: MIT

Choose your starting point

Use ENTR BLE to… Start here Component
Control a lock from dashboards and automations Home Assistant guide HACS custom integration
Set up a lock, manage keys, or control it from a terminal CLI guide entr-ble-cli command
Build your own application Python library guide entr-ble → EntrLockClient

The library is independent of the CLI and Home Assistant. Both frontends use its asynchronous API for pairing, encrypted sessions, and lock operations.

What you can do

  • Discover nearby locks and initialize a new lock or recover owner access.
  • Lock and unlock, read battery and reported door/lock status.
  • Create, activate, suspend, and revoke user keys.
  • Change settings, calibrate the lock and magnet, and read diagnostics on supported firmware.
  • Import CLI credentials into Home Assistant without enrolling again.

See feature coverage for the complete command matrix and firmware requirements, and protocol notes for the underlying BLE protocol.

Before you start

The Python packages require Python 3.14+ and a working Bluetooth adapter; the HACS integration requires Home Assistant 2026.9.3+ and connectable Bluetooth coverage.

ENTR has a single owner slot. Recovering ownership replaces the previous owner's credential. To keep the mobile app as owner, redeem an additional user key instead. Each component's guide explains the choice before setup.

Hardware observations come from an ENTR EURO with communication version 1.29r5. Firmware support varies, and reported state can be stale after manual operation. This is an independent project, unaffiliated with ASSA ABLOY.

Development

This repository is a uv workspace:

src/entr_ble/                  Python library
packages/entr-ble-cli/          CLI and local credential store
custom_components/entr_ble/    Home Assistant integration
docs/                        Feature coverage and protocol reference

From the repository root, install all packages and the isolated Home Assistant development dependencies. The full suite requires Python 3.14.2+.

uv sync --locked --all-packages --group hacs
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync basedpyright
uv run --no-sync python -m unittest discover -s tests -v
uv run --no-sync python -m unittest discover -s packages/entr-ble-cli/tests -v
uv build --all-packages --no-sources

Tests simulate BLE responses and do not operate a physical lock. The CI workflow also validates the integration with Hassfest and HACS. Builds produce separate library and CLI wheels and source distributions in dist/; hardware behavior still needs verification on the target lock.

Releases

All components release together with one version and changelog. Release Please prepares a release PR; merging it runs the checks, publishes both Python packages to PyPI, and publishes the matching GitHub release for HACS. See release setup and recovery.

Support and license

Report an issue with the component, software version, lock model, communication version if known, and the command or action that failed. Remove credentials and passwords from anything you share.

Licensed under the MIT License.

Metadata

Release files for entr-ble 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for entr-ble 1.0.0
File Size Uploaded
entr_ble-1.0.0.tar.gz 27.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entr-ble 1.0.0
File Interpreter ABI Platform
entr_ble-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 63.6 kB

Release files / entr_ble-1.0.0.tar.gz

Download URL entr_ble-1.0.0.tar.gz
Size 27.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fb41fb7a42cc33073e32b7eeb6517ca5a439b74807c92476192f589ad9054447
BLAKE2b-256 checksum
How to use checksums
bbb4fb34ced4d19c5e60b7a60d04bf8fb284555ccc01ecfae48e8f50beb429c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / entr_ble-1.0.0-py3-none-any.whl

Download URL entr_ble-1.0.0-py3-none-any.whl
Size 36.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99034d5fee4620cbe4836c61a3baf6ab107f11530f7aeafc7beacc63449431f6
BLAKE2b-256 checksum
How to use checksums
06eb0f57275dd45316163c99a08c5eb552eb53f79f5a552e92afaf193a9ee81c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page