Skip to main content

Async Python library for the Akuvox local HTTP API

Project description

pylocal-akuvox

CI Documentation License Python

Async Python library for the Akuvox local HTTP API.

pylocal-akuvox provides a single AkuvoxDevice object for communicating with Akuvox intercoms and access controllers on the LAN. It supports user/PIN management, relay control, schedule management, and log retrieval over the device's local HTTP API.

Features

  • Async-only — designed for asyncio event loops and Home Assistant
  • Single runtime dependency — only aiohttp
  • Full device management — users, PINs, relays, schedules, and logs
  • Multiple auth modes — None, Allowlist, Basic, and Digest
  • SSL support — including self-signed certificate handling
  • Legacy TLS compatibility — OpenSSL SECLEVEL relaxation for old devices
  • Comprehensive error handling — typed exception hierarchy

Installation

pip install pylocal-akuvox

Quick Start

import asyncio
from pylocal_akuvox import AkuvoxDevice

async def main():
    async with AkuvoxDevice("192.168.1.100") as device:
        info = await device.get_info()
        print(f"{info.model} — FW {info.firmware_version}")

asyncio.run(main())

Manage Users and PINs

import asyncio
from pylocal_akuvox import AkuvoxDevice

async def main():
    async with AkuvoxDevice("192.168.1.100") as device:
        await device.add_user(
            name="Alice",
            user_id="2001",
            web_relay="0",
            schedule_relay="1001-1",
            lift_floor_num="0",
            private_pin="1234",
        )

        users = await device.list_users()
        for user in users:
            print(f"{user.name} (ID: {user.user_id})")

asyncio.run(main())

Trigger a Door Relay

import asyncio
from pylocal_akuvox import AkuvoxDevice

async def main():
    async with AkuvoxDevice("192.168.1.100") as device:
        await device.trigger_relay(num=1, delay=5)

asyncio.run(main())

Authentication

import asyncio
from pylocal_akuvox import AkuvoxDevice, AuthConfig, AuthMethod

async def main():
    # Basic Auth
    auth = AuthConfig(method=AuthMethod.BASIC, username="admin", password="secret")
    async with AkuvoxDevice("192.168.1.100", auth=auth) as device:
        info = await device.get_info()

asyncio.run(main())

Documentation

Full documentation is available at pylocal-akuvox.readthedocs.io.

Contributing

This project uses uv for dependency management.

# Clone and install
git clone https://github.com/tykeal/pylocal-akuvox.git
cd pylocal-akuvox
uv sync --group dev

# Run tests
uv run pytest tests/ -x -q

# Run linting
uv run ruff check src/ tests/

# Build docs locally
uv run --extra docs sphinx-build -b html docs docs/_build/html

License

Apache-2.0 — see LICENSE for details.

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

pylocal_akuvox-0.4.2.tar.gz (273.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pylocal_akuvox-0.4.2-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file pylocal_akuvox-0.4.2.tar.gz.

File metadata

  • Download URL: pylocal_akuvox-0.4.2.tar.gz
  • Upload date:
  • Size: 273.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pylocal_akuvox-0.4.2.tar.gz
Algorithm Hash digest
SHA256 031f48af93cf652b5a4444bdf262f78c883663ad3f390f6eef3bec254d7849e7
MD5 047689ec144d5caff0b4f4c018b64e12
BLAKE2b-256 30c3c3a5808528fc5ed84171f8407da51194878d8725bb08dbb5fadda5239ca5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylocal_akuvox-0.4.2.tar.gz:

Publisher: build-test-release.yaml on tykeal/pylocal-akuvox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pylocal_akuvox-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: pylocal_akuvox-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 27.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pylocal_akuvox-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 18b1fe681823271f129c2ffb882d345d0f1cb1092ce294a7c3a8fc851a6c33d2
MD5 879dd19416d23ad83090ce08b7d86139
BLAKE2b-256 d508fad05f068178686965c8e51b77eaabad322e45b2ca3894d6e71bff8f3b2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylocal_akuvox-0.4.2-py3-none-any.whl:

Publisher: build-test-release.yaml on tykeal/pylocal-akuvox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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