[2026-09-14] eagle: family/how-to/home-automation.md family/how-to/truenas-infrastructure.md family/plans/t610-home-automation.md
This commit is contained in:
@@ -23,7 +23,7 @@ related:
|
|||||||
> 📌 **Этот документ — справочник по ЖЕЛЕЗУ:** AT2 (параметры/PWM), карта Slave ID, регистры заслонок/реле, ZONT relays. Оборудование и адреса Modbus при миграции не меняются.
|
> 📌 **Этот документ — справочник по ЖЕЛЕЗУ:** AT2 (параметры/PWM), карта Slave ID, регистры заслонок/реле, ZONT relays. Оборудование и адреса Modbus при миграции не меняются.
|
||||||
> **Текущее состояние:** `unavailable` в HA — **8** (было 44 → 10 → 8). Оставшиеся все известные: 7 — slave 10 (AT2 fans, блок закомментирован, задача снята) + 1 — `todo.shopping_list` (системная). Первопричина массового отвала была в **перепутанных гнёздах аддонов** (`mbusd`↔`modbus-bridge`) — исправлено обменом привязок; ещё 2 (`dining_summary`/`dining_air_summary`) ожили после фикса сборки кадров bridge.
|
> **Текущее состояние:** `unavailable` в HA — **8** (было 44 → 10 → 8). Оставшиеся все известные: 7 — slave 10 (AT2 fans, блок закомментирован, задача снята) + 1 — `todo.shopping_list` (системная). Первопричина массового отвала была в **перепутанных гнёздах аддонов** (`mbusd`↔`modbus-bridge`) — исправлено обменом привязок; ещё 2 (`dining_summary`/`dining_air_summary`) ожили после фикса сборки кадров bridge.
|
||||||
>
|
>
|
||||||
> **📷 Камера — ✅ ЗАВЕДЕНА 2026-09-14:** USB-вебка **Logitech `046d:0825`** (смотрит на счётчик воды BK-G4T) подключена к t610 и работает в HA как сущность **`camera.usb_camera`** (кадр JPEG 640×480). Заводится **чисто YAML** — `camera: platform: ffmpeg`, `input: /dev/video0` в `configuration.yaml` (⚠️ **именно прямой `/dev/video0`**, не by-id — by-id-путь внутри контейнера Core не существует и даёт HTTP 500). Подробно и все опровергнутые пути — [[family/plans/t610-home-automation]] §5-кватер-И-3
|
> **📷 Камера — ⚠️ СХЕМУ МЕНЯЕМ (2026-09-14, вечер-10):** USB-вебка **Logitech `046d:0825`** (смотрит на счётчик воды BK-G4T) физически подключена к t610. Сейчас заведена в HA как **`camera.usb_camera`** (YAML `camera: platform: ffmpeg`, `input: /dev/video0`) — кадр JPEG 640×480, **НО** схема нестабильна: даёт **`Resource busy`** (устройство держит `stream_worker` HA Core) и **не даёт `unique_id`**. **🔴 РЕШЕНИЕ Alex: вернуть схему «как было на TrueNAS»** — там камера работала как **отдельный HTTP-MJPEG-сервис** (`cam.mallexxx.duckdns.org` → `192.168.2.197:8090`, т.е. `ustreamer`/`mjpg-streamer`), HA ходила к нему по URL. Контейнер **утрачен при пересоздании пула** (локальный образ не пережил `.ix-apps`). **План:** поднять MJPEG-сервис заново (**аддон** на t610 — вебка там, Docker в HA OS закрыт; **или** вернуть вебку на TrueNAS) → Generic Camera по URL потока → ✅ `unique_id` + зона `kotelnaia` + мультиклиент (телефон/Frigate). История и все тупики — [[family/plans/t610-home-automation]] §5-кватер-И-3
|
||||||
>
|
>
|
||||||
> ⚠️ **Зону камере назначить нельзя** — у YAML-`ffmpeg`-камеры **нет unique_id** (в схеме интеграции только `input`/`name`/`extra_arguments`), поэтому она отсутствует в `entity_registry` и в UI пишет «does not have a unique ID → settings cannot be managed». **Это не ошибка** — штатное ограничение (офиц. FAQ HA). Обход — переименовать (`name: Камера котельной`). Разбор — [[family/plans/t610-home-automation]] §5-кватер-И-5.
|
> ⚠️ **Зону камере назначить нельзя** — у YAML-`ffmpeg`-камеры **нет unique_id** (в схеме интеграции только `input`/`name`/`extra_arguments`), поэтому она отсутствует в `entity_registry` и в UI пишет «does not have a unique ID → settings cannot be managed». **Это не ошибка** — штатное ограничение (офиц. FAQ HA). Обход — переименовать (`name: Камера котельной`). Разбор — [[family/plans/t610-home-automation]] §5-кватер-И-5.
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
> - DNAT на роутере `192.168.2.2`: `firewall.@redirect[0]` (name `MQTT`) и `firewall.@rule[3]` (name `allow-1883`) — `dest_ip` `192.168.2.197` → **`192.168.2.176`**. `uci commit firewall` + `/etc/init.d/firewall reload`. Бэкап: `/root/firewall.bak-20260914-092555`.
|
> - DNAT на роутере `192.168.2.2`: `firewall.@redirect[0]` (name `MQTT`) и `firewall.@rule[3]` (name `allow-1883`) — `dest_ip` `192.168.2.197` → **`192.168.2.176`**. `uci commit firewall` + `/etc/init.d/firewall reload`. Бэкап: `/root/firewall.bak-20260914-092555`.
|
||||||
> - **Результат:** ZONT пишет в mosquitto-**аддон на t610** (живой поток `modbus/sensors/kids/*`, `bedroom/*`). В настройках ZONT ничего не менялось (`mqtt://…@192.168.0.10:1883`, где `.0.10` = wan-интерфейс роутера `192.168.2.2`, не отдельный GPON-роутер).
|
> - **Результат:** ZONT пишет в mosquitto-**аддон на t610** (живой поток `modbus/sensors/kids/*`, `bedroom/*`). В настройках ZONT ничего не менялось (`mqtt://…@192.168.0.10:1883`, где `.0.10` = wan-интерфейс роутера `192.168.2.2`, не отдельный GPON-роутер).
|
||||||
> - ✅ **`dining/*` тоже публикуется (2026-09-14, позже):** прежняя версия «ZONT не публикует / мёртвый upstream» — **❌ ОПРОВЕРГНУТА**. Причина была в **баге сборки RTU-кадров в `modbus-bridge`** (19-байтный кадр гостиной рвался), фикс `3748feb` → все 7 полей `dining` живы. Подробно — [[family/plans/t610-home-automation]] §5-кватер-З.
|
> - ✅ **`dining/*` тоже публикуется (2026-09-14, позже):** прежняя версия «ZONT не публикует / мёртвый upstream» — **❌ ОПРОВЕРГНУТА**. Причина была в **баге сборки RTU-кадров в `modbus-bridge`** (19-байтный кадр гостиной рвался), фикс `3748feb` → все 7 полей `dining` живы. Подробно — [[family/plans/t610-home-automation]] §5-кватер-З.
|
||||||
> - **❌ «Камера на TrueNAS» — ОПРОВЕРГНУТО (2026-09-14):** камера — это **USB-вебка Logitech `046d:0825`**, физически подключённая **к t610**, а не контейнер на TrueNAS. Заведена в HA как `camera.usb_camera` (ffmpeg). Мёртвый upstream `cam.*:8090` в Caddy к камере отношения не имеет. Подробно — [[family/plans/t610-home-automation]] §5-кватер-И-3.
|
> - **⚠️ «Камера на TrueNAS» — ИСПРАВЛЕНО (2026-09-14, вечер-10):** прежняя запись «камера = USB-вебка на t610, upstream `cam.*:8090` к камере отношения не имеет» — **❌ НЕВЕРНА**. Поиск в `Caddyfile.bak` доказал: **`cam.mallexxx.duckdns.org → 192.168.2.197:8090` — ЭТО И БЫЛА камера** на TrueNAS: отдельный HTTP-MJPEG-сервис (`ustreamer`/`mjpg-streamer`, порт 8090 — канон для «USB-вебка → MJPEG»). **Контейнер УТРАЧЕН** при пересоздании пула (локальный образ не пережил `.ix-apps`, папка/конфиг не сохранились, остался только след в `Caddyfile.bak`; из живого Caddyfile строка уже удалена). Сейчас вебка `046d:0825` физически в **t610** и заведена как `camera.usb_camera` (ffmpeg) — но эта схема даёт `Resource busy` и не даёт `unique_id`. **План: вернуть схему «отдельный MJPEG-сервис» (аддон ustreamer/go2rtc на t610 или контейнер на TrueNAS) → Generic Camera по URL → уникальный ID + зона.** Подробно — [[family/plans/t610-home-automation]] §5-кватер-И-3.
|
||||||
> - **Не перенесено с TrueNAS:** погашение TrueNAS-стека (Этап 4 п.6 — заблокировано: Caddy на TrueNAS держит точку входа).
|
> - **Не перенесено с TrueNAS:** погашение TrueNAS-стека (Этап 4 п.6 — заблокировано: Caddy на TrueNAS держит точку входа).
|
||||||
|
|
||||||
> Обновлено: 2026-09-02 (vpn.mallexxx:443 = РАБОЧИЙ Xray-сервер, проверено end-to-end; vless-proxy outbound мёртв)
|
> Обновлено: 2026-09-02 (vpn.mallexxx:443 = РАБОЧИЙ Xray-сервер, проверено end-to-end; vless-proxy outbound мёртв)
|
||||||
@@ -212,7 +212,7 @@ arr, caddy, cups, filebrowser, gitea, hermes, immich, inpx-web, inpxer, library,
|
|||||||
| library.mallexxx.duckdns.org | library-app :8080 🔒 basicauth (user: books-admin) |
|
| library.mallexxx.duckdns.org | library-app :8080 🔒 basicauth (user: books-admin) |
|
||||||
| portainer.mallexxx.duckdns.org | Portainer :9000 |
|
| portainer.mallexxx.duckdns.org | Portainer :9000 |
|
||||||
| truenas.mallexxx.duckdns.org | TrueNAS UI :80 |
|
| truenas.mallexxx.duckdns.org | TrueNAS UI :80 |
|
||||||
| cam.mallexxx.duckdns.org | Камера :8090 |
|
| cam.mallexxx.duckdns.org | **Камера :8090** — ⚠️ **строка УДАЛЕНА из живого Caddyfile** (2026-09-14): контейнер MJPEG утрачен при пересоздании пула. Исторический upstream — «USB-вебка → MJPEG-сервис на TrueNAS». См. запись о камере выше |
|
||||||
| docs.mallexxx.duckdns.org | Docs :8000 |
|
| docs.mallexxx.duckdns.org | Docs :8000 |
|
||||||
| **vpn-panel.mallexxx.duckdns.org** | **3x-ui панель :2053** (добавлен 2026-09-01) |
|
| **vpn-panel.mallexxx.duckdns.org** | **3x-ui панель :2053** (добавлен 2026-09-01) |
|
||||||
| **vpn.mallexxx.duckdns.org** | **Xray VLESS-WS (путь /vless) → xray-admin:10095** (добавлен 2026-09-01) |
|
| **vpn.mallexxx.duckdns.org** | **Xray VLESS-WS (путь /vless) → xray-admin:10095** (добавлен 2026-09-01) |
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
## 1. Состояние на 2026-09-14 (актуализировано 15:33 → дополнено вечерней сессией)
|
## 1. Состояние на 2026-09-14 (актуализировано 15:33 → дополнено вечерней сессией)
|
||||||
|
|
||||||
**Этап 1 ✅ · Этап 2 ✅ · Этап 3 ✅ ЗАКРЫТ.** Этап 4 — **ПОЧТИ ЗАКРЫТ (3 из 4):** ① Caddy → t610 (`mallexxx.duckdns.org` → HA на t610, HTTP 200); ② Node-RED flows перенесены, `Connected to HA`, наружу не выпущен (решение Alex «оставляем так», доступ через ingress); ③ **ZONT MQTT-редирект переключён на t610** (DNAT на роутере `.197`→`.176`, живой поток идёт). **ОСТАЛОСЬ:** погасить/отключить сервисы TrueNAS (заблокировано — Caddy на TrueNAS держит точку входа) + хвосты (static IP, бэкап).
|
**Этап 1 ✅ · Этап 2 ✅ · Этап 3 ✅ ЗАКРЫТ.** Этап 4 — **ПОЧТИ ЗАКРЫТ (3 из 4):** ① Caddy → t610 (`mallexxx.duckdns.org` → HA на t610, HTTP 200); ② Node-RED flows перенесены, `Connected to HA`, наружу не выпущен (решение Alex «оставляем так», доступ через ingress); ③ **ZONT MQTT-редирект переключён на t610** (DNAT на роутере `.197`→`.176`, живой поток идёт). **ОСТАЛОСЬ:** погасить/отключить сервисы TrueNAS (заблокировано — Caddy на TrueNAS держит точку входа) + хвосты (static IP, бэкап).
|
||||||
**Последняя верификация: 2026-09-14 (вечер-9) — КАМЕРА ПОЛНОСТЬЮ РАБОТАЕТ.** Камера = USB-вебка Logitech `046d:0825`, заведена через **`camera: platform: ffmpeg`, `input: /dev/video0`** → сущность `camera.usb_camera`, **кадр JPEG 640×480 отдаётся (HTTP 200, 17 КБ)**, на снимке счётчик воды BK-G4T. Все тупики (go2rtc-файл, Generic Camera, `usb_camera`, by-id-путь) опровергнуты — канон в **§5-кватер-И-3**. До этого: фикс bridge (T3.5, вечер-6) держится, `dining` стабилен, диагностика снята (вечер-7); вечер-8 — static IP t610 + триггер душевой на падение освещённости. **HA long-lived token сохранён в §5-кватер-И-3.**
|
**Последняя верификация: 2026-09-14 (вечер-10) — КАМЕРА: СХЕМУ МЕНЯЕМ.** Разбор: камера на TrueNAS **была** — `cam.mallexxx.duckdns.org → 192.168.2.197:8090` (отдельный **HTTP-MJPEG-сервис**, `ustreamer`/`mjpg-streamer`), контейнер **утрачен при пересоздании пула** (локальный образ не пережил `.ix-apps`; остался только след в `Caddyfile.bak`). Прежняя запись «upstream `:8090` к камере отношения не имеет» — **❌ НЕВЕРНА** (исправлено). Сейчас вебка `046d:0825` физически в **t610**, заведена как `camera.usb_camera` (ffmpeg, `input: /dev/video0`) — кадр JPEG 640×480 отдаётся, **НО** даёт `Resource busy` и не даёт `unique_id` → зоны нет. **🔴 Alex: вернуть схему «как было на TrueNAS»** — отдельный MJPEG-сервис → Generic Camera по URL → ID + зона. Канон и тупики — **§5-кватер-И-3**. До этого: фикс bridge (T3.5) держится, `dining` стабилен; static IP t610 + триггер душевой. **HA long-lived token — в §5-кватер-И-3.**
|
||||||
|
|
||||||
| Что | Факт |
|
| Что | Факт |
|
||||||
|---|---|
|
|---|---|
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
| **`sensor.fan_at2_*` / `switch.fan_3_*` — сироты** | В `configuration.yaml` **весь блок slave 10 (AT2 fans) закомментирован** → эти сущности физически не могут получать данные. Не задача — просто известный факт состояния конфига |
|
| **`sensor.fan_at2_*` / `switch.fan_3_*` — сироты** | В `configuration.yaml` **весь блок slave 10 (AT2 fans) закомментирован** → эти сущности физически не могут получать данные. Не задача — просто известный факт состояния конфига |
|
||||||
| `switch.sauna` = `unknown` | Розетка физически отключена (`lastSeen` 8+ ч) — не баг |
|
| `switch.sauna` = `unknown` | Розетка физически отключена (`lastSeen` 8+ ч) — не баг |
|
||||||
| ZONT не перенаправлен | **✅ ПЕРЕНАПРАВЛЕН 2026-09-14 (вечер-3, §5-кватер-Д):** DNAT на роутере `192.168.2.2` (`redirect[0]` MQTT + `rule[3]`) переключён `.197`→`.176`; ZONT пишет в mosquitto **t610** (живой поток kids/bedroom). ⚠️ Не решено: `dining/*` не публикуется — **ответ на шине есть, bridge его не отдаёт** (§5-кватер-Д, задача №3) |
|
| ZONT не перенаправлен | **✅ ПЕРЕНАПРАВЛЕН 2026-09-14 (вечер-3, §5-кватер-Д):** DNAT на роутере `192.168.2.2` (`redirect[0]` MQTT + `rule[3]`) переключён `.197`→`.176`; ZONT пишет в mosquitto **t610** (живой поток kids/bedroom). ⚠️ Не решено: `dining/*` не публикуется — **ответ на шине есть, bridge его не отдаёт** (§5-кватер-Д, задача №3) |
|
||||||
| Камера | ✅✅ **РАБОТАЕТ (2026-09-14, вечер-9).** USB-вебка Logitech `046d:0825` → **`camera: platform: ffmpeg` + `input: /dev/video0`** в `configuration.yaml` → сущность **`camera.usb_camera`**, кадр JPEG 640×480 (HTTP 200). Канон и опровергнутые тупики — **§5-кватер-И-3**. ⚠️ **Зона НЕ назначается** (у ffmpeg-камеры нет `unique_id`) — §5-кватер-И-5. **Осталось:** (1) решить с Alex — переименовать в «Камера котельной» или оставить; (2) удалить лишний `/config/go2rtc.yaml`; (3) ⚠️ не занимать `/dev/video0` тестовыми пробами (→ `Resource busy`, лечится `ha core restart`) |
|
| Камера | ⚠️ **РАБОТАЕТ, НО СХЕМУ МЕНЯЕМ (2026-09-14, вечер-10).** Сейчас: USB-вебка Logitech `046d:0825` → **`camera: platform: ffmpeg` + `input: /dev/video0`** → `camera.usb_camera`, кадр JPEG 640×480 (HTTP 200). **НО:** даёт `Resource busy` (устройство держит `stream_worker` Core) и **нет `unique_id`** → зона не назначается. **🔴 РЕШЕНО Alex: вернуть схему «как на TrueNAS»** — отдельный MJPEG-сервис (`cam.*` → `:8090`, `ustreamer`/`mjpg-streamer`), утраченный при пересоздании пула. **План:** аддон ustreamer/go2rtc на t610 (вебка там) ИЛИ вернуть вебку на TrueNAS → Generic Camera по URL → уникальный ID + зона. Детали — **§5-кватер-И-3**. **Ещё:** удалить лишний `/config/go2rtc.yaml` |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -2016,6 +2016,7 @@ curl -s -X POST -H "$HDR" -H "Content-Type: application/json" \
|
|||||||
| A3 | **№8**: Бэкап конфигов t610 | ✅ низкий | `tar` конфигов t610 (`/config`, **`.storage/http`**, Caddyfile) → Mac + TrueNAS + коммит в Gitea `git.mallexxx.duckdns.org` (репо `git_admin/HA-ZONT-Modbus` уже создан) |
|
| A3 | **№8**: Бэкап конфигов t610 | ✅ низкий | `tar` конфигов t610 (`/config`, **`.storage/http`**, Caddyfile) → Mac + TrueNAS + коммит в Gitea `git.mallexxx.duckdns.org` (репо `git_admin/HA-ZONT-Modbus` уже создан) |
|
||||||
| ~~A4~~ | ~~**Ночной свет душевой**: триггер на падение освещённости~~ | — | **✅ ВЫПОЛНЕНО 2026-09-14 (вечер-8, §5-кватер-И-2):** в automation `1771997851260` добавлен триггер `illuminance below:8` + условие `is_occupied`. Проверено через API: `triggers`=2, `conditions`=2 |
|
| ~~A4~~ | ~~**Ночной свет душевой**: триггер на падение освещённости~~ | — | **✅ ВЫПОЛНЕНО 2026-09-14 (вечер-8, §5-кватер-И-2):** в automation `1771997851260` добавлен триггер `illuminance below:8` + условие `is_occupied`. Проверено через API: `triggers`=2, `conditions`=2 |
|
||||||
| ~~**A5**~~ | ~~**Камера**: USB-вебка Logitech `046d:0825` на t610 → завести в HA~~ | — | **✅✅ ВЫПОЛНЕНО 2026-09-14 (вечер-9, §5-кватер-И-3).** Канон — **`camera: platform: ffmpeg` + `input: /dev/video0`** в `configuration.yaml` (не go2rtc, не Generic Camera, не `usb_camera`). Сущность `camera.usb_camera`, **кадр JPEG 640×480 живой**. Бэкапы `.bak-cam-*`. Лишний `/config/go2rtc.yaml` подлежит удалению |
|
| ~~**A5**~~ | ~~**Камера**: USB-вебка Logitech `046d:0825` на t610 → завести в HA~~ | — | **✅✅ ВЫПОЛНЕНО 2026-09-14 (вечер-9, §5-кватер-И-3).** Канон — **`camera: platform: ffmpeg` + `input: /dev/video0`** в `configuration.yaml` (не go2rtc, не Generic Camera, не `usb_camera`). Сущность `camera.usb_camera`, **кадр JPEG 640×480 живой**. Бэкапы `.bak-cam-*`. Лишний `/config/go2rtc.yaml` подлежит удалению |
|
||||||
|
| **A6** | **Камера — вернуть схему «как на TrueNAS»** (решение Alex, вечер-10) | 🔴 средний | `ffmpeg`-в-Core нестабилен (`Resource busy`) и без `unique_id`. **Поднять отдельный HTTP-MJPEG-сервис** (`ustreamer`/`mjpg-streamer`/go2rtc-аддон) → `http://<host>:8090/?action=stream` → **Generic Camera по URL** → `unique_id` + зона `kotelnaia`. Историч. upstream был `cam.mallexxx.duckdns.org → 192.168.2.197:8090` (контейнер утрачен, `Caddyfile.bak` — след). **Вопрос Alex: аддон на t610 (вебка там) или вернуть вебку на TrueNAS?** Затем убрать блок `camera:` из `configuration.yaml` |
|
||||||
|
|
||||||
**Вариант B — Этап 4 целиком** (№5: Caddy upstream → t610 + GPON-редирект → t610 + ZONT MQTT → t610). 🔴 Трогает рабочее → нужно окно и согласование с Alex. **Caddy-часть СДЕЛАНА (§5-кватер-Б/В).**
|
**Вариант B — Этап 4 целиком** (№5: Caddy upstream → t610 + GPON-редирект → t610 + ZONT MQTT → t610). 🔴 Трогает рабочее → нужно окно и согласование с Alex. **Caddy-часть СДЕЛАНА (§5-кватер-Б/В).**
|
||||||
|
|
||||||
@@ -2035,6 +2036,13 @@ curl -s -X POST -H "$HDR" -H "Content-Type: application/json" \
|
|||||||
4. **Причину искать в той шине, где она есть** — не «диагностировать» вслепую обе.
|
4. **Причину искать в той шине, где она есть** — не «диагностировать» вслепую обе.
|
||||||
5. Alex устаёт от споров и повторов. Если он говорит «проверяй» — **проверять, а не возражать**. Его вопрос = команда.
|
5. Alex устаёт от споров и повторов. Если он говорит «проверяй» — **проверять, а не возражать**. Его вопрос = команда.
|
||||||
|
|
||||||
|
**🔴 ПРОЦЕССНЫЙ УРОК (2026-09-14, вечер-10) — СНАЧАЛА ДОКИ, ПОТОМ БЭКАПЫ:**
|
||||||
|
Агент полез в бэкап Cloud Mail.ru «искать, где была камера», вместо того чтобы **сразу открыть vault**: ответ лежал в `truenas-infrastructure.md` (таблица доменов Caddy: `cam.mallexxx.duckdns.org → Камера :8090`). Alex нашёл его мгновенно. Правила:
|
||||||
|
1. **Вопрос «как было / где настроено» → ПЕРВЫМ ДЕЛОМ `search_notes`/`read_note` в vault.** Только если в доке нет ответа — лезть в бэкапы/репозитории.
|
||||||
|
2. **Бэкап-remote — второй источник, не первый.** `mailru-crypt:` листится медленно и не содержит того, что уже описано в доке.
|
||||||
|
3. **Не спорить с Alex о фактах — проверять то, что он называет.** «В доках смотрел?!» = агент пропустил шаг №1.
|
||||||
|
4. **Осторожно с формулировкой «ОПРОВЕРГНУТО».** Ранее агент записал «upstream `:8090` к камере отношения не имеет» — это оказалось **неверно** (обратное). Помечать как опровергнутое только то, что реально проверено до конца. Следствие: доки врали, и это стоило полсессии.
|
||||||
|
|
||||||
**Отключение TrueNAS (только после полной проверки):**
|
**Отключение TrueNAS (только после полной проверки):**
|
||||||
```bash
|
```bash
|
||||||
ssh truenas_admin@mallexxx.duckdns.org
|
ssh truenas_admin@mallexxx.duckdns.org
|
||||||
@@ -2051,8 +2059,23 @@ docker restart caddy
|
|||||||
|
|
||||||
**Итог: ✅✅ РАБОТАЕТ.** Сущность `camera.usb_camera`, кадр JPEG 640×480, HTTP 200.
|
**Итог: ✅✅ РАБОТАЕТ.** Сущность `camera.usb_camera`, кадр JPEG 640×480, HTTP 200.
|
||||||
|
|
||||||
### Что за камера (первоначальная версия ОПРОВЕРГНУТА)
|
### Что за камера — ⚠️ ЧАСТИЧНО ИСПРАВЛЕНО 2026-09-14 (вечер-10)
|
||||||
Была гипотеза «камера = контейнер на TrueNAS, upstream `:8090`». **❌ ОПРОВЕРГНУТО.** Камера — **USB-вебка Logitech `046d:0825`**, подключена напрямую к t610. Upstream в Caddy не нужен: HA отдаёт камеру через собственный API (`/api/camera_proxy/camera.usb_camera`).
|
|
||||||
|
**❌ ОПРОВЕРГНУТА прежняя формулировка «upstream `:8090` к камере отношения не имеет».** Поиск в доках + `Caddyfile.bak` доказал: **`cam.mallexxx.duckdns.org → 192.168.2.197:8090` — ЭТО И БЫЛА камера**, работавшая на TrueNAS как **отдельный HTTP-MJPEG-сервис** (порт 8090 — канонический для `mjpg-streamer` / `ustreamer`: USB-вебка → MJPEG-поток). Т.е. **исторически схема была «контейнер + MJPEG» — ровно тот вариант, что предлагал Alex.**
|
||||||
|
|
||||||
|
Хронология (важно для будущих сессий):
|
||||||
|
1. **Раньше (TrueNAS):** вебка → контейнер (`ustreamer`/`mjpg-streamer`) → `:8090` → Caddy `cam.mallexxx.duckdns.org` → HA подключалась к нему как к сети.
|
||||||
|
2. **Контейнер УТРАЧЕН** при пересоздании пула (как `cups-splix` — локальный образ пропал с `.ix-apps`). Папки/конфига **не осталось даже на диске**, только след в `Caddyfile.bak`. Строка `cam.*` из **живого** Caddyfile уже удалена.
|
||||||
|
3. **Сейчас:** вебка физически в **t610**; заведена в HA как `camera: platform: ffmpeg` + `input: /dev/video0` → `camera.usb_camera`.
|
||||||
|
|
||||||
|
**🔴 Следствие двух схем (почему текущая хуже):** `ffmpeg`-камера внутри Core **отдаёт `Resource busy`** (устройство держит `stream_worker` Core), работает нестабильно и **не даёт `unique_id`** → зону назначить нельзя. Схема «отдельный MJPEG-сервис» этих проблем не имеет: один процесс держит вебку, HA ходит по URL → **и `unique_id`, и зона, и мультиклиент (телефон/Frigate)**. Именно поэтому Alex настаивал «сделать как было на TrueNAS».
|
||||||
|
|
||||||
|
### 🎯 СЛЕДУЮЩИЙ ШАГ ПО КАМЕРЕ (ждёт решения Alex)
|
||||||
|
Поднять **отдельный сервис, отдающий MJPEG/RTSP** (ustreamer / mjpg-streamer / go2rtc-аддон) вместо `camera: ffmpeg`:
|
||||||
|
- **Где:** вебка физически в t610 → либо **аддон** в HA OS (Docker там закрыт для CLI, но аддоны работают), либо вернуть вебку на TrueNAS и поднять контейнер там «как было».
|
||||||
|
- **Потом:** Generic Camera по URL потока (`http://<host>:8090/?action=stream`) → ✅ `unique_id` → ✅ зона `kotelnaia`.
|
||||||
|
- Убрать блок `camera:` из `configuration.yaml` (освободить `/dev/video0`).
|
||||||
|
- **Вопрос Alex:** аддон на t610 (вебка там) **или** вернуть вебку на TrueNAS?
|
||||||
|
|
||||||
Параметры устройства:
|
Параметры устройства:
|
||||||
- `lsusb`: `046d:0825` (Logitech, UVC-вебка)
|
- `lsusb`: `046d:0825` (Logitech, UVC-вебка)
|
||||||
|
|||||||
Reference in New Issue
Block a user