Add per-site and per-box inventories, consolidate shared network design, and relocate the switch and access-point references under the home site.
2.8 KiB
hass
Home automation container: Home Assistant plus its supporting services (MQTT, camera restreaming,
Frigate NVR), running on sfh.
- Source:
nixos/boxes/home/palace/vms/sfh/containers/hass.nix - Host: NixOS container on
sfh - nixpkgs:
mine
Role
Home Assistant
services.home-assistant uses declarative configuration (configWritable = false). It enables
the esphome, zha, denonavr, webostv, androidtv_remote, heos, mqtt, wled, met and
google_translate components, plus custom alarmo, frigate, west_wood_club and Irish Rail
integrations. A hass-cli wrapper uses a token from my.secrets to reach the local server.
- mosquitto — MQTT broker (anonymous local listener; port 1883 allowed, alongside HTTP).
- go2rtc — restreams the Reolink living-room camera (RTSP from
reolink-living-room, on thelonetwork) and the office USB webcam (/dev/video0via ffmpeg). - Frigate (
services.frigate,frigate.h.nul.ie— thefrigatealt name on thehiassignment) — records both restreamed cameras with a short retention policy; detection is disabled. - External access is via
https://hass.nul.iethrough themiddlemanreverse proxy (trusted_proxies); internally it'shass-ctr.h.nul.ie. - Not a deploy-rs target (
my.deploy.enable = false) — it's rendered viamy.asContainerand started bysfh'smy.containers.instances.
Network assignments
See the consolidated network assignments table (this box: hass).
Storage
Frigate footage lives on a separate HDD LV: palace passes the hdds/frigate LVM LV to the
sfh VM, sfh mounts it at /mnt/frigate, and the container bind-mounts it at /var/lib/frigate
(read-write). This keeps recording churn off the NVMe-oF root.
Devices
Passed through from sfh (USB host ports on palace):
- Nabu Casa Connect ZBT-1 Zigbee coordinator →
/dev/ttyUSB0(used byzha). - USB webcam →
/dev/video0(go2rtc'swebcam_officestream). - The matching raw USB device node allowed through from
sfh.
Networking
MACVLAN interfaces created from sfh's container NICs: host0 on lan-hi-ctrs (the hi assignment,
alt name frigate, default gateway via the VIP) and lan-lo on lan-lo-ctrs (the lo
assignment, no gateway) — the lo interface reaches the IoT devices (the Reolink camera lives there).
Notable config files
nixos/boxes/home/palace/vms/sfh/containers/hass.nix— container system: Home Assistant, Frigate, mosquitto, go2rtc.nixos/boxes/home/palace/vms/sfh/default.nix— thesfhside: bind mounts, MACVLAN wiring,DeviceAllow.