Skip to content

A Python3 class to interrogate Xiaomi Mijia LYWSD* sensors.

License

Notifications You must be signed in to change notification settings

Mausy5043/pylywsdxx

Repository files navigation

License PyPI version Supported Python versions PyPI downloads Code style: black pre-commit.ci status

pylywsdxx

This is a Python3 library to allow interrogation of Xiaomi Mijia LYWSD* sensors via Bluetooth Low Energy (BLE).

Note: This is an unofficial project, and is in no way supported or endorsed by Xiaomi.

Requirements

This module requires bluepy3 which should be installed automagically when using the installation instructions below.

Development of this package is done in Python 3.11. The package is considered forwards compatible at least upto Python 3.12 and probably also beyond. Backwards compatibility is not guaranteed; if it works on Python 3.9 or before consider yourself lucky. Python versions that are end-of-life are not supported.

The package has been extensively tested on a Raspberry Pi 3 Model B+ (aarch64) with Debian GNU Linux 12 /w Python 3.11.*.

Installation

pip install pylywsdxx

Usage

import pylywsdxx as pyly

mac = "A4:C1:38:0D:EA:D0"

device2 = pyly.Lywsd02(mac)
data2 = device2.data
print(f"Temperature: {data2.temperature}˚C")

device3 = pyly.Lywsd03(mac)
data3 = device3.data
print(f"Temperature: {data3.temperature}˚C")

Please note that this module has completely and intentionally broken backwards compatibility with previous and existing versions of lywsd02 and lywsd03mmc and with v1.* versions of itself.

Acknowledgements

Based on previous work stolen from Mikhail Baranov (h4) : lywsd02 and Duncan Barclay (uduncanu) : lywsd03mmc

Disclaimer & License

As of September 2024 pylywsdxx is distributed under AGPL-3.0-or-later.