Files
obsidian-vault/family/plans/heating-cable-automation.md
T

125 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
---
title: "План: автоматизация греющего кабеля ввода воды"
type: plan
namespace: family
status: 🟡 Ожидает решения Alex (выдержка 6 ч или 24 ч) → затем выполнение
created: '2026-09-16'
updated: '2026-09-16'
tags:
- family
- plan
- t610
- smarthome
- heating
related:
- '[[family/tech/heating-cable-water-inlet]]'
- '[[family/how-to/home-automation]]'
- '[[family/how-to/ha-automations]]'
---
# План: автоматизация греющего кабеля ввода воды
> **Расчёт и обоснование порогов — в [[family/tech/heating-cable-water-inlet]].** Здесь — что именно делать руками.
---
## 1. Задача
Обогрев ввода воды в дом. Труба ПНД сквозь бетонную подушку 30 см → в суглинок на 4 м. Регион — Новосибирск (Лаки Парк).
**Ключевые выводы расчёта:**
- Грунт на 4 м **не замерзает никогда** (+2,5…+3,5 °C круглый год).
- Опасна **только бетонная подушка 30 см** — труба в ней доходит до 0 °C при воздухе **8 °C**.
- Кабель **саморегулирующийся** → перегрев невозможен, окно выдержки задаёт инерция бетона (~сутки).
---
## 2. 🔴 Единственный блокер
**Выдержка: 6 ч или 24 ч.** Решение за Alex.
| Вариант | Плюс | Минус |
|---|---|---|
| 24 ч | отсекает ночные заморозки | при ударе −15 °C за ночь включится через сутки |
| 6 ч | ловит резкое похолодание в тот же день | может дёрнуться на ночном заморозке |
**Рекомендация ассистента: 6 ч.**
---
## 3. Спецификация автоматизации
**Имя:** `heating_cable_water_inlet`
**Файл:** `/config/automations.yaml` на t610 (бэкап обязателен перед правкой)
### 3.1. Расчётная температура
```
t_расч = min( sensor.h2000_pro_temperatura_ulitsa ,
min( прогноз weather.forecast_laki_dom на 24 ч вперёд ) )
```
Берём **более холодный** из двух источников — fail-safe в сторону защиты от замерзания.
### 3.2. Триггеры и действия
| # | Триггер | Условие | Действие |
|---|---|---|---|
| 1 | `t_расч`8 °C | `for: <6ч\|24ч>` | `switch.turn_on` `switch.heating_cable_plug` |
| 2 | `t_расч`3 °C | `for: <6ч\|24ч>` | `switch.turn_off` `switch.heating_cable_plug` |
| 3 | `t_расч`20 °C | без `for` | `switch.turn_on` (безусловно) |
| 4 | оба источника `unavailable` | `for: 01:00:00` | `switch.turn_on` + push |
| 5 | после ВКЛ + 10 мин | `sensor.heating_cable_plug_power < 5` | push «кабель не греет» |
### 3.3. Сущности
| Роль | Сущность |
|---|---|
| Датчик (ZONT) | `sensor.h2000_pro_temperatura_ulitsa` |
| Прогноз | `weather.forecast_laki_dom` (met.no) |
| Исполнитель | `switch.heating_cable_plug` (NEO NAS-WR01B, `a4c138eb6fbe9d19`, зона `kotelnaia`) |
| Контроль мощности | `sensor.heating_cable_plug_power` |
---
## 4. Шаги выполнения
1. **Бэкап** `/config/automations.yaml``automations.yaml.bak-heatcable-<ts>`.
2. Забрать прогноз в шаблон-сенсор:
```yaml
template:
- sensor:
- name: "t_rasch_heating_cable"
unit_of_measurement: "°C"
state: >
{% set fc = state_attr('weather.forecast_laki_dom','forecast') %}
...
```
> ⚠️ **Прогноз в этих шаблонах может быть недоступен** — атрибут `forecast` в HA 2026.9.2 **не отдаётся в `state_attr`**, только через WS `weather/subscribe_forecast` (§8 [[family/tech/heating-cable-water-inlet]]). **Проверить фактом ДО написания шаблона.** Если недоступен — вариант: брать уличную температуру напрямую из met.no через RESTful-сенсор (отдельная интеграция), либо использовать `weather.get_forecasts` (проверить существование в 2026.9.2).
3. Добавить 5 триггеров из §3.2 в `automations.yaml` (через `patch`, не `sed`).
4. Перезагрузить автоматизации: `POST /api/services/automation/reload`.
5. Проверить: `automation.heating_cable_water_inlet` = `on`, 0 `unavailable`, ссылки на сущности живые.
6. Обновить [[family/how-to/ha-automations]] — карта автоматизаций (стало 25).
7. Обновить статус [[family/tech/heating-cable-water-inlet]] → 🟢.
---
## 5. Питфоллы (собрано из опыта сессии)
| Питфолл | Обход |
|---|---|
| Прогноз недоступен через REST/`call_service` | Только WS `weather/subscribe_forecast` (§8) |
| WS-ответ прогноза — два сообщения | Второй `recv()` после `result` |
| `http://192.168.2.176:8123` с Mac → `000` | SSH-однострочник или `wss://mallexxx.duckdns.org` |
| Токен `/tmp/.hatok` лежит на **Mac** | Передавать в SSH-команду из Mac |
| Правка `automations.yaml` без reload не действует | `POST /api/services/automation/reload` |
| `sensor.heating_cable_plug_power = 0 Вт` при `off` | **Норма**, не поломка — проверить можно только после включения |
---
## 6. Следующие шаги (не блокеры)
- [ ] Датчик температуры **на трубе** в бетоне — точнее модели §4.
- [ ] Решить, нужен ли ZONT отдельный виртуальный slave под греющий кабель.
- [ ] После первого включения — снять реальную мощность (`sensor.heating_cable_plug_power`) и записать в доку: сколько потребляет кабель 6 м.