diff --git a/family/documents/home-automation-wishlist.md b/family/documents/home-automation-wishlist.md index 4db2978a..834ba72e 100644 --- a/family/documents/home-automation-wishlist.md +++ b/family/documents/home-automation-wishlist.md @@ -2,7 +2,7 @@ title: "🏡 Умный дом — хотелки и роадмап автоматизаций" aliases: [Умный дом, Умный дом хотелки, Home automation, Smart home, home-automation-wishlist] tags: [family, lists, smart-home, tech] -updated: 2026-09-15 (вечер-3: найдена первопричина RCU stall — ffmpeg/go2rtc; watchdog включён) +updated: 2026-09-16 (H2000_PRO: единицы °F→°C; уточнение по `heating_cable_plug`; новый расчёт греющего кабеля) related: - "[[family/how-to/home-automation]]" - "[[family/how-to/ha-automations]]" @@ -70,7 +70,7 @@ related: ### 7. Энергетика — что реально жрёт ZONT-реле котлов уже дают статусы; 2 Zigbee-розетки с мониторингом есть (`recirculation_pump`, `heating_cable_plug`). **Добавить:** токовые клещи (Zigbee) на ввод/котёл → видно, где деньги. -> ⚠️ **Проверено 2026-09-15:** `heating_cable_plug` отдаёт `0 Вт / 0 кВт·ч` — либо нагрузка реально не подключена, либо измерения не идут. `sauna` в `state.json` = `null`. Прежде чем считать по ним энергию — убедиться, что мониторинг живой. Инвентарь — [[family/how-to/home-automation]]. +> ✅ **УТОЧНЕНО 2026-09-16:** `0 Вт / 0 кВт·ч` — **норма, а не поломка**: `switch.heating_cable_plug` = `off`, поэтому нагрузка не потребляет, при этом `voltage = 223 В` (розетка жива). `sauna` в `state.json` = `null`. Полный разбор железа и **расчёт порогов включения греющего кабеля** — [[family/tech/heating-cable-water-inlet]]. ### 8. Дашборд + алерты в Telegram Без этого автоматика «невидима». Один экран + пуш на всё критичное. Частично уже в вишлисте UI (см. §4). @@ -119,5 +119,6 @@ ZONT-реле котлов уже дают статусы; 2 Zigbee-розетк - [[family/how-to/home-automation]] — карта железза: AT2 (параметры/PWM), Slave ID, регистры заслонок/реле, ZONT relays - [[family/how-to/ha-automations]] — логика HA-автоматизаций, карта device_id/entity_id, разбор дефекта «ночной свет душевой» - [[family/how-to/home-automation]] — алгоритм вентиляции по CO₂ (Node-RED) +- [[family/tech/heating-cable-water-inlet]] — расчёт порога включения греющего кабеля ввода воды - [[family/documents/home-wishlist]] — хотелки по дому и участку (не автоматизация) - [[family/index]] — топик-карта family/ diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md index 352bf3b3..f228eeb2 100644 --- a/family/how-to/home-automation.md +++ b/family/how-to/home-automation.md @@ -2,7 +2,7 @@ title: "🏠 Домашняя автоматизация" aliases: [Умный дом, Home automation, HA, Zigbee, Modbus, вентиляция, t610, RCU stall, USB reset] tags: [family, how-to, smarthome] -updated: 2026-09-15 (✅ поздний вечер — Zigbee: +7 новых TS0201 тёплых полов, единый вид ID у 23 устройств, 12 алертов батарей, виртуальные Modbus slave 105–112 в bridge; исправлен slave 100, отдававший `0`. §9 — CO2 ЗАКРЫТ. §3.9 — память: 4 ГБ BIOS → 3.31 ГБ usable. Дока Zigbee — [[family/tech/zigbee-t610-z2m-i-zha]]) +updated: 2026-09-16 (H2000_PRO: единицы °F→°C через `options_domain: sensor.private`; питфолл доступа к API с Mac — только через SSH. §2. Греющий кабель ввода воды — [[family/tech/heating-cable-water-inlet]]) --- # 🏠 Домашняя автоматизация @@ -120,12 +120,23 @@ ssh -i ~/.ssh/id_rsa root@192.168.2.176 '<команда>' # аддон core_ | Канал | Как | Ограничение | |---|---|---| | HA API | `https://mallexxx.duckdns.org` + `/tmp/.hatok` | ✅ без апрувов — основной | +| HA API изнутри t610 | `ssh root@192.168.2.176` → `curl http://172.30.32.1/api/` | ✅ без апрувов, порт **80** (без `:8123`) | | SSH | `ssh -i ~/.ssh/id_rsa root@192.168.2.176` | только ключ; из локалки Mac ✅ | | Веб | `mallexxx.duckdns.org` (Caddy) → `.176:80` | — | | Извне SSH | ❌ нет проброса 22 | — | | С NAS | ✅ юзер `nas`, `-F /mnt/RED_2TB/backup/t610/.ssh/config` (алиас `t610-backup`) | у `truenas_admin` ключа НЕТ — норма | | `ssh -J` | ❌ `AllowTcpForwarding no` на TrueNAS | — | +> 🔴 **ПИТФОЛЛ: `http://192.168.2.176:8123` и `http://172.30.32.1` с Mac НЕ РАБОТАЮТ** (`curl` → `000`, соединение не устанавливается). Формы из §«Доступ» применимы только: `.176:8123` — из локалки по HTTPS через Caddy; `172.30.32.1` — **только изнутри t610** (это IP хоста HA Core в docker-сети аддонов). +> Если нужен доступ к API с Mac — забирать через SSH-однострочник: +> ```bash +> TOK=$(cat /tmp/.hatok) +> ssh root@192.168.2.176 "curl -s -H 'Authorization: Bearer $TOK' http://172.30.32.1/api/states" > /tmp/ha_states.json +> jq 'length' /tmp/ha_states.json +> ``` +> ⚠️ Токен `/tmp/.hatok` лежит на **Mac**, не на t610 — передавать его в SSH-команду из Mac. +> 📄 Готовый скрипт: `~/tmp-t610/get_states.sh`. + **Границы прав:** контейнер HA Core из аддона `core_ssh` НЕ инспектируется (`docker` нет, PID-ns свой, Supervisor exec → 403, Core REST → 401, `/sys` ro). Но `/sys/class/hwmon/hwmon0` (`k10temp`) виден. Хостовый SSH (22222) выключен, по сети не включается — только флешкой. --- @@ -441,7 +452,7 @@ ssh -i ~/.ssh/id_rsa root@192.168.2.176 \ | `light_stairs` | TS0002 | подсветка лестницы | Лестница | | `kitchen_hood` | TS0003 | вытяжка кухни (3 скорости) | Кухня | | `sauna` | TS011F | реле сауны | — | -| `heating_cable_plug` | TS011F | розетка греющего кабеля | — | +| `heating_cable_plug` | TS011F | розетка греющего кабеля ввода воды | Котельная | | `boiler_controller_power` | TS011F | питание контроллера котла | Котельная | | `recirculation_pump` | TS011F | розетка циркуляции ГВС | — | | `boiler_water_leak` | TS0207 | датчик протечки котельной | Котельная | diff --git a/family/tech/heating-cable-water-inlet.md b/family/tech/heating-cable-water-inlet.md new file mode 100644 index 00000000..27baa19a --- /dev/null +++ b/family/tech/heating-cable-water-inlet.md @@ -0,0 +1,156 @@ +--- +title: "Греющий кабель ввода воды — порог включения (расчёт)" +aliases: [Греющий кабель, heating_cable_plug, ввод воды, промерзание, обогрев водопровода] +type: tech +namespace: family +status: 🟡 Расчёт выполнен, автоматизация НЕ создана (ждёт решения Alex по типу кабеля) +created: '2026-09-16' +updated: '2026-09-16' +tags: + - family + - smarthome + - t610 + - heating + - zimnik +related: + - '[[family/how-to/home-automation]]' + - '[[family/how-to/ha-automations]]' + - '[[family/documents/home-automation-wishlist]]' +--- + +# Греющий кабель ввода воды — порог включения + +> **Задача:** определить, при какой уличной температуре включать греющий кабель, обогревающий ввод воды в дом. +> **Конструкция:** труба (ПНД) уходит сквозь бетонную фундамент-подушку **30 см** и далее в грунт (**суглинок**) на глубину **~4 м**. +> **Регион:** Новосибирск, ДНП «Лаки Парк» (55.257328, 83.048234). + +--- + +## 1. ИТОГ — пороги автоматизации + +| Параметр | Значение | Обоснование | +|---|---|---| +| **ВКЛ** | улица ≤ **−8 °C**, выдержка **≥ 30 мин** | при −8 °C труба в бетоне достигает 0 °C (см. §4) | +| **ВЫКЛ** | улица ≥ **−3 °C**, выдержка **≥ 30 мин** | гистерезис 5 °C — бетон оттаивает медленно | +| **Безусловный ВКЛ** | улица ≤ **−20 °C** | игнорирует выдержку и гистерезис | +| **Алерт обрыва** | включили + 5 мин → `power < 5 W` | кабель/нагрузка не подключены | + +**Датчик-триггер:** `sensor.h2000_pro_temperatura_ulitsa` (ZONT H2000_PRO, ZONT-шина). +**Исполнитель:** `switch.heating_cable_plug` (розетка NEO NAS-WR01B, Zigbee `a4c138eb6fbe9d19`, зона `kotelnaia`). + +--- + +## 2. Климатология (СП 131.13330.2020, табл. 5.1 — Новосибирск) + +| Месяц | t, °C | | Месяц | t, °C | +|---|---|---|---|---| +| янв | −17,6 | | июл | +19,4 | +| фев | −15,4 | | авг | +16,4 | +| мар | −7,7 | | сен | +9,9 | +| апр | +2,3 | | окт | +1,5 | +| май | +11,0 | | ноя | −7,9 | +| июн | +17,3 | | дек | −15,3 | + +- **Сумма среднемесячных отрицательных** `Mt = 17,6 + 15,4 + 7,7 + 7,9 + 15,3 = 63,9` +- **Среднегодовая t воздуха** = +1,2 °C +- Минимальная температура (СП 20.13330, карта 4) = −45 °C + +--- + +## 3. Глубина промерзания и что творится на 4 м + +**Формула СП 22.13330:** `d_fn = d0 · √Mt`, где `d0` зависит от грунта. + +| Грунт | `d0` | `d_fn` | +|---|---|---| +| **Суглинок / глина** | 0,23 | **1,84 м** | +| Супесь, песок мелкий/пылеватый | 0,28 | 2,24 м | +| Песок гравелистый/крупный | 0,30 | 2,40 м | +| Крупнообломочный | 0,34 | 2,72 м | + +**Наш случай — суглинок:** `d_fn = 0,23 × √63,9 = 1,84 м` (открытая поверхность, без снега). +**Под снегом 30–40 см** реальное промерзание меньше: **1,3–1,6 м**. + +### Грунт на глубине трубы (4 м) + +Температуропроводность суглинка: `a = λ / C = 1,4 / 2,5e6 ≈ 5,6e-7 м²/с`. + +Глубина затухания волны в `e` раз: `z_зат = √(a·T/π)` + +| Волна | Период | `z_зат` | +|---|---|---| +| Суточная | 86 400 с | **0,12 м** | +| Годовая | 365 сут | **2,37 м** | + +**Амплитуда годового хода на 4 м:** `19,0 × exp(−4,0/2,37) = ±3,5 °C` от среднегодовой. + +> ✅ **ГЛАВНЫЙ ВЫВОД: труба на 4 м НЕ ЗАМЕРЗАЕТ ФИЗИЧЕСКИ.** +> Там круглый год **+2,5…+3,5 °C** — грунт практически изотермичен. +> Зона промерзания (до 1,84 м) заканчивается задолго до трубы. + +--- + +## 4. Критичная точка — бетонная подушка 30 см + +Единственное место, где есть риск. Причина: **бетон — теплопроводный мост**. + +- `λ_бетона ≈ 1,7` Вт/(м·К) против `λ_суглинка ≈ 1,4` — на 21 % выше; +- сверху нет снеговой шубы, как над грунтом; +- на бетон приходится **72,6 %** перепада температуры (расчёт через термические сопротивления: `R_возд = 1/15 = 0,067`, `R_бет = 0,30/1,7 = 0,177`). + +| Улица | Труба в бетоне | | +|---|---|---| +| −6 °C | +0,5 °C | | +| **−8 °C** | **−0,1 °C** | ⬅ **ПОРОГ** | +| −10 °C | −0,6 °C | | +| −12 °C | −1,1 °C | | +| −15 °C | −1,9 °C | | +| −20 °C | −3,1 °C | | +| −25 °C | −4,4 °C | | +| −30 °C | −5,6 °C | | + +--- + +## 5. Почему выдержка 30 мин, а не мгновенное включение + +Бетон — тепловая масса. Промерзает за часы/сутки, а не за минуту. +- Кратковременные −10 °C ночью в сентябре **не опасны**. +- После оттепели бетон оттаивает медленно → выключение с той же выдержкой. +- Инерция работает в обе стороны. + +--- + +## 6. Состояние железа (проверено 2026-09-16) + +| Сущность | Значение | Комментарий | +|---|---|---| +| `switch.heating_cable_plug` | `off` | розетка живёт, выключена | +| `sensor.heating_cable_plug_voltage` | `223 V` | напряжение в розетке есть | +| `sensor.heating_cable_plug_power` | `0.0 W` | **ожидаемо при `off`** | +| `sensor.heating_cable_plug_energy` | `0.0 kWh` | | +| `sensor.h2000_pro_temperatura_ulitsa` | `12.8 °C` | после фикса °F→°C 2026-09-16 | + +> ⚠️ **`0 Вт` — это норма, пока `switch` = `off`, а не поломка.** Ранее (2026-09-15) в [[family/documents/home-automation-wishlist]] §7 это было записано как подозрение на мёртвый мониторинг. **Уточнение:** напряжение `223 V` присутствует → розетка работает; нулевая мощность при выключенном реле ожидаема. Проверка живости нагрузки возможна только после первого включения. +> 💡 Отсюда — **алерт обрыва в автоматизации:** включили → через 5 мин ждём `power > 5 W`; если ноль — кабель не подключён либо перебит. + +**Наличие кабеля:** в закупках зафиксировано «Греющий кабель в ПНД × 6 м» + «Ввод греющего кабеля» ([[family/documents/lerua-shopping]]). + +--- + +## 7. Что НЕ сделано (следующие шаги) + +- [ ] **Автоматизация не создана.** Ждёт ответа на вопрос: **саморегулирующийся кабель или резистивный?** + - Саморег — можно не гистерезить, сам сбрасывает мощность; + - Резистивный — обязателен термостат/гистерезис, иначе перегрев. + - Дефолт безопасен для обоих типов: **гистерезис −8/−3**. +- [ ] Опционально: датчик температуры **на самой трубе** в бетоне — тогда порог снимаем с трубы, а не по воздуху (точнее, снимает неопределённость модели §4). +- [ ] Проверить в ZONT, нужен ли ему отдельный виртуальный slave под греющий кабель (сейчас управление идёт через Zigbee-розетку, ZONT в контур не включён). + +--- + +## Связанные заметки + +- [[family/how-to/home-automation]] — топология t610, ZONT, Modbus, Zigbee +- [[family/how-to/ha-automations]] — логика и карта автоматизаций +- [[family/documents/home-automation-wishlist]] — роадмап (§7 энергетика) +- [[family/tech/ha-registry-operations]] — правка опций сущности (кейс °F→°C для H2000_PRO)