Unofficial package for Airthings Wave communication.
Project description
Summary
This is an unofficial Airthings Wave library designed to provide tools and information around device communication. The library wouldn't be possible without the existing scripts available by Airthings and contribution of others. We hope to continue making updates through Airthings continued open-source contributions. See documentation for more details.
This library uses bleak
as a dependency instead of bluepy
for platform cross-compatibility
and support for asynchronous operation.
This project is currently in alpha state.
Goals
These are the goals for this project, in no particular order:
- Support platform cross-compatibility. Windows, Mac and Linux.
- Support WavePlus, Wave (Version 2) and Wave Mini devices.
- Support operation across multiple devices asynchronously.
- Code testing, linting, type hinting, formatting and coverage reporting.
- Discover all Wave devices or inherit WaveDevice class for sensor readings.
- Support other devices like Wave (Version 1).
- Add battery life support.
Requirements
In Ubuntu Linux, make sure you have libglib2.0-dev
and bluez
installed:
sudo apt-get install libglib2.0-dev bluez -y
In theory, other platforms (Windows, Mac) are supported by using bleak
as a dependency, but open a ticket if you run into any issues.
Installation
You can install the library by running:
pip install wave-reader
Example Usage
There are various concrete examples available in the examples
directory. This includes
CLI interaction and other scnearios that demonstrate API usage.
import asyncio
from wave_reader import discover_devices
if __name__ == "__main__":
# Event loop to run asynchronous tasks.
loop = asyncio.get_event_loop()
# Scan for BTLE Wave devices.
devices = loop.run_until_complete(discover_devices())
# Get sensor readings from available wave devices.
for device in devices:
sensor_readings = loop.run_until_complete(device.get_sensor_values())
print(sensor_readings)
# >>> DeviceSensors (humidity: 32.5, radon_sta: 116, radon_lta: 113 ...
Testing
You can run the entire test suite by running tox
. It will run flake8
, isort
and pytest
.
If you'd like to just run unit tests, running pytest ./tests
is sufficient.
Special Thanks
I'd like to thank Airthings for their open-source work and commitment to air quality. Radon and other air pollutants often go unnoticed, so knowledge (really) is power here.
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
Hashes for wave_reader-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d42b5acbd16002a865b18fc2b4cb639a191f06a2b1379a071582e739f1e8236f |
|
MD5 | 1c557e0f7fac12868ae79cc5d8d40293 |
|
BLAKE2b-256 | 91a1da27b2a47e661170c16dc9f2b088a58e045a10b8cf2636c620686e9f42ef |