Ryan Malloy 7bbe1b4372 program-format: structured-OP AND record fully RE'd
Final RE pass on the multi-record AND extension. Authored "AND IF
DATE IS EQUAL TO 12/31" and resolved the structured-OP case via the
captured bytes 08 07 01 00 00 01 00 1f 0c 00 ....

The structured-AND section now has:
- A clear distinction between Traditional (OP=0) and Structured (OP>0)
  modes, with both using the same disk byte slots but different
  semantics.
- A worked byte-by-byte example for "AND IF DATE IS EQUAL TO 12/31"
  showing how Read's LE-to-BE swap places each field into Data[].
- The clsConditionLine.Cond bridge documented inline, explaining why
  the Traditional case packs (family, instance) into the same byte
  positions that structured records use for (OP, Arg1_ArgType, Arg1_IX).
- UI labels for each enuCondOP value (IS EQUAL TO, IS GREATER THAN,
  etc.) so readers can map the enum to what they'd see in PC Access.

Python usage section updated to show the structured-AND properties:
  and_op, and_arg1_argtype, and_arg1_ix, and_arg1_field,
  and_arg2_argtype, and_arg2_ix, and_arg2_field, and_compconst.
2026-05-12 15:37:18 -06:00
2026-05-10 16:42:12 -06:00
2026-05-10 16:42:12 -06:00
2026-05-10 16:42:12 -06:00
2026-05-10 16:42:12 -06:00
2026-05-10 16:42:12 -06:00
2026-05-10 16:42:12 -06:00

hai-omni-docs

Documentation site for omni-pca — a reverse-engineered Python library and Home Assistant integration for HAI/Leviton Omni Pro II home automation panels. Built with Astro + Starlight, organised around the Diátaxis framework.

Live: https://hai-omni-pro-ii.l.warehack.ing

Local development

make install   # one-time
make dev       # http://localhost:4321 with hot reload

Production build (smoke test)

make ci        # runs `npm run build`, output in ./dist

Deploy via Caddy

The container ships its static dist/ from an inner Caddy on :80; the host's caddy-docker-proxy terminates TLS and routes the configured DOMAIN to it via the external caddy network.

cp .env.example .env   # adjust COMPOSE_PROJECT / DOMAIN as needed
make build
make up                # then tails logs

Layout

src/
  content/docs/
    index.mdx
    start/         # Overview + Quick start
    tutorials/     # Diátaxis: learning-oriented
    how-to/        # Diátaxis: task-oriented
    reference/     # Diátaxis: information-oriented (protocol, file format, API)
    explanation/   # Diátaxis: understanding-oriented (quirks, architecture, bugs)
    journey.md     # Chronological retrospective
    changelog.md
  styles/theme.css # Slate-blue + amber accent
  assets/logo.svg

Source project

Description
Documentation site for warehack.ing/omni-pca. Astro + Starlight, Diátaxis-organized.
Readme 3.2 MiB
Languages
MDX 93.4%
JavaScript 2.7%
CSS 1.5%
Dockerfile 1.3%
Makefile 0.8%
Other 0.3%