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

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.1
File Size Uploaded
pyrtl_433-0.4.1.tar.gz 147.8 kB Details

Built distribution (wheel)

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

Total release size: 213.3 kB

Release files / pyrtl_433-0.4.1.tar.gz

Download URL pyrtl_433-0.4.1.tar.gz
Size 147.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e31e011b09949725f3dcbf5b12d053def3c607ce8404ff45d72bab44d539fa5a
BLAKE2b-256 checksum
How to use checksums
badf5cd1e21ab941c4379d5d2aa7ee2e4ea474c47a692123c2a0b003a63eb316
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 21, 2026.

Transparency log

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

Download URL pyrtl_433-0.4.1-py3-none-any.whl
Size 65.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d29b51893edfc5f1c169299fe1f8b312a2c83cc875405d490beeedd79919d55
BLAKE2b-256 checksum
How to use checksums
be4b4c8ebbe18b551fc2f72e562d6c2bb85d5276f45a623aceaf19bb94f0bda6
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 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

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