4 Commits
Author SHA1 Message Date
mrcharles 2519aec5b6 feat(doorman): honor local_unlock flag from break-glass scans [#345]
Break-glass badges fire the relay locally on the reader host (no HA
dependency); the flagged scan still reaches HA for the audit trail
but skips re-dispatch. NOTE: deployed while pfv-bms is down — YAML
lint clean, ha core check to run at Friday boot before arming.

https://projects.knownelement.com/issues/345
2026-09-03 08:15:21 -05:00
mrcharles 66a5c45b7e feat(doorman): unlock dispatch — arm switch + rest_command to doorctl [#345]
Founder-approved: valid badge + armed input_boolean -> rest_command
fires the pfvsvrpi doorctl endpoint (Tailscale-bound, token+source
allowlisted, self-securing relay). Disarm = boolean off = log-only.
URL secret on-box only (doorman_unlock_url).

https://projects.knownelement.com/issues/345
2026-09-03 07:08:06 -05:00
mrcharles 85fdd1aa5e fix(doorman): HA Jinja has no split filter — method-call parsing [#345]
Live webhook test caught it: TemplateRuntimeError 'No filter named
split'. enabled_ids/holder rebuilt with row.split('|') method calls
in a namespace loop.

https://projects.knownelement.com/issues/345
2026-09-03 06:11:26 -05:00
mrcharles 908c14d8e4 feat(doorman): badge scan ingest + roster whitelist sensors [#345]
Roster fetched live from KNEL/access-roster via gitea API (no git
mechanics; access-roster stays the single gated source of truth).
Known/disabled/unknown decision branches + last-scan entities.
UNLOCK deliberately not wired - pending HA->Pi control path (#741).

Validated: yamllint clean, ha core check passed on staged copy.
https://projects.knownelement.com/issues/345
2026-09-03 06:02:51 -05:00