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.3.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.3.0
File Size Uploaded
pyrtl_433-0.3.0.tar.gz 135.5 kB Details

Built distribution (wheel)

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

Total release size: 194.8 kB

Release files / pyrtl_433-0.3.0.tar.gz

Download URL pyrtl_433-0.3.0.tar.gz
Size 135.5 kB
Tags Source
SHA-256 checksum
How to use checksums
01d2a6b575a2b7f7d2d96dd119ad259827b2491eba9882b0e801878690535752
BLAKE2b-256 checksum
How to use checksums
6cb22887f451008d500d83f7587c95e40b7258f12c8e6f64334c91720c12fef1
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 2, 2026.

Transparency log

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

Download URL pyrtl_433-0.3.0-py3-none-any.whl
Size 59.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f499522e33946c21b02c49170f3d1c116d1c5af6b86fef1ddac42da1ca4ebac
BLAKE2b-256 checksum
How to use checksums
2aacd11f5ffe66ec6cf49c7d9b1b067eea636b2f2b85970b6d31170c2f1a4122
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 2, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.1

2 release files

0.4.0

2 release files

This release

0.3.0 This release

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