[2026-07-06] taiga-vault: family/how-to/truenas-infrastructure.md
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# TrueNAS — инфраструктура
|
# TrueNAS — инфраструктура
|
||||||
|
|
||||||
> Обновлено: 2026-05-29
|
> Обновлено: 2026-07-06
|
||||||
|
|
||||||
## Доступ
|
## Доступ
|
||||||
|
|
||||||
@@ -116,6 +116,67 @@ TrueNAS использует **NFSv4 ACL**, а не стандартный POSIX
|
|||||||
| cam.mallexxx.duckdns.org | Камера :8090 |
|
| cam.mallexxx.duckdns.org | Камера :8090 |
|
||||||
| docs.mallexxx.duckdns.org | Docs :8000 |
|
| docs.mallexxx.duckdns.org | Docs :8000 |
|
||||||
|
|
||||||
|
### Home Assistant — детали
|
||||||
|
|
||||||
|
- **Image:** `ghcr.io/home-assistant/home-assistant:stable`
|
||||||
|
- **Порт:** `8123:8123`
|
||||||
|
- **Volume:** `/mnt/RED_2TB/docker/ha` → `/config`
|
||||||
|
- Конфиги редактируются **напрямую на NAS** — `docker cp` не нужен, изменения применяются после reload/restart HA.
|
||||||
|
|
||||||
|
**Ключевые файлы конфига:**
|
||||||
|
|
||||||
|
| Файл | Назначение |
|
||||||
|
|------|------------|
|
||||||
|
| `configuration.yaml` | Главный конфиг: интеграции, template sensors, http trusted_proxies |
|
||||||
|
| `automations.yaml` | Все автоматизации (подключён через `!include`) |
|
||||||
|
| `scripts.yaml` | Скрипты |
|
||||||
|
| `.storage/lovelace.home_plan` | Dashboard с планом этажей (JSON, управляется HA UI) |
|
||||||
|
| `www/floorplan/floor1_ha.svg` | SVG фон первого этажа |
|
||||||
|
| `www/floorplan/floor2_ha.svg` | SVG фон второго этажа |
|
||||||
|
|
||||||
|
**Перезапуск после редактирования конфига:**
|
||||||
|
```bash
|
||||||
|
ssh truenas_admin@mallexxx.duckdns.org "docker restart homeassistant"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Проверка конфига перед перезапуском:**
|
||||||
|
```bash
|
||||||
|
ssh truenas_admin@mallexxx.duckdns.org "docker exec homeassistant python -m homeassistant --script check_config --config /config"
|
||||||
|
```
|
||||||
|
|
||||||
|
### mbusd — Modbus TCP gateway
|
||||||
|
|
||||||
|
Мост Modbus RTU → TCP: пробрасывает серийный порт инвертора AT2 вентиляции в TCP 502.
|
||||||
|
|
||||||
|
- **Image:** `3cky/mbusd`
|
||||||
|
- **Порт:** `502:502`
|
||||||
|
- **Config:** `/mnt/RED_2TB/docker/mbusd/mbusd.conf` → `/etc/mbusd.conf`
|
||||||
|
- **Device:** `/dev/ttyVent` → `/dev/ttyUSB0` (внутри контейнера)
|
||||||
|
|
||||||
|
### modbus-bridge — AT2 Modbus → MQTT
|
||||||
|
|
||||||
|
Кастомный Python-мост: читает регистры инвертора AT2 через mbusd и публикует в MQTT → Home Assistant.
|
||||||
|
|
||||||
|
- **Image:** `modbus-bridge` (локальная сборка)
|
||||||
|
- **Volumes:**
|
||||||
|
- `/mnt/RED_2TB/docker/modbus-bridge/config.yml` → `/app/config.yml` (ro)
|
||||||
|
- `/mnt/RED_2TB/docker/modbus-bridge/modbus_ha_bridge.py` → `/app/modbus_ha_bridge.py` (ro)
|
||||||
|
- **Source:** `modbus_ha_bridge.py` в репозитории `HA-ZONT-Modbus`
|
||||||
|
|
||||||
|
### USB device aliases
|
||||||
|
|
||||||
|
Файл правил: `/mnt/RED_2TB/system/99-tty-alias.rules`
|
||||||
|
|
||||||
|
```
|
||||||
|
SUBSYSTEM=="tty", KERNEL=="ttyUSB*", KERNELS=="2-1.5:1.0", SYMLINK+="ttyZONT"
|
||||||
|
SUBSYSTEM=="tty", KERNEL=="ttyUSB*", KERNELS=="2-1.6:1.0", SYMLINK+="ttyVent"
|
||||||
|
```
|
||||||
|
|
||||||
|
Применить после изменений:
|
||||||
|
```bash
|
||||||
|
cp /mnt/RED_2TB/system/99-tty-alias.rules /etc/udev/rules.d/ && udevadm control --reload-rules && udevadm trigger
|
||||||
|
```
|
||||||
|
|
||||||
## Hermes-Taiga агент
|
## Hermes-Taiga агент
|
||||||
|
|
||||||
| Параметр | Значение |
|
| Параметр | Значение |
|
||||||
@@ -175,6 +236,66 @@ git -C /mnt/RED_2TB/storage/git/obsidian-vault.git log --oneline -10
|
|||||||
|
|
||||||
Подробности: [[obsidian-sync]]
|
Подробности: [[obsidian-sync]]
|
||||||
|
|
||||||
|
## Home Assistant — что настроено
|
||||||
|
|
||||||
|
### `configuration.yaml`
|
||||||
|
|
||||||
|
- `http:` раздел: `use_x_forwarded_for: true`, `trusted_proxies: 172.16.0.0/12` — обязательно для работы через reverse proxy (Caddy)
|
||||||
|
- Modbus интеграция для вентиляторов AT2 и заслонок
|
||||||
|
- Template sensors (в блоке `template: - sensor:`):
|
||||||
|
|
||||||
|
| Сенсор | Пример | Описание |
|
||||||
|
|--------|--------|----------|
|
||||||
|
| `dining_summary` | "24° 450ppm" | Темп и CO₂ в столовой |
|
||||||
|
| `dining_air_summary` | "65tvoc 3pm" | TVOC и частицы в столовой |
|
||||||
|
| `kids_summary` | "22° 600ppm" | Темп и CO₂ в детской |
|
||||||
|
| `bedroom_summary` | "21° 500ppm" | Темп и CO₂ в спальне |
|
||||||
|
| `at2_1_summary` | "Off" / "45%" | AT2-1: объединённые on/off + скорость |
|
||||||
|
| `at2_2_summary` | "Off" / "45%" | AT2-2: объединённые on/off + скорость |
|
||||||
|
|
||||||
|
### `automations.yaml`
|
||||||
|
|
||||||
|
- ГВС циркуляция: вкл (09:30) / выкл (23:00)
|
||||||
|
- Вентиляционный вентилятор вкл в 05:00
|
||||||
|
- Проходной выключатель кабинета → toggle света в кабинете (`not_from: [unavailable, unknown]` — защита от ложных срабатываний при запуске HA)
|
||||||
|
- Подсветка лестницы: вкл/выкл по датчику освещённости
|
||||||
|
- Диммер спальни: toggle и цикл яркости
|
||||||
|
- Ночной свет в душе: присутствие + освещённость
|
||||||
|
- Уведомление: датчик протечки (котельная)
|
||||||
|
- Уведомления: низкий заряд батареи (несколько устройств)
|
||||||
|
|
||||||
|
### Floor Plan Dashboard (`lovelace.home_plan`)
|
||||||
|
|
||||||
|
Два вида — Ground Floor (`floor1`) и Second Floor (`floor2`) — `picture-elements` поверх SVG фона.
|
||||||
|
|
||||||
|
**Первый этаж (`floor1`):**
|
||||||
|
- Приточные заслонки: столовая (левая/правая), кабинет
|
||||||
|
- Вытяжные заслонки: кухня, туалет 1F
|
||||||
|
- Вентилятор 3 (кухонная вытяжка)
|
||||||
|
- Метки AT2-1 / AT2-2 (`sensor.at2_1_summary` / `sensor.at2_2_summary`)
|
||||||
|
- Сауна, обогревательный кабель
|
||||||
|
- Свет кабинет (левый/правый)
|
||||||
|
- Метка столовой (`sensor.dining_summary`) и качество воздуха (`sensor.dining_air_summary`)
|
||||||
|
|
||||||
|
**Второй этаж (`floor2`):**
|
||||||
|
- Приточные заслонки: детская, спальня, север
|
||||||
|
- Вытяжные заслонки: ванная, душ 2F
|
||||||
|
- Свет спальни (диммер)
|
||||||
|
- Метки: `sensor.kids_summary`, `sensor.bedroom_summary`
|
||||||
|
|
||||||
|
**SVG dark mode** — встроенный CSS в SVG-файлах:
|
||||||
|
```svg
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
path, line, polyline, polygon, rect, circle, ellipse { stroke: white; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
```
|
||||||
|
|
||||||
|
> ЖJSON Lovelace зафиксирован в git по пути `floorplan/lovelace.home_plan.json` (справочный снимок, HA **не** подгружает его автоматически).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Связанные заметки
|
## Связанные заметки
|
||||||
- [[truenas-access]] — SSH-доступ
|
- [[truenas-access]] — SSH-доступ
|
||||||
- [[truenas-rclone-backup]] — система бэкапов
|
- [[truenas-rclone-backup]] — система бэкапов
|
||||||
|
|||||||
Reference in New Issue
Block a user