Skip to main content

📻 pyrtl_433

A standalone, dependency-light async client for the rtl_433 HTTP server's WebSocket + /cmd API.

pyrtl_433 speaks the transport/protocol half of an rtl_433 receiver: it connects to one server over a WebSocket, parses the JSON event stream, and drives the HTTP /cmd endpoint that reports and controls the SDR configuration. It also ships the device library — the YAML field mappings that say what each rtl_433 field means (pyrtl_433.library) — plus the pure event-driven classifier an availability policy needs (pyrtl_433.availability).

Deliberate non-scope: this is a client and a data library, not a policy engine. It does not include the Home Assistant integration's entity model, desired-state store, SDR adoption/enforcement, or availability watchdog. It emits normalized, replay-classified events, resolves each field to a descriptor and a transformed value, and gives you the /cmd setter primitive plus the SDR value transforms — you build any higher-level policy on top.

Full documentation: https://rtl-433-hass.github.io/pyrtl_433/latest/

Install

This project is uv-first and is published on PyPI:

uv add pyrtl_433

From a clone of this repository: uv pip install .. See Getting Started for pip and other options.

Quick start

Inject an aiohttp.ClientSession, construct the client, and consume events with async for event in client (or an on_event callback):

import asyncio

import aiohttp

from pyrtl_433 import Rtl433Client


async def main() -> None:
    async with aiohttp.ClientSession() as session:
        client = Rtl433Client("192.0.2.10", session=session)
        await client.start()
        try:
            async for event in client:
                if event.is_replay:
                    continue  # already-seen / stale-gap frame; seed only, don't act
                print(event.device_key, event.model, event.fields)
        finally:
            await client.stop()


asyncio.run(main())

See the Quick Start guide for the callback style, the full constructor signature, and SDR /cmd writes.

Documentation

License

Apache-2.0. This library was extracted from the transport/protocol code and the device-mapping library of the rtl-433-hass/rtl_433 Home Assistant integration. See LICENSE and NOTICE for the source modules and attribution.

Metadata

Release files for pyrtl-433 0.4.0

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

Source distribution (sdist)

Source distribution for pyrtl-433 0.4.0
File Size Uploaded
pyrtl_433-0.4.0.tar.gz 146.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyrtl-433 0.4.0
File Interpreter ABI Platform
pyrtl_433-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 210.5 kB

Release files / pyrtl_433-0.4.0.tar.gz

Download URL pyrtl_433-0.4.0.tar.gz
Size 146.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4d976f444e95020f63d340b810ba5e7ec27f8550d8bb3832d872791dd4e9c64c
BLAKE2b-256 checksum
How to use checksums
e1af11a7afc84bbb38e5e4e6fdf6bf914e813e5b63616b796128d9684bfb1e21
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 Sep 3, 2026.

Transparency log

Release files / pyrtl_433-0.4.0-py3-none-any.whl

Download URL pyrtl_433-0.4.0-py3-none-any.whl
Size 64.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d96dc4aef8d0149039730c85e3d5c9723a5b7aaf869945633a34de192f0b3dca
BLAKE2b-256 checksum
How to use checksums
916883a47f589db7006c1372e3a0b0dfa030acb4a5028d8a517006ea0ea5ad40
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 Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.1

2 release files

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

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