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)*