Skip to main content

aioiregul

Python Version License

Asynchronous Python library to interact with IRegul systems via their undocumented API over sockets.

Note: This library is under active development.

Features

  • 🔄 Fully asynchronous using asyncio and aiohttp
  • 🔌 Socket-based communication with IRegul systems
  • 🎯 Type-safe with comprehensive type hints
  • 📊 Parse and decode IRegul API responses
  • 🏠 Home automation integration ready

Requirements

  • Python 3.14 or higher
  • aiohttp
  • BeautifulSoup4
  • python-slugify

Installation

uv pip install aioiregul

Or install from source:

git clone https://github.com/PoppyPop/aioiregul.git
cd aioiregul
uv sync --all-extras

Quick Start

import asyncio
import aioiregul

async def main():
    # Configure connection options
    options = aioiregul.ConnectionOptions(
        username='your_username',
        password='your_password'
    )

    # Create device instance
    device = aioiregul.Device(options)

    # Collect data from the device
    data = await device.collect()

    # Display results
    print(data)

# Run the async function
asyncio.run(main())

Development Setup

The easiest way to get started with development:

  1. Install Docker and VS Code
  2. Install the Remote - Containers extension
  3. Open the project in VS Code
  4. Click "Reopen in Container" when prompted

All dependencies and tools will be automatically installed!

Local Development

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh  # Linux/Mac
# Or on Windows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# Sync all dependencies
uv sync --all-extras

# Install pre-commit hooks
uv run pre-commit install

Running Tests

# Run all tests
uv run pytest

# Run with coverage
uv run pytest --cov=aioiregul --cov-report=html

# Run specific test
uv run pytest tests/test_iregul.py -v

Code Quality

# Format code
uv run ruff format .

# Lint code
uv run ruff check . --fix

# Type checking
uv run mypy src/

# Run all pre-commit hooks
uv run pre-commit run --all-files

Project Structure

aioiregul/
├── .devcontainer/          # VS Code devcontainer configuration
├── src/
│   └── aioiregul/         # Main library code
├── tests/                 # Unit tests
├── examples/              # Example scripts and sample data
├── pyproject.toml         # Project configuration
├── CONTRIBUTING.md        # Contribution guidelines
└── README.md              # This file

API Documentation

ConnectionOptions

Configuration for connecting to IRegul systems.

@dataclass
class ConnectionOptions:
    username: str                    # IRegul account username
    password: str                    # IRegul account password
    iregul_base_url: str            # Base URL (default: https://vpn.i-regul.com/modules/)
    refresh_rate: timedelta         # Data refresh interval (default: 5 minutes)

Device

Main class for interacting with IRegul devices.

device = Device(options: ConnectionOptions)
data = await device.collect()  # Fetch current device data

IRegulData

Data structure for IRegul measurements.

@dataclass
class IRegulData:
    id: str           # Data point identifier
    name: str         # Human-readable name
    value: Decimal    # Measured value
    unit: str         # Unit of measurement

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Development Checklist

  • Write tests for new features
  • Update documentation
  • Follow code style guidelines (Ruff, MyPy)
  • Add type hints to all functions
  • Write docstrings for public APIs

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

This library reverse-engineers the undocumented IRegul API. It is not officially supported by IRegul.

Support

Changelog

See CHANGELOG.md for version history and changes.

Metadata

Release files for aioiregul 0.2.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aioiregul 0.2.8
File Size Uploaded
aioiregul-0.2.8.tar.gz 135.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aioiregul 0.2.8
File Interpreter ABI Platform
aioiregul-0.2.8-py3-none-any.whl Python 3 none any Details

Total release size: 175.1 kB

Release files / aioiregul-0.2.8.tar.gz

Download URL aioiregul-0.2.8.tar.gz
Size 135.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1553d0a09139e6add206954311e1ad4dfa80a5f83f403493a5ad0fb8abaa8474
BLAKE2b-256 checksum
How to use checksums
85526777d2891e53c78a5d3e91b8600caae2451b471917b22a3d065a9e247dc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 26, 2026.

Transparency log

Release files / aioiregul-0.2.8-py3-none-any.whl

Download URL aioiregul-0.2.8-py3-none-any.whl
Size 39.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f78cc154038103753570b835b88c57669162cbb7a7007a1e3f56dc9c3c0aea0
BLAKE2b-256 checksum
How to use checksums
5fcc6e8e11196b41c39d582f4ad14fc3a94c507930a3fee9740ee4b7847330cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.8 This release

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page