Files

196 lines
6.5 KiB
Markdown
Raw Permalink Normal View History

# Home Assistant Infrastructure Documentation
2026-07-01 23:42:14 +00:00
> **Last updated:** 2026-July
> **HA Version:** 2026.3.1 (update available: 2026.6.4)
> **HA Host:** 10.10.0.123
---
## Infrastructure Overview
```
┌─────────────────────┐ ┌──────────────────────────┐ ┌──────────────────────┐
│ Home Assistant │──────▶│ InfluxDB 2.7 │──────▶│ Grafana │
│ 10.10.0.123 │ │ SRvDocker1 (10.10.0.41)│ │ 10.10.0.41:3001 │
│ HA 2026.3.1 │ │ port 8086 │ │ v13.1.0 │
└─────────────────────┘ └──────────────────────────┘ └──────────────────────┘
```
- **Home Assistant** pushes time-series metrics to InfluxDB v2.7
- **InfluxDB** stores metrics in the `home_assistant` bucket (13-month retention)
- **Grafana** reads from InfluxDB and renders dashboards
- Both InfluxDB and Grafana run as Docker containers on **SRvDocker1 (10.10.0.41)**
---
## 1. Cleanup Summary
The Home Assistant host disk was at **83% usage** and is now at **46%** after cleanup.
| Action | Space Freed |
|--------|-------------|
| Old HA backups (versions pre-2026) | ~28 GB |
| Orphaned temporary directories | ~7.2 GB |
| **Total** | **~35.2 GB** |
- Backups older than 3 months were identified and removed.
- Orphaned temp directories from previous addons/upgrades were cleaned.
- HA recorder database was compacted via auto-repair.
---
## 2. InfluxDB 2.7 Migration
### Background
- The old InfluxDB **addon** (installed inside HA) had been idle since December 2025.
- It was removed entirely to free resources on the HA host.
- A standalone InfluxDB 2.7.12 instance was deployed on SRvDocker1.
### Deployment Details
| Field | Value |
|-------|-------|
| **Version** | InfluxDB 2.7.12 |
| **Host** | SRvDocker1 (10.10.0.41) |
| **Port** | 8086 |
| **Docker Compose** | `/home/adminx/influxdb/docker-compose.yml` |
| **Bucket** | `home_assistant` |
| **Organization** | `swordrock` |
| **Retention** | 13 months (9456 hours) |
| **API Version** | v2 |
| **SSL** | Off (internal network) |
| **Admin Token** | Stored in locky Vaultwarden |
### Docker Compose
```yaml
# /home/adminx/influxdb/docker-compose.yml
services:
influxdb:
image: influxdb:2.7.12
container_name: influxdb
restart: unless-stopped
ports:
- "8086:8086"
volumes:
- /data/influxdb:/var/lib/influxdb2
- /etc/influxdb2:/etc/influxdb2
environment:
- INFLUXDB_REPORTING_DISABLED=true
```
### Home Assistant Integration
- **Method:** UI-based setup (Settings → Devices & Services → InfluxDB)
- **Why UI and not YAML?** The `influxdb:` YAML configuration did not work on HA 2026.3.1. The UI-based integration was the only method that successfully connected and started pushing data.
- **YAML cleanup:** The `influxdb:` block was removed from `configuration.yaml` to avoid conflicts.
---
## 3. Recorder Tuning
To reduce SQLite DB writes and I/O pressure on the HA host, recorder settings were added to `configuration.yaml`.
### Configuration
```yaml
recorder:
purge_keep_days: 7
commit_interval: 30
```
| Setting | Value | Purpose |
|---------|-------|---------|
| `purge_keep_days` | 7 | Keep only 7 days of history in the SQLite DB |
| `commit_interval` | 30 | Batch commits every 30 seconds (reduces write frequency) |
The full configuration snippet is available in [`configuration-snippets.yaml`](configuration-snippets.yaml).
### Rationale
- Historical data is now stored in InfluxDB (13-month retention), so the HA SQLite DB only needs a short window.
- Lower commit frequency reduces disk I/O spikes.
- This keeps the HA SQLite DB small and fast while InfluxDB handles long-term storage.
---
## 4. Grafana Dashboards
### Deployment
| Field | Value |
|-------|-------|
| **Version** | Grafana 13.1.0 |
| **Host** | SRvDocker1 (10.10.0.41) |
| **Port** | 3001 |
| **Login** | `admin` |
| **Password** | Stored in locky Vaultwarden ("Grafana Admin" item) |
| **Data Source** | InfluxDB (Flux queries against `home_assistant` bucket) |
### Dashboards
#### 🏠 Home Energy
- **Solar production** (Watts, daily/monthly totals)
- **Grid consumption** (import/export, net metering)
- **Voltage** (L1, L2, L3 phases)
- **Frequency** (grid frequency monitoring)
#### 🌡️ Climate
- Indoor/outdoor **temperature** (all sensors)
- **Humidity** (indoor rooms, outdoor)
- **Weather** (forecast vs actual, pressure, wind)
#### 📷 Security Cameras
- Camera **status** (online/offline)
- Motion **event counts**
- Stream health and uptime
---
## 5. Known Issues
| Issue | Status | Notes |
|-------|--------|-------|
| **HA 2026.3.1 InfluxDB YAML config** | ⚠️ Workaround applied | YAML `influxdb:` block didn't work. UI-based integration is the only working method. |
| **HA update pending** | ⚠️ Available | HA 2026.6.4 is available. Upgrade may change InfluxDB integration behavior — test after upgrade. |
| **No network bandwidth data in HA** | By design | UniFi traffic/bandwidth data flows to Zabbix, not HA. No plan to change. |
| **No Zabbix → InfluxDB streaming** | ❌ Not configured | Zabbix metrics are not yet streamed to InfluxDB. Future enhancement: could pipe Zabbix alerts/metrics into InfluxDB for unified Grafana dashboards. |
---
## 6. Maintenance Notes
### Checking HA Disk
```bash
ssh ha-host df -h /
```
### InfluxDB Container Health
```bash
ssh srvoc0 "ssh 10.10.0.41 docker ps | grep influxdb"
```
### Grafana Container Health
```bash
ssh srvoc0 "ssh 10.10.0.41 docker ps | grep grafana"
```
### InfluxDB CLI
```bash
docker exec -it influxdb influx query 'from(bucket: "home_assistant") |> range(start: -1h) |> limit(n: 5)'
```
### Backup Reminders
- HA backups auto-prune at 7 days — verify retention is working.
- InfluxDB data lives on SRvDocker1 at `/data/influxdb` — ensure this is included in backup policy.
- Grafana dashboard JSONs should be exported periodically.
---
## Related
- [ZWave-JS-UI Repository](https://cody.swordrock.com/SwordRock/ZWave-JS-UI) — Z-Wave network management
- [Zabbix Monitoring](https://cody.swordrock.com/SwordRock/Zabbix) — Network monitoring, UniFi data
- locky Vaultwarden — All credentials (InfluxDB admin token, Grafana admin password)