Python Library for Ember Mugs.
Project description
Python Ember Mug
Python Library for Ember Mugs
- Documentation: https://sopelj.github.io/python-ember-mug
- GitHub: https://github.com/sopelj/python-ember-mug
- PyPI: https://pypi.org/project/python-ember-mug/
- Free software: MIT
Summary
Library to attempt to interact with Ember Mugs via Bluetooth using the bleak library. This was created for use with my Home Assistant integration, but could be useful separately and has a simple CLI interface too.
Note: I have only tested with my Ember Mug 2, but others should work. (Please let me know)
Features
- Finding mugs
- Connecting to Mugs
- Reading Information (Colour, temp, liquid level, etc.)
- Polling for changes
Usage
Python
from ember_mug.scanner import find_mug, discover_mugs
from ember_mug.mug import EmberMug
# if first time with mug in pairing
mugs = await discover_mugs()
device = mugs[0]
# after paired you can simply use
device = await find_mug()
mug = EmberMug(device)
async with mug.connection() as con:
print('Connected.\nFetching Info')
await con.update_all()
print(mug.formatted_data)
CLI
It can also be run via command line either directly with ember-mug --help
or as a module with python -m ember_mug --help
There are four options with different subsections. You can see them by specifying them before help. eg ember-mug poll --help
ember-mug discover # Finds the mug in pairing mode for the first time
ember-mug poll # fetches info and keeps listening for notifications
Basic options:
Command | Use |
---|---|
discover |
Find/List all detected unpaired mugs in pairing mode |
find |
Find one already paired mugs |
info |
Connect to one mug and print its current state |
poll |
Connect to one mug and print its current state and keep watching for changes |
Caveats
- Since this api is not public, a lot of guesswork and reverse engineering is involved, so it's not perfect.
- Only works with one mug at a time
- These mugs do not broadcast data unless paired. So you can only have one device connected to it. You need to reset them to change to another device and make sure the previous device doesn't try to reconnect.
- Reading data from the mug seems to work pretty well, but I have been unable to write to it so far... I always get NotPermitted errors.
- I haven't figured out some attributes like udsk, dsk, location,
Credits
This package was created with Cookiecutter and the waynerv/cookiecutter-pypackage project template.
Project details
Release history Release notifications | RSS feed
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 python_ember_mug-0.3.6.tar.gz
.
File metadata
- Download URL: python_ember_mug-0.3.6.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 184c999ac166a79864538898dd2f3b1576cc24232b4b383a773fbc79b4d635bd |
|
MD5 | 6e8c809997a6ae391150e11199437e82 |
|
BLAKE2b-256 | ce027bd5283d4225333045a502a58c64b6d75670da6de9a12c7984d29b27087a |
File details
Details for the file python_ember_mug-0.3.6-py3-none-any.whl
.
File metadata
- Download URL: python_ember_mug-0.3.6-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91e227ef3acc2b8527fa22d95bb004b342f6af8f363d3a4a11ecbb0c6e3095e4 |
|
MD5 | e28e908c1d22d9372767477fdb516d1e |
|
BLAKE2b-256 | 872ac06c357bf4976c55c8906a1f45850cd8dbaa16737e4c833b66e017a77537 |