https://github.com/ztroop/wave-reader-utils
Unofficial Wave Device Library
https://github.com/ztroop/wave-reader-utils
airthings bluetooth-low-energy pypi-package
Last synced: 4 months ago
JSON representation
Unofficial Wave Device Library
- Host: GitHub
- URL: https://github.com/ztroop/wave-reader-utils
- Owner: ztroop
- License: mit
- Created: 2021-01-06T03:29:51.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-10T05:57:09.000Z (over 2 years ago)
- Last Synced: 2026-02-14T19:15:41.483Z (5 months ago)
- Topics: airthings, bluetooth-low-energy, pypi-package
- Language: Python
- Homepage:
- Size: 5.87 MB
- Stars: 19
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README

[](https://codecov.io/gh/ztroop/wave-reader-utils)
[](https://badge.fury.io/py/wave-reader)
**This package is currently in maintenance mode. Please use [airthings-ble](https://github.com/Airthings/airthings-ble) for new projects.**
## Wave Reader Utilities
The `Airthings Wave` is a series of devices that track Radon levels in the home. Radon is a radioactive
gas that comes from the breakdown of uranium in soil and rock. It's invisible, odourless and tasteless.
This is an **unofficial** Airthings Wave community library designed to provide utilities for device
and web communication.
## Features
- Using `bleak` as a dependency for platform cross-compatibility and support for asynchronous operation.
- Support for major models: Wave+, Wave, Wave (Version 2) and Wave Mini devices. View Plus is not supported, as it sends data over WiFi, not BTLE.
- Code testing, coverage reporting, linting, type hinting, and formatting.
- Provide a more comprehensive programming interface for a developer audience.
- Auxillary module that provides a web client for Airthings API and OAuth2 authentication.
## Requirements
In Ubuntu/Debian, make sure you have `libglib2.0-dev` and `bluez` installed:
```sh
sudo apt-get install libglib2.0-dev bluez -y
```
Other Linux distributions should have equivalent packages. 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:
```sh
pip install wave-reader
```
## Example Usage
There are various concrete examples available in the `examples` directory. That includes
CLI interaction and other interesting scenarios that demonstrate API usage.
```python
import asyncio
from wave_reader import wave
if __name__ == "__main__":
# Scan for BTLE Wave devices.
devices = wave.scan()
# Event loop to run asynchronous tasks.
loop = asyncio.new_event_loop()
# Get sensor readings from available wave devices.
for d in devices:
sensor_readings = loop.run_until_complete(d.get_sensor_values())
print(sensor_readings)
# >>> DeviceSensors (humidity: 32.5, radon_sta: 116, radon_lta: 113 ...
```
## Web API Client Module
The `wave_reader/web` module in this library provides a client for the Airthings
web API. See [this page](./wave_reader/web/README.md) for more details.
## Contribution
If you identify a bug, please open a ticket. Pull requests are always welcome.
## 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.