proflame
The SIT Proflame 2 fireplace remote protocol, in Python: encode a complete appliance state into OOK timings, decode received timings back into a state and the identity of the handset that sent them, and derive the per-remote checksum constants from a single captured frame.
Transceiver-agnostic by design: this library deals in signed-microsecond timing lists, and a radio is whatever turns those into RF and back. The first consumers are the hass-proflame Home Assistant integration and the hackrf-proxy daemon ecosystem, but nothing here depends on either.
from proflame import Remote, State, encode_timings, decode_frame
# One captured frame is enough to learn a handset, checksum constants and all.
heard = decode_frame(received_timings)
remote = heard.remote
# A frame always carries the complete appliance state, never a delta.
timings = encode_timings(remote, State(power=True, flame=4, light=2))
Two things worth knowing before building on it:
- The checksum constants are per handset. They fall out of any one valid
frame (
Remote.from_frame,derive_key); hardcoding one remote's constants produces frames every other receiver rejects. - The appliance is stateless and answers no questions. Every frame carries the whole state, so a consumer must hold its own belief; nothing in the protocol confirms what the appliance did.
Documentation and data
- The protocol derivation — physical layer, framing, field layout, checksum model, open questions, acknowledgments — lives in docs/PROTOCOL.md.
- The field-confirmation procedure and its results live in docs/MAPPING.md.
- Real captures — a community five-remote packet table (aggregated from rtl_433#1905) and frames recorded off the air, used as golden test data — live in tests/.
- Bench scripts — the standalone reference decoder and the checksum analysis that first solved the relation — live in tools/.
- Related work — smartfire, rtl_433's decoder, HACS-Proflame2 — is compared and credited at the end of docs/PROTOCOL.md.
License
MIT OR Apache-2.0, at your option.
Metadata
Release files for proflame 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| proflame-0.1.1.tar.gz | 106.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| proflame-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 118.9 kB
Release files / proflame-0.1.1.tar.gz
| Download URL | proflame-0.1.1.tar.gz |
|---|---|
| Size | 106.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e43ffb904a6150b82cc91ea63028f35b6a73d41ef79babc4f6e885783c47ff5
|
|
BLAKE2b-256 checksum How to use checksums |
3a708c0a42c1c28eaab860aca64241c7fb4e708653739c79bcfeafb085c465c2
|
| 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 12, 2026.
Transparency logRelease files / proflame-0.1.1-py3-none-any.whl
| Download URL | proflame-0.1.1-py3-none-any.whl |
|---|---|
| Size | 12.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39355f28b7abee937626bf9c752cb5e3054edc2692985a1559b572af38870a37
|
|
BLAKE2b-256 checksum How to use checksums |
930386cd0ee534b9abe8a7e9032bb661bdd512edf0dc320226ded83f4f71abb7
|
| 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 12, 2026.
Transparency log