Skip to main content

A standalone, host-agnostic Python library for KNX telegram persistence.

Project description

knx-telegram-store

A standalone, host-agnostic Python library for KNX telegram persistence.

Features

  • Canonical Data Model: A unified model for KNX telegrams shared between Home Assistant and SpectrumKNX.
  • Pluggable Backends:
    • In-Memory: Fast, deque-based storage with full filtering support.
    • SQLite: Lightweight persistent storage with SQL-based filtering.
    • PostgreSQL + TimescaleDB: Full-scale time-series storage.
  • Unified Query Model: Powerful declarative filtering including time-delta context windows and pagination.
  • Zero Runtime Dependencies: Core library (model, interface, in-memory) has no dependencies.
  • Automated Schema Management: SQL backends handle their own creation and upgrades.

Installation

pip install knx-telegram-store

For SQL support:

pip install knx-telegram-store[sqlite]
pip install knx-telegram-store[postgres]

Usage

from datetime import datetime
from knx_telegram_store import StoredTelegram, TelegramQuery
from knx_telegram_store.backends.memory import MemoryStore

async def main():
    store = MemoryStore(max_size=1000)
    await store.initialize()

    telegram = StoredTelegram(
        timestamp=datetime.now(),
        source="1.1.1",
        destination="1/1/1",
        telegramtype="GroupValueWrite",
        direction="Incoming",
        value=22.5,
        unit="°C"
    )

    await store.store(telegram)

    query = TelegramQuery(destinations=["1/1/1"])
    result = await store.query(query)
    
    for t in result.telegrams:
        print(f"{t.timestamp}: {t.source} -> {t.destination} | {t.value} {t.unit}")

    await store.close()

License

MIT

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

knx_telegram_store-0.3.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

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

knx_telegram_store-0.3.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file knx_telegram_store-0.3.0.tar.gz.

File metadata

  • Download URL: knx_telegram_store-0.3.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for knx_telegram_store-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a0320309cac06ad392321ad2241dff77c0a76461d2b573759c3cf07caa7f2459
MD5 f9615979b61b5b9119eceaa30dc9f9d4
BLAKE2b-256 4b3f8dfec6f9b4ac2da7fbe893e4f99b249e3abc8c490ab4494fb25abe5d8fe3

See more details on using hashes here.

Provenance

The following attestation bundles were made for knx_telegram_store-0.3.0.tar.gz:

Publisher: publish.yml on XKNX/knx-telegram-store

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

File details

Details for the file knx_telegram_store-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for knx_telegram_store-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d4c0dbfa45a0c0f9a18909c4b4ee91e0b0ba2c54aa2494ecb0d62af9b4ca66f
MD5 4b704be1b8748dfe029c6a7e8f954697
BLAKE2b-256 d3caeba4b51fb32e841fb4881366eed647bd60046ec8e46881a7e8f8a88ba8f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for knx_telegram_store-0.3.0-py3-none-any.whl:

Publisher: publish.yml on XKNX/knx-telegram-store

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