From 9726ee36bb09cde49790240f1611342b3157ae65 Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Sun, 17 May 2026 13:06:19 -0600 Subject: [PATCH] dev: load real .pca fixtures into the mock-panel Adds an OMNI_PCA_FIXTURE escape hatch so the mock can serve real panel data instead of the synthetic five-zone state. With this in place the dev stack is wire-indistinguishable from the source panel for everything the HA integration touches: 330 programs, 16 zones, 44 units, 2 thermostats etc. from our test fixture. - run_mock_panel.py: --pca / OMNI_PCA_FIXTURE accepts a path; the decryption key is auto-derived from a sibling PCA01.CFG when one exists (the common PC Access export layout), with --pca-key / OMNI_PCA_FIXTURE_KEY as override. Falls back to KEY_EXPORT for vanilla unsigned exports. - docker-compose.yml: mount /home/kdm/home-auto/HAI as /fixtures read-only and surface OMNI_PCA_FIXTURE so dev/.env can drive it. - dev/README.md: new section documenting fixture loading. - dev/screenshot_overview.py: quick playwright helper for capturing the side-panel landing page with whatever fixture is loaded. - dev/artifacts/screenshots/2026-05-17/real-pca-overview.png: snapshot of the Omni Programs side panel against the real .pca fixture (330 programs). --- dev/README.md | 26 ++++ .../2026-05-17/real-pca-overview.png | Bin 0 -> 115603 bytes dev/docker-compose.yml | 6 + dev/run_mock_panel.py | 116 +++++++++++++++++- dev/screenshot_overview.py | 63 ++++++++++ 5 files changed, 208 insertions(+), 3 deletions(-) create mode 100644 dev/artifacts/screenshots/2026-05-17/real-pca-overview.png create mode 100644 dev/screenshot_overview.py diff --git a/dev/README.md b/dev/README.md index b84bdb5..3346aaf 100644 --- a/dev/README.md +++ b/dev/README.md @@ -44,6 +44,32 @@ make dev-down # stop the stack make dev-reset # wipe HA config and start fresh ``` +## Load real `.pca` data into the mock + +By default the mock serves a small synthetic state (five zones, four +units, …). Point `OMNI_PCA_FIXTURE` at a real `.pca` file to make the +mock indistinguishable on the wire from the source panel: + +```bash +# dev/.env (gitignored) +OMNI_PCA_FIXTURE=/fixtures/path/to/Account.pca +``` + +The host directory `/home/kdm/home-auto/HAI` is mounted at `/fixtures` +inside the mock-panel container (see `docker-compose.yml`); adjust the +mount if your `.pca` lives elsewhere. + +The decryption key is auto-derived from a sibling `PCA01.CFG` if one +exists (this is how PC Access exports usually ship). To override: + +```bash +OMNI_PCA_FIXTURE_KEY=0xC1A280B2 # or --pca-key on the command line +``` + +`MockState.from_pca` populates zones, units, areas, thermostats, +buttons, programs, model byte, and firmware version from the file — +everything the HA integration reads at discovery time. + ## Notes - The HA container mounts `../custom_components/omni_pca/` read-only, so diff --git a/dev/artifacts/screenshots/2026-05-17/real-pca-overview.png b/dev/artifacts/screenshots/2026-05-17/real-pca-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..fc26825f5416a5de328ca96e4ad80a270455ec73 GIT binary patch literal 115603 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 dict[int, bytes]: + """A handful of programs covering compact-form + clausal-chain shapes. + + Slot 200..202 is a chain with a structured-AND condition whose Arg2 + is itself a Thermostat reference — exercises the Arg2-as-object + editor controls. + """ + programs: dict[int, Program] = { + 12: Program( + slot=12, prog_type=int(ProgramType.TIMED), + cmd=int(Command.UNIT_ON), pr2=1, + hour=6, minute=0, days=int(Days.MONDAY | Days.FRIDAY), + ), + 42: Program( + slot=42, prog_type=int(ProgramType.TIMED), + cmd=int(Command.UNIT_OFF), pr2=2, + hour=22, minute=30, days=int(Days.SUNDAY), + ), + # Chain: WHEN zone 1 not-ready, AND IF Thermostat 1.Temp > + # Thermostat 2.Temp, THEN turn ON unit 3. The AND record is a + # structured-OP comparison with Arg2 as a Thermostat reference. + 200: Program( + slot=200, prog_type=int(ProgramType.WHEN), + month=0x04, day=0x01, + ), + 201: Program( + slot=201, prog_type=int(ProgramType.AND), + cond=(4 << 8) | 4, # op=GT (4), arg1Type=Thermostat (4) + cond2=1, # arg1Ix=1 + cmd=1, # arg1Field=current temp + par=4, # arg2Type=Thermostat (4) + pr2=2, # arg2Ix=2 + month=1, # arg2Field=current temp + ), + 202: Program( + slot=202, prog_type=int(ProgramType.THEN), + cmd=int(Command.UNIT_ON), pr2=3, + ), + } + return {slot: p.encode_wire_bytes() for slot, p in programs.items()} + + def _populated_state() -> MockState: """A small but representative set of objects so HA shows real entities.""" return MockState( @@ -56,11 +103,50 @@ def _populated_state() -> MockState: 3: MockButtonState(name="GOODNIGHT"), }, user_codes={1: 1234, 2: 5678}, + programs=_seed_programs(), ) -async def _serve(host: str, port: int, key: bytes) -> None: - panel = MockPanel(controller_key=key, state=_populated_state()) +def _key_for_pca(path: Path, override: int | None) -> int: + """Pick the decryption key for a .pca file. + + Priority: + 1. Explicit override (CLI / env var). + 2. Per-installation key from a sibling ``PCA01.CFG`` (most common — + PC Access ships each export with a matching config file). + 3. ``KEY_EXPORT`` as a last resort for vanilla exports. + """ + if override is not None: + return override + cfg_path = path.parent / "PCA01.CFG" + if cfg_path.is_file(): + cfg = parse_pca01_cfg(cfg_path.read_bytes()) + logging.info("derived pca_key from %s: 0x%08X", cfg_path.name, cfg.pca_key) + return cfg.pca_key + logging.info("no sibling PCA01.CFG; falling back to KEY_EXPORT") + return KEY_EXPORT + + +def _state_from_pca(path: Path, key: int) -> MockState: + """Seed a MockState from a real .pca file.""" + state = MockState.from_pca(str(path), key=key) + logging.info( + "loaded %s: %d zones, %d units, %d areas, %d thermostats, %d programs", + path.name, + len(state.zones), len(state.units), len(state.areas), + len(state.thermostats), len(state.programs), + ) + return state + + +async def _serve( + host: str, port: int, key: bytes, pca: Path | None, pca_key: int | None, +) -> None: + if pca is not None: + state = _state_from_pca(pca, _key_for_pca(pca, pca_key)) + else: + state = _populated_state() + panel = MockPanel(controller_key=key, state=state) async with panel.serve(host=host, port=port) as (bound_host, bound_port): logging.info("MockPanel listening on %s:%d", bound_host, bound_port) logging.info("Use this controller key in HA: %s", key.hex()) @@ -86,6 +172,23 @@ def main() -> int: default=DEFAULT_KEY_HEX, help="32 hex chars; default is the docker-compose value", ) + parser.add_argument( + "--pca", + default=os.environ.get("OMNI_PCA_FIXTURE"), + help="Path to a .pca file. When supplied, the mock seeds its " + "state from this file instead of the hard-coded sample. " + "Can also be set via OMNI_PCA_FIXTURE.", + ) + parser.add_argument( + "--pca-key", + type=lambda s: int(s, 0), + default=( + int(os.environ["OMNI_PCA_FIXTURE_KEY"], 0) + if os.environ.get("OMNI_PCA_FIXTURE_KEY") else None + ), + help="32-bit decryption key for --pca. Default: auto-derive from " + "a sibling PCA01.CFG, or fall back to KEY_EXPORT.", + ) args = parser.parse_args() logging.basicConfig( @@ -104,7 +207,14 @@ def main() -> int: file=sys.stderr) return 2 - asyncio.run(_serve(args.host, args.port, key)) + pca_path: Path | None = None + if args.pca: + pca_path = Path(args.pca) + if not pca_path.is_file(): + print(f"--pca path not found: {pca_path}", file=sys.stderr) + return 2 + + asyncio.run(_serve(args.host, args.port, key, pca_path, args.pca_key)) return 0 diff --git a/dev/screenshot_overview.py b/dev/screenshot_overview.py new file mode 100644 index 0000000..054175c --- /dev/null +++ b/dev/screenshot_overview.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +"""Quick screenshot of the Omni Programs side panel landing page.""" + +from __future__ import annotations + +import asyncio +import sys +from datetime import datetime +from pathlib import Path + +import httpx +from playwright.async_api import async_playwright + +HA_URL = "http://localhost:8123" +USERNAME = "demo" +PASSWORD = "demo-password-1234" + + +async def _login_token() -> str: + async with httpx.AsyncClient(base_url=HA_URL, timeout=30) as c: + r = await c.post("/auth/login_flow", json={ + "client_id": HA_URL, "handler": ["homeassistant", None], + "redirect_uri": HA_URL, + }) + flow_id = r.json()["flow_id"] + r = await c.post(f"/auth/login_flow/{flow_id}", json={ + "username": USERNAME, "password": PASSWORD, "client_id": HA_URL, + }) + code = r.json()["result"] + r = await c.post("/auth/token", data={ + "client_id": HA_URL, "grant_type": "authorization_code", "code": code, + }) + return r.json()["access_token"] + + +async def amain(outdir: Path) -> None: + token = await _login_token() + outdir.mkdir(parents=True, exist_ok=True) + async with async_playwright() as p: + browser = await p.chromium.launch() + context = await browser.new_context(viewport={"width": 1400, "height": 900}) + await context.add_init_script(f""" + window.localStorage.setItem('hassTokens', JSON.stringify({{ + access_token: '{token}', token_type: 'Bearer', refresh_token: '', + expires: Date.now() + 3600000, hassUrl: '{HA_URL}', clientId: '{HA_URL}', + }})); + window.localStorage.setItem('selectedTheme', JSON.stringify({{dark: false}})); + """) + page = await context.new_page() + await page.goto(f"{HA_URL}/omni-panel-programs", wait_until="domcontentloaded") + await page.wait_for_timeout(8000) + path = outdir / "real-pca-overview.png" + await page.screenshot(path=str(path), full_page=True) + print(f" wrote {path}") + await browser.close() + + +if __name__ == "__main__": + outdir = Path(sys.argv[1]) if len(sys.argv) > 1 else ( + Path(__file__).parent / "artifacts" / "screenshots" / + datetime.now().strftime("%Y-%m-%d") + ) + asyncio.run(amain(outdir))