9.7 KiB
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:
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. ⚠️ Что нужно уточнить перед правкой
- Какое реле = какая скорость. Сейчас
light_2иlight_3=off,light=on. Неизвестно, какое реле за какую скорость отвечает. - Идёт ли
light(endpoint 1) на свет вытяжки, аlight_2/_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»)