Local Bluetooth control for supported Airbnk / WeHere smart locks in Home Assistant.
This custom integration keeps lock operation local over Home Assistant Bluetooth. The Airbnk or WeHere cloud is used only to acquire bootstrap material during setup or explicit refresh, and the integration stores only derived local keys after setup completes.
If your lock or mobile app is branded WeHere, this is still the right integration. In Home Assistant and HACS, the package name is still Airbnk BLE.
This is an unofficial open-source project from the community. It is not made by, sponsored by, endorsed by, or otherwise affiliated with Airbnk, WeHere, or their vendors in any way.
Use this integration at your own discretion and risk. You are responsible for deciding whether to connect it to your lock, Home Assistant instance, account, and network environment.
B100is the only live-tested and validated model today.M300,M500,M510,M530, andM531are included through shared protocol and fixture coverage, but should still be treated as community-validated until more live testing lands.M521support is provisional, and newly observed Airbnk lock models may use the generic fallback profile when they appear to follow the shared Airbnk protocol.
Before you install this integration, make sure you have all of the following:
- A working Home Assistant installation.
- A working Home Assistant Bluetooth path.
You need one of these:
- a local Bluetooth adapter connected to your Home Assistant machine
- an ESPHome Bluetooth proxy near the lock
- The lock must be close enough to that adapter or proxy for reliable BLE communication.
- One supported Airbnk / WeHere lock.
- Either:
- an Airbnk or WeHere account email that can access the lock
- or the manual bootstrap values for the lock:
lock_sn,newSninfo, andappKey
You do not need both a local adapter and a BLE proxy. One working Bluetooth path is enough.
If you do not already have Bluetooth working in Home Assistant, stop here and get that working first:
- Home Assistant Bluetooth integration docs
- ESPHome Bluetooth Proxy docs
- ESPHome ready-made Bluetooth Proxy projects
This integration will not work unless Home Assistant already has a reliable BLE path to the lock.
Use this if your Home Assistant machine is physically close enough to the lock.
Basic checklist:
- Plug in a supported Bluetooth adapter if your Home Assistant hardware does not already have one.
- In Home Assistant, go to
Settings -> Devices & Services -> Add Integration -> Bluetooth. - Confirm Home Assistant sees the adapter.
- If the adapter is unreliable, use a short USB extension cable and move it away from USB 3 ports, metal enclosures, and other radio noise.
- Put the adapter as close to the lock as practical.
Important:
- Home Assistant OS is usually the easiest local-adapter path.
- Home Assistant Container needs extra Bluetooth and D-Bus setup. Follow the official Bluetooth docs above before trying this integration.
Use this if Home Assistant is not close to the lock, is virtualized, or you want better BLE coverage.
Basic checklist:
- Get an ESP32 board.
- Flash it as an ESPHome Bluetooth proxy.
- Add that ESPHome device to Home Assistant.
- In Home Assistant, open
Settings -> Devices & Services -> Bluetoothand confirm the proxy appears there. - Place the proxy near the lock, not inside a metal rack and not right next to Wi-Fi gear, switches, or routers.
Notes:
- A Bluetooth proxy is often the better choice for BLE locks.
- Ethernet-based proxies are usually the most reliable.
- Wi-Fi proxies work too, but placement matters more.
- Open HACS.
- Add this repository as a custom integration.
- Install
Airbnk BLE. - Restart Home Assistant.
- Go to
Settings -> Devices & Services. - Select
Add Integration. - Search for
Airbnk BLE. If your lock is brandedWeHere, still search forAirbnk BLE.
Before adding Airbnk BLE, make sure Home Assistant already has Bluetooth working.
You should be able to open Settings -> Devices & Services -> Bluetooth and see at least one usable adapter or proxy there.
If you cannot do that yet, fix Bluetooth first. This integration depends on Home Assistant Bluetooth and does not replace it.
If Bluetooth is healthy and your lock is nearby, Home Assistant may also discover the lock automatically and show Airbnk BLE in the discovered integrations list. That auto-discovery only helps when Home Assistant has a connectable BLE path to the Airbnk or WeHere lock.
Once Bluetooth is working:
- Go to
Settings -> Devices & Services. - Select
Add Integration. - Choose
Airbnk BLE. Even for WeHere-branded locks, the integration name isAirbnk BLE. - Pick one of the setup modes below.
Use this if you can log in to Airbnk or WeHere and the account can access the lock.
What you do:
- Enter the Airbnk or WeHere account email.
- Request the verification code.
- Enter the verification code from email.
- Pick the lock from the list.
- Let the integration derive the local operating keys.
- Choose the discovered Bluetooth address for the lock, if Home Assistant found it.
- Save the entry.
What the integration stores:
- derived local operating keys
- lock serial number
- Bluetooth address
- model/profile information
- battery profile and runtime options
What the integration does not keep after setup:
- raw cloud token
- raw
appKey - raw
newSninfo - verification code
Important: the Airbnk cloud may sign the mobile app out if the same account is reused. A separate shared-access account is safer.
Plus-address email aliases such as name+airbnk@example.com are supported for cloud login.
Use this if you already have the lock's manual bootstrap values.
Most people should use Cloud setup. Manual is for advanced users who already have these values from earlier tooling or reverse-engineering work.
What you need:
lock_snnewSninfoappKey
What you do:
- Enter the lock name.
- Enter
lock_sn,newSninfo, andappKey. - Let the integration derive the local keys.
- Choose the discovered Bluetooth address for the lock, or enter the MAC address manually if discovery did not find it.
- Save the entry.
The raw manual values are used only during setup to derive local keys and are not stored afterwards.
After setup finishes:
- Open the new lock entity in Home Assistant.
- Try
Unlock. - Try
Lock. - If your lock exposes latch-release behavior, try
Open.
If commands are slow, fail, or the state does not update reliably, the problem is usually BLE coverage or interference rather than the setup flow.
Some Airbnk models default to unlock/open-only until their locking behavior is
validated. If Home Assistant says the Lock command is turned off, open the
configured Airbnk BLE entry under Settings -> Devices & Services, choose
Configure, and turn on Enable Lock command if your hardware supports
Bluetooth locking and pressing Lock should lock it.
The same options screen also includes:
Enable Unlock/Open command: leave this on if pressingUnlockorOpenshould unlock or release the latch.Add a Cover entity for Open/Close: adds acoverentity for dashboards or automations that expect open/close controls. CoverOpenuses the Unlock/Open command. CoverCloseuses the Lock command, soEnable Lock commandmust also be on.Swap lock and unlock commands: use this only if your specific hardware acts reversed.
- Native
lockentity withopensupport - Optional per-lock
coverentity for open/close control surfaces - Per-lock overrides for remote lock and unlock command support
- Bluetooth discovery support for matching lock adverts to setup flows
- Per-lock config entries
- Arbitrary battery interpolation profiles stored as voltage/percent breakpoints
- Reconfigure flows for Bluetooth rediscovery and bootstrap refresh
- Sanitized diagnostics output
If you want to remove Airbnk BLE cleanly:
- Go to
Settings -> Devices & Services. - Open the
Airbnk BLEentry for the lock. - Choose
Delete. - If you no longer want the package installed at all, remove it from HACS too.
- Restart Home Assistant if you also removed the integration package from HACS.
Removing the config entry does not modify the lock itself. It only removes Home Assistant's local configuration for that lock.
This project builds on two streams of prior work:
- The local BLE runtime and lock behavior started from an earlier private BLE integration and was generalized into this standalone integration.
- The cloud login and bootstrap acquisition flow was adapted from rospogrigio/airbnk_mqtt, which helped validate the Airbnk / WeHere auth path and bootstrap handling. This repository stays local-first and stores only derived local keys after setup.
Only the B100 has been tested end to end against real hardware so far.
Other supported models, provisional profiles, and generic fallback matches
should be treated as community or experimental coverage until more live testing
lands.
Check these first:
- Confirm
Bluetoothis working in Home Assistant before blaming this integration. - Move the Bluetooth adapter or BLE proxy closer to the lock.
- Wake the lock if it sleeps aggressively.
- Refresh the Airbnk BLE setup flow and try again.
- If using a local USB adapter, move it away from USB 3 ports and noisy hardware.
This usually means BLE connectivity is weak or unstable.
Try:
- Moving the adapter or proxy closer to the lock.
- Using an ESPHome BLE proxy instead of a distant USB adapter.
- Using an Ethernet-based BLE proxy if possible.
- Reducing radio interference by moving the adapter or proxy away from routers, switches, and metal enclosures.
If you run Home Assistant in a container, Bluetooth needs extra host and container setup. If Bluetooth itself is not healthy, this integration will not be healthy either.
Use the official Bluetooth docs:
That can happen with Airbnk or WeHere.
The safest approach is to use a separate shared-access account for Home Assistant if possible.
B100 is the model we have validated end to end on real hardware so far, so it currently has the strongest real-world coverage.