Sanitized mirror from private repository - 2026-04-20 01:32:01 UTC
Some checks failed
Documentation / Build Docusaurus (push) Failing after 5m3s
Documentation / Deploy to GitHub Pages (push) Has been skipped

This commit is contained in:
Gitea Mirror Bot
2026-04-20 01:32:01 +00:00
commit e7652c8dab
1445 changed files with 364095 additions and 0 deletions

View File

@@ -0,0 +1,364 @@
# 🏠 Home Assistant Configuration
This document covers all Home Assistant instances across the homelab, including automations, integrations, and configurations.
## Overview
| Instance | Location | Hardware | HA Version | Purpose |
|----------|----------|----------|------------|---------|
| **HA Green** | Honolulu, HI | Home Assistant Green | 2026.1.3 | Hawaii smart home control |
| **HA NUC** | Concord, CA | Intel NUC6i3SYB | TBD | Primary home automation hub |
---
## 🌺 Honolulu Instance (Home Assistant Green)
### Hardware Details
- **Device**: Home Assistant Green
- **CPU**: ARM Cortex-A55 (4-core)
- **RAM**: 4GB LPDDR4
- **Storage**: 32GB eMMC (8.2GB used, 31%)
- **Network**: 192.168.12.202/24
- **OS**: Home Assistant OS 6.12.63-haos
### Add-ons Installed
| Add-on | Purpose |
|--------|---------|
| **Matter Server** | Matter/Thread smart home protocol support |
| **Advanced SSH & Web Terminal** | Remote shell access |
### Custom Components (HACS)
| Component | Purpose |
|-----------|---------|
| **HACS** | Home Assistant Community Store |
| **Oura** | Oura Ring health/sleep tracking integration |
| **Tapo Control** | TP-Link Tapo camera PTZ control |
---
### 🤖 Automations
#### 1. Hawaii Living Room - Motion Lights On
**Purpose**: Automatically turn on living room lights when motion is detected in the evening.
```yaml
id: '1767509760079'
alias: Hawaii Living Room Camera Motion Turn On Lights
triggers:
- type: motion
device_id: b598fe803597a6826c0d1be292ea6990
entity_id: 600ef0e63bf50b958663b6602769c43d
domain: binary_sensor
trigger: device
conditions:
- condition: time
after: '16:00:00'
before: '01:00:00'
weekday: [sun, mon, tue, wed, thu, fri, sat]
actions:
- action: light.turn_on
target:
entity_id:
- light.hawaii_cocina_white_fan_2_bulbs
- light.hawaii_lightstrip
- light.hawaii_white_fan_1_bulb_2
- light.hawaii_pineapple_light_l535e
- light.hawaii_white_fan_1_bulb_2_2
mode: single
```
| Setting | Value |
|---------|-------|
| **Trigger** | Living room camera motion sensor |
| **Time Window** | 4:00 PM - 1:00 AM |
| **Days** | Every day |
| **Lights Controlled** | 5 (fan bulbs, lightstrip, pineapple lamp) |
---
#### 2. Hawaii Living Room - No Motion Lights Off
**Purpose**: Turn off living room lights after 20 minutes of no motion.
```yaml
id: '1767511914724'
alias: Hawaii Living Room Camera No Motion Turn Off Lights
triggers:
- type: no_motion
device_id: 6977aea8e1b5d86fa5fdb01618568353
entity_id: a00adebc3cff7657057b84e983f401e3
domain: binary_sensor
trigger: device
for:
hours: 0
minutes: 20
seconds: 0
conditions: []
actions:
- action: light.turn_off
target:
entity_id:
- light.hawaii_cocina_white_fan_2_bulbs
- light.hawaii_lightstrip
- light.hawaii_pineapple_light_l535e
- light.hawaii_white_fan_1_bulb_2_2
- light.hawaii_white_fan_1_bulb_2
mode: single
```
| Setting | Value |
|---------|-------|
| **Trigger** | No motion for 20 minutes |
| **Time Window** | Always active |
| **Lights Controlled** | 5 (same as above) |
---
#### 3. Hawaii Bedroom - Motion Lights On
**Purpose**: Turn on bedroom lights when motion is detected in the evening.
```yaml
id: '1767514792077'
alias: Hawaii Bedroom Camera Motion Turn On Lights
triggers:
- type: motion
device_id: 6977aea8e1b5d86fa5fdb01618568353
entity_id: 9e71062255147ddd4a698a593a343307
domain: binary_sensor
trigger: device
conditions:
- condition: time
after: '18:00:00'
before: '23:00:00'
weekday: [sun, mon, tue, wed, thu, fri, sat]
actions:
- action: light.turn_on
target:
entity_id:
- light.hawaii_bedroom_palm_lights
- light.hawaii_pink_rose_dimmer_plug
mode: single
```
| Setting | Value |
|---------|-------|
| **Trigger** | Bedroom camera motion sensor |
| **Time Window** | 6:00 PM - 11:00 PM |
| **Days** | Every day |
| **Lights Controlled** | 2 (palm lights, rose dimmer) |
---
### 📊 Automation Summary
```
┌─────────────────────────────────────────────────────────────────────┐
│ HAWAII AUTOMATION FLOW │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ LIVING ROOM BEDROOM │
│ ════════════ ═══════ │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Tapo Camera │ │ Tapo Camera │ │
│ │ Motion Sensor│ │ Motion Sensor│ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Motion │ │ Motion │ │
│ │ Detected? │ │ Detected? │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ YES │ NO (20min) YES │ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ 4PM - 1AM? │ │ 6PM - 11PM? │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 💡 Turn ON │ │ 💡 Turn OFF │ │ 💡 Turn ON │ │
│ │ • Fan bulbs │ │ All lights │ │ • Palm lights│ │
│ │ • Lightstrip │ │ │ │ • Rose dimmer│ │
│ │ • Pineapple │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 🔌 Device Inventory (Hawaii)
#### Lights
| Entity ID | Device | Location |
|-----------|--------|----------|
| `light.hawaii_cocina_white_fan_2_bulbs` | Ceiling fan bulbs | Kitchen/Living |
| `light.hawaii_lightstrip` | LED strip | Living room |
| `light.hawaii_white_fan_1_bulb_2` | Ceiling fan bulb | Living room |
| `light.hawaii_white_fan_1_bulb_2_2` | Ceiling fan bulb | Living room |
| `light.hawaii_pineapple_light_l535e` | Pineapple lamp (Tapo L535E) | Living room |
| `light.hawaii_bedroom_palm_lights` | Palm tree lights | Bedroom |
| `light.hawaii_pink_rose_dimmer_plug` | Rose lamp (dimmer plug) | Bedroom |
#### Cameras (Tapo)
| Device | Location | Features |
|--------|----------|----------|
| Living Room Camera | Living room | Motion detection, PTZ |
| Bedroom Camera | Bedroom | Motion detection |
---
## 🏠 Concord Instance (Intel NUC) - Verified 2026-04-19
### Hardware Details
- **Hostname**: vish-concord-nuc
- **Device**: Intel NUC6i3SYB
- **CPU**: Intel Core i3-6100U (2-core/4-thread, 2.3GHz)
- **RAM**: 16GB DDR4
- **Storage**: 240GB Toshiba VX500 SSD (67% used)
- **OS**: Ubuntu 24.04.3 LTS
- **Network**: `eth0` 192.168.68.100/22 — deliberately on a separate LAN from 192.168.0.0/24 homelab (see mDNS / Thread BR notes in [gl-s200-integration.md](gl-s200-integration.md))
- **Tailscale**: 100.72.55.21 (internal_url set to this)
### Deployment
- **Type**: Docker container, `network_mode: host`
- **Image**: `ghcr.io/home-assistant/home-assistant:stable` — HA 2026.4.3
- **Config Path**: `/home/vish/docker/homeassistant/` (version-controlled at [`hosts/physical/concord-nuc/homeassistant/`](../../../hosts/physical/concord-nuc/homeassistant/))
- **Compose**: [`concord_nuc/homeassistant.yaml`](../../../hosts/physical/concord-nuc/homeassistant.yaml) — includes homeassistant + matter-server + piper + whisper + openwakeword
### 9 Custom Dashboards (YAML mode, in-repo)
| Dashboard | File | Content |
|---|---|---|
| **Home** | [`home.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/home.yaml) | Time-aware greeting, chip strip (weather/Oura/Plex/AdGuard/speedtest), persons, Oura gauges, weather forecast, 5-room nav with live state templates, quick scenes, homelab strip |
| **Living Room** | [`livingroom.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/livingroom.yaml) | Weather (daily+hourly), TV media, network gauges (speedtest), PG&E billing, AdGuard stats |
| **Kitchen** | [`kitchen.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/kitchen.yaml) | 5 TL135 bulbs + scene buttons (Cooking / Dim / All) |
| **Bathroom** | [`bathroom.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/bathroom.yaml) | 6 TL135 bulbs + Relax scene |
| **Bedroom** | [`bedroom.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/bedroom.yaml) | 3 lights, Tapo 4K PTZ camera, 3 media players, Guava-TrueNAS power plug, full Oura Ring section (4 gauges + sleep breakdown + 14d trends + vitals) |
| **Cameras** | [`cameras.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/cameras.yaml) | Live camera grid + motion-event logbook |
| **Homelab** | [`homelab.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/homelab.yaml) | **Multi-tab dashboard** — 4 subviews: Overview / Media / Servers / Monitoring (see Tabbed Homelab Views below) |
| **Homelab Web** | [`homelab_web.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/homelab_web.yaml) | Full-page iframe embedding `http://homelab.tail.vish.gg:3100/` |
| **Crista** | [`crista.yaml`](../../../hosts/physical/concord-nuc/homeassistant/dashboards/crista.yaml) | Full-page iframe embedding `https://crista.love` (replaces the old iframe card on the default Overview dashboard) |
### Tabbed Homelab Views
The Homelab dashboard is split into 4 subviews (tabs at top of page):
| Tab | URL path | Content |
|---|---|---|
| **Overview** | `/homelab-view/homelab` | Calendar (Baikal + Radarr upcoming), Kuma summary chips, library totals (Movies/TV/Anime/Music/Ebooks), Quick Launch 12-button grid |
| **Media** | `/homelab-view/media` | Plex now-playing + library, Sonarr/Radarr (queue/shows/movies/upcoming/wanted), Bazarr + Prowlarr, Books (ABS + LazyLib), SABnzbd (speed/queue/details + pause/resume buttons) |
| **Servers** | `/homelab-view/servers` | Atlantis NAS (8-bay, wide), Calypso NAS + Setillo NAS (compact rails, Setillo includes Surveillance Home Mode switch), Guava TrueNAS Scale (pools/services/VM/disks, wide), Proxmox VE (gauges + PVE host + start/stop/restart actions) |
| **Monitoring** | `/homelab-view/monitoring` | Kuma live chips (total/down/avg-ms/certs<30d), Core Infrastructure entity list (NAS/Proxmox/HA/Authentik/Headscale/CrowdSec/NPM/Portainer), Apps & Services (Jellyfin/Ollama/Gitea/Grafana/Homarr/Bitwarden/Paperless/Immich/Seafile), SSL Certificates expiry watch list |
### 4 Themes (all with Google-fonts auto-loaded via `www/fonts-loader.js`)
| Theme | Aesthetic | Font |
|---|---|---|
| **glass_exo** | Cool glassmorphism, purple + pink on deep navy | Exo 2 |
| **cyberpunk** | Neon pink + cyan + yellow on near-black | Orbitron / Rajdhani |
| **steampunk** | Brass + copper on aged leather | Playfair Display / Cormorant Garamond |
| **samurai** | Imperial red + gold on sumi-ink black | Noto Serif JP / Shippori Mincho |
Each theme overrides `--mdc-select-*` + `--mdc-text-field-*` + `--mdc-theme-surface` so dialogs and dropdowns stay readable across all aesthetics.
### HACS Frontend Cards (installed + registered)
- `mushroom` (v5.1.1) — touch-friendly tiles (template/chips/person/light)
- `card-mod` (v4.2.1) — CSS-in-theme overrides
- `bubble-card` (v3.1.6) — mobile bottom-nav
- `advanced-camera-card`, `calendar-card-pro`, `rgb-light-card`, `lovelace-entity-progress-card`, `lovelace-navbar-card` (pre-existing)
### Integrations Summary
| Domain | Title | Role |
|---|---|---|
| `matter` × 2 | Matter BETA | Thread/Matter (awaiting GL-S200 Thread BR — [gl-s200-integration.md](gl-s200-integration.md)) |
| `thread` | Thread | Thread credentials |
| `oura` (HACS) | admin@thevish.io | Oura Ring — 64 sensors (sleep/readiness/activity/HRV/VO2/steps/etc.) |
| `plex` | Atlantis | 9 entities — now-playing + 6 library counts (Movies 246 / TV 2711 / Anime 8131 / Music 116k) |
| `ollama` | Atlantis Ollama | `conversation.jarvis` → llama3.2:3b on Atlantis CPU, default voice pipeline |
| `local_openai` | Local LLM Server | ⏸ disabled — shinku-ryuu LM Studio endpoint (enable when PC on) |
| `tplink` × 20+ | TL135 bulbs, P110 energy plug, C260 4K camera, hubs | Rooms |
| `tplink_deco` | http://192.168.68.1 | Deco mesh WiFi + device_trackers |
| `tapo_control` | 192.168.68.67 | Bedroom 4K PTZ control, motion/person detection |
| `icloud` | your-email@example.com | iPhone + iPad device trackers |
| `spotify` | Vish Khemraj | Music media player + song-attr sensors |
| `adguard` | 192.168.68.100 | Local DNS blocker on NUC — stats |
| `opower` | PG&E | Electric + gas billing + cost |
| `wyoming` × 3 | piper / faster-whisper / openwakeword | Voice-assist pipeline |
| `caldav` | vish | Baikal calendar → calendar-card-pro |
| `cast` | Google Cast | Chromecast / bedroom display |
| `speedtestdotnet` | SpeedTest | Network gauges |
| `syncthing` | 192.168.68.100 | File sync stats |
| `met` | Home | Weather forecast |
| `sonarr` | 100.83.230.112 | Native — queue/shows/upcoming/wanted/disk_space + commands |
| `radarr` | Radarr | Native — queue/movies/disk_space + health + `calendar.radarr` |
| `sabnzbd` | 100.83.230.112 | Native — speed/queue/left/free_disk + daily/weekly/monthly totals + pause/resume/speedlimit controls |
| `synology_dsm` × 3 | atlantis, calypso, setillo | 158+48+40 entities — CPU/mem/temp/volumes/drives/NICs, Setillo also has `camera.estudio` + Surveillance Home Mode switch |
| `proxmoxve` | 100.87.12.28 | 18 entities — host CPU/mem/disk/uptime + backup status + start/stop/restart/suspend buttons (token auth: `vish@pam!homarr`) |
| `uptime_kuma` | 100.77.151.40:3001 | **1324 entities** across 112 monitors — status, response_time, 35 certificate_expiry sensors |
| `truenas` (HACS tomaae) | Guava (100.75.252.64) | 64 entities — system/pools/services/disks/apps/VMs/datasets. Local patch in `coordinator.py:846` guards None VM memory (TrueNAS 25.04 quirk) |
### Voice Assist Pipeline
**Jarvis (default)**`conversation.jarvis` ← Ollama @ `http://100.83.230.112:11434` (Atlantis, ~11 tok/s on CPU). Wake word: **"Ok Nabu"** via openWakeword. `prefer_local_intents: true` — HA's built-in matcher handles light/scene commands; Ollama kicks in for ambiguous queries.
```
┌──────────────┐ ┌────────────┐ ┌─────────────────────┐ ┌─────────────┐ ┌──────────┐
│ openWakeword │→ │ whisper │→ │ HA built-in intents │→ │ Ollama │→ │ piper │
│ (NUC) │ │ (NUC, STT)│ │ (if unmatched →) │ │ (atlantis) │ │ (NUC,TTS)│
└──────────────┘ └────────────┘ └─────────────────────┘ └─────────────┘ └──────────┘
```
### REST sensors — live homelab telemetry
Defined in [`sensors.yaml`](../../../hosts/physical/concord-nuc/homeassistant/sensors.yaml), API keys in [`secrets.yaml`](../../../hosts/physical/concord-nuc/homeassistant/secrets.yaml). Covers Prowlarr, Bazarr, LazyLibrarian, Audiobookshelf. Sonarr/Radarr/SABnzbd/Plex migrated to native HA integrations. All REST sensors have `homelab_rest_*` unique_ids.
### Energy Dashboard (built-in, configured)
- **Grid**: `sensor.current_bill_electric_usage_to_date` + `sensor.current_bill_electric_cost_to_date` (opower/PG&E)
- **Gas**: `sensor.current_bill_gas_usage_to_date` + `sensor.current_bill_gas_cost_to_date`
- **Device**: Guava-TrueNAS plug — `sensor.guava_energy_today_s_consumption`
### Automations
📭 **None configured**`automations.yaml` is still empty. Planned: lights-off when no one home, bedtime routine triggered by `binary_sensor.oura_ring_rest_mode`, Movie Mode on Plex play detection.
### Co-located Services (Same NUC Host)
| Service | Port |
|---|---|
| Matter Server | host network |
| Plex | 32400 |
| AdGuard Home | 53, 3000 |
| WireGuard (wg-easy) | 51820 |
| Syncthing | 8384 |
| Invidious / Materialious | 3000 / 3001 |
| YourSpotify | 4000 |
| Piper / Whisper / OpenWakeword | 10200 / 10300 / 10400 |
| Watchtower, Node Exporter, Dozzle agent, Diun | — |
---
## 🔧 Open work
### Concord
- **Plex integration**: added via UI 2026-04-19 — 6 library sensors enabled (were `disabled_by=integration` by default)
- **Frigate NVR**: deferred — see [FRIGATE_PLAN.md](../../../hosts/physical/concord-nuc/homeassistant/FRIGATE_PLAN.md) for full deployment plan
- **Automations**: empty; user building these manually
- **opower reauth**: PG&E integration flagged reauth — needed to refresh bill/cost data
### Honolulu
1. **Add Bedroom "No Motion" Automation** (auto-off after 15-20 min)
2. **Add Tailscale Add-on** for remote access without Cloudflare tunnel
3. **Consider**: phone-presence detection, sunrise/sunset-based timing, time-of-day brightness
---
## 📁 Related Documentation
- [GL-S200 Thread Border Router Integration Plan](gl-s200-integration.md) - Planned Thread BR for Concord instance
- [Hardware Inventory](../infrastructure/hardware-inventory.md) - HA Green specs
- [Network Topology](../diagrams/network-topology.md) - Network layout
- [Tailscale Mesh](../diagrams/tailscale-mesh.md) - VPN connectivity