Python API for communicating with MiBand2
Project description
MiBand2 Python API based on bleak
The library provides convenient APIs to control and read data of MiBand2.
Supported features
- sending notifications
- date/time setup and reading
- onetime alarm setup
- reading battery level
Usage
import asyncio
import bleak
from miband2 import Band2, Key, NotificationType as NT
from datetime import datetime
KEY = Key(
key=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05',
reset=True # note *
)
async def main():
located_band = await scan_bands(timeout=15)
client = bleak.BleakClient(located_band, timeout=15)
async with Band2(client) as band:
auth_status = await band.auth(KEY)
print(f"auth status: {auth_status}")
battery_level = await band.get_battery()
print(f"battery: {battery_level}")
await band.ring(NT.SINGLE)
now = datetime.now()
await band.set_datetime(now)
async def scan_bands(timeout):
def bands_only(dev, adv):
return "MI Band" in dev.name
return await bleak.BleakScanner.find_device_by_filter(timeout=timeout, filterfunc=bands_only)
asyncio.run(main())
Note: key reset is required for the first time only. Later, one can auth with the same key setting the reset=False
Why?
This project initially helped me to learn BLE. My old Band2 got its second life when I started to learn BLE and became curious if I can communicate with the device using a Linux machine. This Band2 device acted as an oracle visually confirming if I craft packets correctly. The fact of a visual feedback in a form of a notification or displaying a newly set time provided some incentive to me and made learning funnier than it could be if relying solely on reading books.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file expmiband2-0.1.3.tar.gz
.
File metadata
- Download URL: expmiband2-0.1.3.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 389d07a5fead467a75213497e6adc86c93706f607833daf4084ea5af4e85f72e |
|
MD5 | 679ae0a7b5490d0bd22d55175b7ef38c |
|
BLAKE2b-256 | cd0b8b45dc821a93c014416a11e4ed85118d4f6aead19544cafb6d09ccabaf12 |
File details
Details for the file expmiband2-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: expmiband2-0.1.3-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e411c9927dd92829bf3abf6e7e21880739dc67d5a6c06b446dbe969a21c8002 |
|
MD5 | 9c5eb53d15278cfcb0606c166fdfcdc3 |
|
BLAKE2b-256 | 08e473dbeadc8d069bc1482b750ad9d1b9ff67edbf9b148f0c9a6b034690994a |