Skip to main content

Asynchronous library to retrieve data from air-Q devices.

Project description

PyPI pyversions PyPI downloads

PyPI package aioairq

Python library for asynchronous data access to local air-Q devices.

Retrieve data from air-Q

At its present state, AirQ requires an aiohttp session to be provided by the user:

import asyncio
import aiohttp
from aioairq import AirQ

ADDRESS = "123ab_air-q.local"
PASSWORD = "airqsetup"

async def main():
    async with aiohttp.ClientSession() as session:
        airq = AirQ(ADDRESS, PASSWORD, session)

        config = await airq.config
        print(f"Available sensors: {config['sensors']}")

        data = await airq.data
        print(f"Momentary data: {data}")

asyncio.run(main())

Development

Example script for Linux how to run everything.

# Checkout the repository
git clone https://github.com/CorantGmbH/aioairq
cd aioairq

# Create a virtual environment
#
# We assume that your system has Python in version 3.9 or higher installed
# and accessible via `python3`. 
# - If this command is not found or references an older version, consult your distribution.
# - Depending on the distribution, you may need to install an additional package, e.g. `python3-venv`.
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -e .
# Optionally, you may install developmental dependencies
# which include testing, linting/formatting, and pre-commit
pip install -e ".[dev]" # if errors, see below

# You can now create a script (see example above) and run it
vim hello-air-q.py
python hello-air-q.py

Testing

# If you get an error message about incompatible version, when attempting
# pip install -e ".[dev]", you may try to install the packages separately:
#
# pip install pytest
# pip install pytest-asyncio

# Prepare an environment file
# (You don't want to type your passwords into the shell)
cat <<EOF >.env
export AIRQ_IP=192.168.168.42
export AIRQ_PASS=12345678
export AIRQ_MDNS=abcde_air-q.local
export AIRQ_HOSTNAME=air-q-livingroom
EOF

# Run the tests
source .env
pytest

Contributing

This repository uses pre-commit primarily to ensure linting and formatting using Ruff (besides codespell and yamlling). If you want to commit changes to this repository, make sure you have pre-commit installed (included among the dev extras). Then initialise the git hooks by running

pre-commit install

Once successfully installed, ruff git hook will be triggered upon git commit and it will lint and try to fix the code you are about to commit. Should any changes be made, the commit will be aborted and you will need to address the lints and stage the modified files to your commit before trying again.

Linting

Ruff's rule list is far less exhaustive than that of pylint, so if you want, you can gain additional insight by running pylint (not installed as a part of the dev extras).

pip install pylint
pylint aioairq/*.py

Once done, you may leave the virtual environment

deactivate

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

aioairq-0.4.3.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

aioairq-0.4.3-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file aioairq-0.4.3.tar.gz.

File metadata

  • Download URL: aioairq-0.4.3.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for aioairq-0.4.3.tar.gz
Algorithm Hash digest
SHA256 ae7f1836114a8707bf6769bb9b6557e75092d233515f28efeb32b78eb63c70a3
MD5 1e2962c3ddc89e1956663f91a3b10f6d
BLAKE2b-256 ff6905f3bed95bd127407387ea6bad44a47772b971b2e7312fa068a672ae127e

See more details on using hashes here.

File details

Details for the file aioairq-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: aioairq-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for aioairq-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 36b10f16a872029d70f8706053fcadfaa76ca7ab0ece04cb0ed60fb866883c65
MD5 cf85663dae347ccb94f78487b83c0cef
BLAKE2b-256 024cfd5c2b56683c76f896a92ba4311213b99e7543787e949af8fddcccb869a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page