96e70aa23100a3f65c639aff94ad7309fc4d97ed
Pre-publication packaging. Full-history secret/badge scans clean; badge IDs live only in the private access-roster repo. Detail: https://projects.knownelement.com/issues/762
pfv-bms — Home Assistant configuration (Turnsys PFV)
Production Home Assistant configuration for a private residence + server room: physical-plant environmental monitoring (temperatures, power, UPS), server-room badge access control, and alerting.
Licensed under the GNU AGPLv3 — see AGPL compliance notes below.
What lives here
configuration.yaml+packages/— the full running config, deployed to the HAOS box via a git-webhook pipelinepackages/doorman.yaml— badge-scan ingest + whitelist decisions (server-room door access)packages/plant_snmp.yaml— fleet temperature/power sensors over SNMP (lm-sensors extends, iDRAC, UPS, PDU relay)automations.yaml— tiered thermal alerts + sensor watchdogsdashboards/— Lovelace dashboards
Security model (read this before forking)
- No secrets in git, ever. Everything sensitive is
!secretindirection into an on-boxsecrets.yaml(gitignored). Verified by full-history scans. - Badge IDs are NOT in this repo. The badge roster lives in a
separate private repository (
access-roster, two-human PR gate) and is fetched live at runtime via the gitea API with a secret auth header. This repo contains only the decision logic. - Battery-powered room sensors and lock integrations are cloud-fed;
their credentials also live in
secrets.yaml.
Related
- Work tracking: Redmine project 55 (#344 HA integration, #345 badge access, #762 publication)
- Documentation: VP TechOps on Discourse
- Badge listener/relay code: KNEL/doorman
- Wider fleet (Proxmox, DNS, monitoring): KNEL/PFVCluster
License
Copyright © 2026 Known Element Enterprises / Charles Wyble.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE for the full text.
Languages
Python
51.4%
Shell
48.6%