Files
Home-Assistant/README.md

196 lines
6.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Home Assistant Infrastructure Documentation
> **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)