Skip to main content

Correlates Kohler RDC TLV wire protocol against Rehlko cloud API to verify and discover parameter mappings.

Project description

rdc-correlate

Correlates Kohler RDC generator wire-protocol TLV parameters (0xXXXX IDs streaming over TCP 5253) against Rehlko cloud API fields to verify or discover new parameter mappings.

When it finds new high-confidence mappings, it opens a PR on rdc-protocol-research that updates PARAMETERS.md with the discoveries.

What it does

  1. Reads kohler.sqlite — a database populated by the rdc-proxy pcap capture pipeline (wire_records) and a Rehlko cloud poller (cloud_fields).
  2. For every (wire_param_id, cloud_field_path) pair, computes Pearson r on time-aligned samples + a median scale ratio.
  3. Emits the highest-confidence match per wire ID that clears a threshold.
  4. Diffs those findings against the current PARAMETERS.md in rdc-protocol-research. New entries are bundled into a branch and opened as a PR for human review.

Quick start

See docs/SETUP.md for the full walkthrough (it assumes a Pi already running rdc-proxy). The short version:

curl -fsSL https://raw.githubusercontent.com/andrewroydshayes/rdc-correlate/main/install/install.sh \
  | sudo bash

# Once credentials + gh auth are set up:
sudo /opt/rdc-correlate/venv/bin/python -m rdc_correlate correlate --out /tmp/f.json
sudo /opt/rdc-correlate/venv/bin/python -m rdc_correlate publish --findings /tmp/f.json --dry-run
sudo /opt/rdc-correlate/venv/bin/python -m rdc_correlate publish --findings /tmp/f.json

Subcommands

Command Purpose
correlate Run correlation on the sqlite db; write findings.json
publish Open a PR on rdc-protocol-research for new findings (+ --dry-run)
poll Test Rehlko API credentials (lists homes and devices)

Development

pip install -e ".[dev]"
pytest

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

rdc_correlate-0.2.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

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

rdc_correlate-0.2.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file rdc_correlate-0.2.0.tar.gz.

File metadata

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

File hashes

Hashes for rdc_correlate-0.2.0.tar.gz
Algorithm Hash digest
SHA256 88fc6f0d3c78e2f038c22241ce1a5e728c026a466ee06999270a3b3cf393a5b0
MD5 02bb40f1ac1d4770828f5a53a5fa1724
BLAKE2b-256 af95945a52c95960432171023c07cef927bc2c9104c873103c6e471368b500ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for rdc_correlate-0.2.0.tar.gz:

Publisher: publish.yml on andrewroydshayes/rdc-correlate

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

File details

Details for the file rdc_correlate-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: rdc_correlate-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rdc_correlate-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd6e9559861d9f77ce0f9d8dfeadcd4506ae631b2bc83fa1bb1c5525d5781434
MD5 85c79a3a7fe1177757d5646b44947bdb
BLAKE2b-256 f848f67e5c54348095578d90145fb01cce79bee67c526190ca3cb99dc9a3a5df

See more details on using hashes here.

Provenance

The following attestation bundles were made for rdc_correlate-0.2.0-py3-none-any.whl:

Publisher: publish.yml on andrewroydshayes/rdc-correlate

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