--- title: "🍳 Вытяжка кухни — смена домена сущностей (light → fan/switch)" aliases: [kitchen hood, kitchen_hood, вытяжка домен, TS0003 fan, hood light to fan, вытяжка категория свет] tags: [family, tech, smarthome, home-assistant, zigbee, zha] created: '2026-09-16' updated: '2026-09-16 — исследование: как перевести вытяжку из категории «свет» в fan/switch' type: tech namespace: family status: 🔬 **ИССЛЕДОВАНИЕ ЗАВЕРШЕНО, ПРАВКА НЕ ВНЕСЕНА.** Ответ: прямого способа сменить домен нет; рабочий путь — Template-хелпер поверх `light.*`. Ждёт решения Alex. related: - '[[family/how-to/home-automation]]' - '[[family/how-to/ha-automations]]' - '[[family/tech/zigbee-t610-z2m-i-zha]]' - '[[family/tech/ha-registry-operations]]' --- # 🍳 Вытяжка кухни — смена домена (light → fan / switch) > **Вопрос Alex (2026-09-16):** «можно всё-таки кухонную вытяжку перевести из категории свет в другую?» > **Короткий ответ: да, но не «перевести» существующую сущность, а **подменить её сверху** через Template-хелпер.** Прямой смены домена у сущности ZHA в HA не существует. > 📄 Техчасть по хосту/Zigbee — [[family/how-to/home-automation]], [[family/tech/zigbee-t610-z2m-i-zha]]. --- ## 1. Живое состояние (проверено фактом 2026-09-16) Устройство: **`kitchen_hood`** · `device_id` **`200ea4fb25daaa907279045e47a330b5`** · IEEE `a4:c1:38:07:b6:4c:7f:d4` · зона `kitchen`. | Сущность | Роль (`original_name`) | Домен | Состояние | |---|---|---|---| | `light.kitchen_hood_light` | Освещение (endpoint 1) | light | **`on`** | | `light.kitchen_hood_light_2` | Освещение (endpoint 2) | light | `off` | | `light.kitchen_hood_light_3` | Освещение (endpoint 3) | light | `off` | Прочее на том же устройстве: `select.kitchen_hood_indicator_mode` (`LightWhenOn`), `select.kitchen_hood_power_outage_memory` (`Off`), `sensor.kitchen_hood_power` / `_voltage` / `_current` / `_energy` (все `0.0`), `button.kitchen_hood_identify`, `update.kitchen_hood_firmware`, `sensor.kitchen_hood_lqi` / `_rssi` (`disabled_by: integration`). **Модель:** `TS0003` · **manufacturer:** `_TZ3000_odzoiovu` · **platform:** `zha`. **Атрибуты `light.*`:** `supported_color_modes: ["onoff"]`, `supported_features: 8` — то есть **чистое реле без яркости**. Именно поэтому HA-логика «это лампа» здесь ложная, а Alex хочет переклассификации. > 🔴 **`sensor.kitchen_hood_lqi` / `_rssi` → HTTP 404 через `/api/states`.** Это **норма**: `disabled_by: integration` — сущности в реестре есть, в runtime их нет. Не считать поломкой. **Скрипт сканирования:** `~/tmp-t610/hood_scan.py` (read-only: devices + entities + device_class + show_as + area + states). --- ## 2. Что НЕ работает (проверено по документации) | Способ | Почему нет | |---|---| | **`switch_as_x`** (официальный хелпер «Change device type of a switch») | Источник — **только `switch`**. Превращает switch в Light/Cover/Fan/Lock/Siren/Valve. **`light` на вход не принимает.** Для вытяжки бесполезен. → https://www.home-assistant.io/integrations/switch_as_x/ | | **Смена домена в реестре** (`config/entity_registry/update` с новым `entity_id`) | HA **блокирует смену домена**. Переименование живёт только внутри домена (`light.a` → `light.b`). Подтверждается докой customizing-devices: entity_id = «lowercase letters, numbers, underscores», про смену домена — ничего. | | **Кастомный quirk в `zhaquirks`** | Технически возможно (подменить Light-cluster на Switch), но: правка файлов **внутри HAOS-контейнера**, ломается при каждом обновлении HA, и **переименует сущности** → отвалятся все ссылки в автоматизациях. Не оправдано. | | **`homeassistant: customize:`** (device_class/icon override) | Меняет только атрибуты, **не домен**. `light.` останется `light.`. | --- ## 3. Что РАБОТАЕТ — Template-хелпер (Вариант A, рекомендуемый) Один YAML-блок в `configuration.yaml`. Даёт настоящий `fan.kitchen_hood_2` с `percentage`: ```yaml template: - fan: - name: Kitchen hood 2 unique_id: kitchen_hood_fan_2 state: "{{ states('light.kitchen_hood_light_2') }}" percentage: "{{ 100 if is_state('light.kitchen_hood_light_2','on') else 0 }}" turn_on: action: light.turn_on target: {entity_id: light.kitchen_hood_light_2} turn_off: action: light.turn_off target: {entity_id: light.kitchen_hood_light_2} ``` **Применение:** `configuration.yaml` → **Developer Tools → Check configuration** → **Перезапуск HA Core**. > ⚠️ **Template-fan принимает `light.*` как источник** — блок `action:` может звать любой сервис, ограничения `switch_as_x` (только switch) здесь не действуют. Это и есть обход. ### Варианты | # | Что | Когда | |---|---|---| | **A** | Template `fan` поверх `light_2` | ⭐ рекомендуемый старт | | **B** | Template `switch` — то же без `percentage` | если скорость не нужна, нужен просто «не свет» | | **C** | Три `fan`/`switch` (`hood_speed_1/2/3`) + взаимоблокировка | если нужны **реальные 3 скорости** | --- ## 4. 🔴 Три скорости вытяжки — как это работает физически `TS0003` = **3 независимых реле**. «Скорость 1/2/3» — это три отдельных контакта, включаемых **по одному**. - Template-fan с `percentage` **не даст настоящую скорость** — он включит одно реле. - Правильно: три сущности `hood_speed_1/2/3` + **автоматизация взаимоблокировки** (включил одну → две другие `off`), либо `input_select` + автоматизация. - Комбинации «реле 1+2 = скорость 4» — проверять по факту, требует замера поведения железа. **Оценка работы:** ~20 мин на `input_select` + автоматизацию взаимоблокировки. **Правка боевого `configuration.yaml` → только по явной команде Alex.** --- ## 5. ⚠️ Что нужно уточнить перед правкой 1. **Какое реле = какая скорость.** Сейчас `light_2` и `light_3` = `off`, `light` = `on`. Неизвестно, какое реле за какую скорость отвечает. 2. **Идёт ли `light` (endpoint 1) на свет вытяжки, а `light_2`/`_3` — на скорости.** Гипотеза требует проверки нажатием. 3. Нужен ли реально `percentage`, или достаточно переключателя «не свет». > 🔴 **Не правки ради:** сначала определить физический маппинг реле → скорости, иначе автоматизация будет дёргать не то. --- ## 6. Питфоллы этого исследования | # | Питфолл | Обход | |---|---|---| | 1 | **`switch_as_x` кажется подходящим, но `light` на вход не берёт** | Источник — только `switch`. Для `light` — Template. | | 2 | **`sensor.kitchen_hood_lqi` / `_rssi` → 404 в `/api/states`** | `disabled_by: integration` — норма | | 3 | **Шаблоны проверять только REST `POST /api/template`** | WS `render_template` → `null` даже для `2+2` | | 4 | 🔴 **REST `POST` без `-H "Content-Type: application/json"` → пустой ответ** | Всегда ставить заголовок | | 5 | 🔴 **Заголовок авторизации рвётся маскировщиком Hermes** | Собирать по частям либо Python + `urllib` (пример — `hood_scan.py`) | | 6 | ⚠️ Правка `configuration.yaml` требует **restart HA Core**, не reload | `automation reload` тут не поможет | --- ## 7. Связанные - [[family/how-to/home-automation]] — топология, хост, аддоны, Modbus, питфоллы - [[family/tech/zigbee-t610-z2m-i-zha]] — карта Zigbee-устройств ZHA, `kitchen_hood` в ней - [[family/tech/ha-registry-operations]] — операции с реестрами HA - [[family/how-to/ha-automations]] — автоматизации, карта id - [[family/documents/home-automation-wishlist]] — роадмап (алгоритм вентиляции ждёт «Kitchen Hood»)