From c4a995c766b9aa69b4ce9b0958848f2689c0fc46 Mon Sep 17 00:00:00 2001 From: jessikitty Date: Thu, 24 Sep 2026 01:33:35 +1000 Subject: [PATCH] docs: add .claude-context project overview --- .claude-context/00-overview.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .claude-context/00-overview.md diff --git a/.claude-context/00-overview.md b/.claude-context/00-overview.md new file mode 100644 index 0000000..f064341 --- /dev/null +++ b/.claude-context/00-overview.md @@ -0,0 +1,24 @@ +# ha-parental-controls + +Home Assistant panel for per-user, per-device internet blocking via an OPNsense firewall alias, with optional scheduled access windows. + +**Repository:** https://gitea.hideawaygaming.com.au/jessikitty/ha-parental-controls + +## Architecture +- **OPNsense:** alias `parental_blocked` + LAN block rule above allow-all; HA adds/removes IPs via `alias_util` API (JSON payload), then reconfigures +- **HA package:** `packages/parental_controls.yaml` — rest_commands, DHCP lease REST sensor (`sensor.home_dhcp_leases_lan`), 12 chunked `input_text` entities for config, scripts, optional schedule automation +- **Panel:** `www/parental_controls.html` via `panel_iframe` — REST for initial load, WebSocket for updates; URL auto-detected from page origin +- Devices keyed by MAC; IP resolved from DHCP leases at block time + +## Rules +- Secrets live in `secrets.yaml` only; the repo copy of `CONFIG_HA_TOKEN` must stay blank +- Config size limit: 12 × 255 chars + +## Related +- `homenet-guardrails`, `opnsense-device-control`, `ha-device-assignment` — overlapping approaches to the same problem + +## Session Log +- 2026-05-18 — Parental Controls Dashboard with OPNsense Alias Blocking — Built panel + package; fixed WS load/auth, chunked HA storage, JSON alias API, DHCP-based discovery, URL auto-detect + +--- +*Created by: Jess Rogerson (yelling commands at Claude.AI)*