Skip to main content

aiopapouch

This repository contains an asynchronous Python I/O library for Papouch s.r.o. devices.

The library provides two major components: Devices and API Client for communication with the hardware.

Requirements

  • Python 3.14+: The library requires Python 3.14 or higher (PEP 758).
  • aiohttp: Required for handling asynchronous HTTP communication with the devices.

Installation

pip install aiopapouch

Supported Devices

Currently, the library supports the following Ethernet devices communicating via WEB mode:

  • Quido ETH
  • Papago
    • Meteo
    • 2TH
    • 5HDI DO
    • TH 2DI DO
  • TH2E
  • TME
  • TME Multi / Radio

Devices

The library is designed using an object-oriented approach. Every device (or device family) is a subclass of PapouchDevice, which provides contract methods such as parse_fresh_data, get_supported_sensors, and properties like name and location. The base.py file also includes mixins (primarily for HTTP communication), as various network devices share the same functions. Creating an additional layer between PapouchDevice and the final subclasses is unnecessary since only a specific subset of functions needs to be included.

Due to polymorphism, the create_device function returns an abstract PapouchDevice. It works in tandem with the is_device_supported function, which validates whether the hardware is supported by this library.

Note: The constructors are asynchronous (implementing the factory pattern). Creating any device instance utilizes the network to download the initial configuration.

Note: The library was designed specifically for Home Assistant. Methods like get_supported_sensors return configurations required for entity creation in Home Assistant. This remains the primary purpose of the library.

Note: Initial fresh fetch of data happens before the creation of the entities, making it a valid approach to generate configurations during the parsing of fresh data.

API Client

The API Client follows a similar architecture. There is an abstract base class PapouchTransport that defines the contract methods for subclasses, such as fetch_info, read_command, and write_command.

Currently, there is one subclass, PapouchHTTPClient, which fulfills this contract and handles network communication over HTTP.

Exceptions

The library defines custom exceptions raised during execution. These exceptions are designed to be caught and handled within the Home Assistant integration.

Usage

Although aiopapouch is primarily designed to serve as the underlying library for the official Home Assistant Papouch integration, it can also be used independently in standalone Python scripts.

The following example illustrates how to create a client, instantiate a device, fetch raw telemetry data, and pass it to parse_fresh_data:

import asyncio
import aiohttp
from aiopapouch import PapouchHTTPClient, create_device

async def main():
    # Initialize the aiohttp client session
    async with aiohttp.ClientSession() as session:
        # Initialize the API transport client
        client = PapouchHTTPClient("192.168.1.100", session)
        
        # Create the device
        device = await create_device(client)
        
        if device is None:
            print("Device not supported or connection failed.")
            return

        print(f"Connected to: {device.name} at {device.location}")

        # Fetch raw fresh XML data from the device
        raw_fresh_xml = await client.fetch_data()

        # Parse fresh data to update device state and return processed readings
        parsed_data = await device.parse_fresh_data(raw_fresh_xml)
        print("Parsed telemetry data:", parsed_data)

if __name__ == "__main__":
    asyncio.run(main())

Future Extensions

Papouch manufactures not only network-based devices but also serial ones (e.g., using RS485). Future extensions will include a new serial transport subclass implementing PapouchTransport, alongside new PapouchDevice subclasses designed specifically for serial communication protocols.

Release files for aiopapouch 0.1.6

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

Source distribution (sdist)

Source distribution for aiopapouch 0.1.6
File Size Uploaded
aiopapouch-0.1.6.tar.gz 22.5 kB Details

Built distribution (wheel)

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

Total release size: 50.9 kB

Release files / aiopapouch-0.1.6.tar.gz

Download URL aiopapouch-0.1.6.tar.gz
Size 22.5 kB
Tags Source
SHA-256 checksum
How to use checksums
cab21aba4455a8c568e4915c5ec6f2e31fe338838ddc4925c615d6c88be5341c
BLAKE2b-256 checksum
How to use checksums
055ea05a5ee35956abbc7ad39672b3b36b4cbf9b4d94e7e264c18883273526c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 20, 2026.

Transparency log

Release files / aiopapouch-0.1.6-py3-none-any.whl

Download URL aiopapouch-0.1.6-py3-none-any.whl
Size 28.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e8d686222f5124787093116e26a05d4eee76e0d3ebd7e289f44d438c36123179
BLAKE2b-256 checksum
How to use checksums
5f11e6f04482922356fcb64b535b37f0fe7b421da0542ed6459f1cacff4a1244
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 20, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.1

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

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.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

This release

0.1.6 This release

2 release files

0.1.5

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.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