[binary_sensor]: https://esphome.io/components/binary_sensor/ [sensor]: https://esphome.io/components/sensor/ [text_sensor]: https://esphome.io/components/text_sensor/ [switch]: https://esphome.io/components/switch/ [number]: https://esphome.io/components/number/ [select]: https://esphome.io/components/select/ [button]: https://esphome.io/components/button/ [climate]: https://esphome.io/components/climate/ [fan]: https://esphome.io/components/fan/ [automation]: https://esphome.io/guides/automations#automation [time]: https://esphome.io/guides/configuration-types#time [id]: https://esphome.io/guides/configuration-types#config-id Далее по тексту обязательные параметры выделены **жирным**. # Конфигурация платформы `tion` - **`type`**, _enum_: тип подключаемого бризера, может принимать значения: `4s`, `3s`, `lt` или `o2` - `vport_id`, _[id]_: идентификатор `vport` подключенного к бризеру. По-умолчанию: определяется автоматически. - `update_interval`, _[time]_: интервал опроса состояния бризера. По-умолчанию: 15s. - `state_timeout`, _[time]_: время на прием ответа, после которого выставляется ошибка состояния если ответ не был получен. Должно быть меньше чем `update_interval`. По-умолчанию: 3s. - `batch_timeout`, _[time]_: время сбора команд обновления. По-умолчанию: 200ms. - `force_update`, _boolean_: поведение обновления состояний - только по изменению или всегда. По-умолчанию: False. - `on_state`, _[automation]_: автоматизация. переменная `x` будет содержать объект `TionState` с текущим состоянием бризера. - `presets`, _object_: см. [Настройка presets](#настройка-presets) - `auto`, _object_: см. [Настройка auto](#настройка-auto) - `button_presets`, _object_: см. [Настройка button_presets](#настройка-button_presets) ## Настройка presets В этой секции Вы можете настроить любое необходимое количество пресетов с именами по вашему вкусу. Пресеты можно переключать с помощью [select[type=presets]](#тип-presets) или штатно из [climate](#домен-climate) и [fan](#домен-fan). Доступные параметры: - `fan_speed`, _uint_: скорость вентиляции. По-умолчанию: текущее состояние. - `temperature`, _uint_: целевая температура. По-умолчанию: текущее состояние. - `heater`, _boolean_: включить или выключить нагреватель. По-умолчанию: текущее состояние. - `power`, _boolean_: включить или выключить бризер. По-умолчанию: текущее состояние. - `gate_position`, _enum_: состояние заслонки. Может принимать значения: `outdoor`, `indoor`, `mixed`. Будет использовано только если ваш бризер поддерживает возможность смены в это состояние. По-умолчанию: текущее состояние. - `auto`, _boolean_: включить или выключить режим автоматической вентиляции. По-умолчанию: текущее состояние. Пример использования: ```yaml presets: home: { fan_speed: 2, temperature: 16, heater: False } away: { fan_speed: 1, temperature: 10, heater: False } sleep: { fan_speed: 1, temperature: 18 } "много людей": { fan_speed: 5 } ``` > [!TIP] > В Home Assistant пресеты с именами home, away, boost, comfort, eco, sleep и activity для сущности climate будут > автоматически переведены на язык системы и получат соответствующие иконки. ## Настройка auto При задании параметра `pi_controller`, в основе автоматики лежит работа пропорционально-интегрального контроллера и исследование: https://www.sciencedirect.com/science/article/pii/S0378778823009477 Вы можете использовать собственный алгоритм определив его в автоматизации, в параметре `lambda`. Параметры: - **`co2`**, _[id]_: идентификатор сенсора с датчиком CO2. - `setpoint`, _uint_: целевое значение CO2. Несовместим с [number[type=auto_setpoint]](#тип-auto_setpoint), детали там же. - `min_fan_speed`, _uint_: минимальная скорость вентиляции. Несовместим с [number[type=auto_min_fan_speed]](#тип-auto_min_fan_speed), детали там же. - `max_fan_speed`, _uint_: максимальная скорость вентиляции. Несовместим с [number[type=auto_max_fan_speed]](#тип-auto_max_fan_speed), детали там же. - `pi_controller`, _object_: объект с параметрами PI-контроллера: - `kp`, _float_: пропорциональный коэффициент. По-умолчанию: 0.2736. - `ti`, _float_: время интегрирования (в минутах). По-умолчанию: 8. - `db`, _int_: зона нечувствительности. По-умолчанию: 50. - `lambda`, _[automation]_: автоматизация обрабатывающая значение CO2. Переменная `x` будет содержать текущее значение датчика CO2, вернуть необходимо скорость вентиляции. Скорость вентиляции будет применена относительно параметров `min_fan_speed` и `max_fan_speed` или их значений установленных с помощью `number`. Несовместим с `pi_controller`. Примеры использования: ```yaml tion: ... auto: co2: my_co2_sensor lambda: |- if (x > 900) return 4; if (x > 800) return 3; if (x > 700) return 2; return 1; ``` ```yaml tion: ... auto: co2: my_co2_sensor pi_controller: ``` ```yaml tion: ... auto: co2: my_co2_sensor pi_controller: kp: 0.2736 ``` > [!IMPORTANT] > При ручном переключении скорости или выключении бризера, авто-режим отключается. ## Настройка button_presets Конфигурация физических кнопок. Установленное значение производителем: 2/4/6 и 10/20/25 °C. Параметры: - **`fan_speed`**, _list[uint]_: список из 3 элементов со скоростями вентилятора. - **`temperature`**, _list[uint]_: список из 3 элементов с температурами в градусах цельсия. Пример использования: ```yaml button_presets: fan_speed: [1, 3, 5] temperature: [12, 18, 24] ``` > [!IMPORTANT] > Поддерживаемые модели: Lite. # Конфигурация сущностей ESPHome платформы `tion` Каждая сущность минимально конфигурируется тремя обязательными параметрами - платформой `tion`, типом и именем. Пример: ```yaml # Платформа - platform: tion # Тип type: entity_type # Имя name: Entity Name # Необязательный параметр, определяется автоматически, # необходим при конфигурации нескольких бризеров в одной прошивке. # Дальнее всегда будет опущен. #tion_id: tion_api ``` Исключение составляют сущности в домене [climate](#домен-climate) и [fan](#домен-fan), для них указание типа отсутствует. Некоторые сущности могут содержать дополнительные параметры. Если не описаны ограничения, то сущность поддерживается для всех моделей бризеров. Во всех сущностях можно использовать стандартные для их домена переменные и автоматизации, документация доступна по ссылке в разделе, в названии домена. > [!IMPORTANT] > В силу особенностей реализации генерации идентификаторов в ESPHome, > все имена сущностей должны быть на латинице. > В дальнейшем вы можете переименовать их в вашей системе УД. > [!IMPORTANT] > Если не брать в расчет пакеты, то конкретный домен в конфигурации может быть только один, > все сущности располагаются внутри него списком. ## Домен [binary_sensor] Мониторинг состояния параметров бризера в виде бинарного сенсора. Пример использования: ```yaml binary_sensor: - platform: tion type: entity_type name: Entity Name ``` ### Тип state Состояние общения с бризером. При отсутствии ответа более интервала сконфигурированного в `tion.state_timeout`, изменяет свое состояние. ### Тип power Состояние работы бризера - включен или выключен. ### Тип heater Состояние обогревателя - включен или выключен. > [!TIP] > Алиасы: `heat` ### Тип heating Состояние работы обогревателя - греет или не греет. > [!NOTE] > Для бризеров 4S и Lite - состояние определяется аппаратно. > > Для бризеров 3S и O2 - состояние определяется программно. ### Тип sound Состояние звуковых оповещений. > [!TIP] > Алиасы: `buzzer` > [!IMPORTANT] > Поддерживаемые модели: 3S, 4S, Lite. ### Тип led Состояние световых оповещений. > [!TIP] > Алиасы: `light` > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. > > Для модели Lite пока не понятна заложенная производителем функция. ### Тип filter Индикатор состояние ресурса замены фильтров. ### Тип gate_error Индикатор ошибки закрытия/открытия заслонки. ### Тип gate Состояние заслонки. > [!TIP] > Алиасы: `gate_state`, `gate_position`, `damper` ### Тип error Индикатор наличия ошибки бризера. ### Тип boost Состояние работы турбо-режима `Boost`. ## Домен [sensor] Мониторинг состояния параметров бризера в виде числового сенсора. Пример использования: ```yaml sensor: - platform: tion type: entity_type name: Entity Name ``` ### Тип fan_speed Состояние скорости вентиляции. > [!TIP] > Алиасы: `fan`, `speed` ### Тип outdoor_temperature Состояние датчика внешней температуры. ### Тип current_temperature Состояние датчика внутренней температуры. > [!TIP] > Алиасы: `indoor_temperature` ### Тип target_temperature Состояние целевой температуры нагрева. ### Тип productivity Текущая производительность бризера. ### Тип power Текущая потребляемая мощность бризера. > [!NOTE] > Вычисляется как сумма [sensor[type=heater_power]](#тип-heater_power) + [sensor[type=fan_power]](#тип-fan_power) ### Тип heater_var Процент потребления мощности работы нагревателя. > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. ### Тип heater_power Данные о потреблении нагревателя. > [!NOTE] > Для бризеров 4S и Lite - состояние определяется аппаратно. > > Для бризеров 3S и O2 - при включенном обогреве состояние константа - 1450 Вт. ### Тип fan_power Данные о потребляемой мощности работы вентилятора. Используются следующие константы: #### Tion O2: - Дежурный режим: 0.73 Вт - 1 скорость: 10.3 Вт - 2 скорость: 19.0 Вт - 3 скорость: 19.4 Вт - 4 скорость: 23.0 Вт #### Tion 3S: - Дежурный режим: 0.73 Вт - 1 скорость: 17 Вт - 2 скорость: 21 Вт - 3 скорость: 26 Вт - 4 скорость: 23 Вт - 5 скорость: 27 Вт - 6 скорость: 29 Вт #### Tion 4S: - Дежурный режим: 0.73 Вт - 1 скорость: 15.1 Вт - 2 скорость: 16.2 Вт - 3 скорость: 23.3 Вт - 4 скорость: 23.8 Вт - 5 скорость: 25.2 Вт - 6 скорость: 30.7 Вт #### Tion Lite: На текущий момент константы показания потребления эквивалентны Tion 4S. > [!NOTE] > Если у вас есть возможность точно измерить потребление, я с удовольствием изменю константы и обновлю эту информацию. ### Тип airflow Данные счетчика прошедшего воздуха в m³. > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. ### Тип boost_time_left Оставшееся время работы турбо-режима `Boost`. Единица измерения `s` (секунда), класс `duration`. ### Тип filter_time_left Данные об оставшимся времени жизни ресурса фильтра. Единица измерения `s` (секунда), класс `duration`. > [!NOTE] > В Home Assistant будет отображаться в формате HH:MM:SS, > без дней - два дня будет отображено как 48 часов. Это ограничение HA. > Если требуется видеть время в днях используйте сенсор [sensor[type=filter_time_left_days]](#тип-filter_time_left_days). ### Тип filter_time_left_days Данные об оставшимся времени жизни ресурса фильтра. Единица измерения `d` (день). ### Тип work_time Технические данные об общем времени работы бризера. Единица измерения `s` (секунда), класс `duration`. > [!NOTE] > В Home Assistant будет отображаться в формате HH:MM:SS, > без дней - два дня будет отображено как 48 часов. Это ограничение HA. > Если требуется видеть время в днях используйте сенсор [sensor[type=work_time_days]](#тип-work_time_days). > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite, O2. ### Тип work_time_days Технические данные об общем времени работы бризера. Единица измерения `d` (день). > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite, O2. ### Тип fan_time Технические данные о времени работы вентилятора. Единица измерения `s` (секунда), класс `duration`. > [!NOTE] > В Home Assistant будет отображаться в формате HH:MM:SS, > без дней - два дня будет отображено как 48 часов. Это ограничение HA. > Если требуется видеть время в днях используйте сенсор [sensor[type=fan_time_days]](#тип-fan_time_days). > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. ### Тип fan_time_days Технические данные о времени работы вентилятора. Единица измерения `d` (день). > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. ### Тип airflow_counter Технические данные внутреннего счетчика прошедшего воздуха. > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. ### Тип pcb_ctl_temperature Технические данные датчика температуры на плате управления бризера. > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. ### Тип pcb_pwr_temperature Технические данные датчика температуры на силовой плате бризера. > [!IMPORTANT] > Поддерживаемые модели: 4S. ## Домен [text_sensor] Мониторинг состояния параметров бризера в виде текстового сенсора. Пример использования: ```yaml text_sensor: - platform: tion type: entity_type name: Entity Name ``` ### Тип errors Отображает строку с ошибками (EC) и предупреждениями (WS) бризера. ### Тип firmware_version Отображает текущую версию прошивки бризера. > [!TIP] > Алиасы: `firmware` ### Тип hardware_version Отображает текущую версию железа бризера. > [!TIP] > Алиасы: `hardware` ## Домен [switch] Отображение и изменение состояния бризера переключателем. Пример использования: ```yaml switch: - platform: tion type: entity_type name: Entity Name ``` ### Тип power Отображает и изменяет состояние бризера - включен/выключен. ### Тип heater Отображает и изменяет состояние обогревателя - включен или выключен. > [!TIP] > Алиасы: `heat` ### Тип sound Отображает и изменяет состояние звуковых оповещений. > [!TIP] > Алиасы: `buzzer` > [!IMPORTANT] > Поддерживаемые модели: 3S, 4S, Lite. ### Тип led Отображает и изменяет состояние световых оповещений. > [!TIP] > Алиасы: `light` > [!IMPORTANT] > Поддерживаемые модели: 4S, Lite. > > Для модели Lite пока не понятна заложенная производителем функция. ### Тип recirculation Отображает и переключает состояние заслонки между забором воздуха с улицы или из помещения. > [!IMPORTANT] > Поддерживаемые модели: 3S, 4S. ### Тип boost Отображает и изменяет состояние турбо-режима `Boost`. Работа этого режима тесно связана с `tion.update_interval`, автоматическое завершение возможно только в момент обновления состояния, на практике это не влияет на использование данной функции т.к. обновление состояния обычно происходит не менее раза в минуту. Дополнительные параметры: - `duration`, _[time]_: задает время работы режима. Минимальное значение `1min`, максимальное `60min`. Не совместим с параметром [number[type=boost_time]](#тип-boost_time), при использовании совместно поведение определить невозможно. По умолчанию: <отсутствует>. - `heater`, _boolean_: задает состояние обогревателя во время работы режима. Если не установлен, то будет использовано текущее состояние обогревателя. По умолчанию: <отсутствует>. - `temperature`, _uint_: задает целевую температуру нагрева во время работы режима. Если не установлен или установлен в 0, то будет использована текущая температура нагрева. По умолчанию: <отсутствует>. > [!IMPORTANT] > Обратный отсчет оставшегося времени всегда будет кратен времени обновления состояния. > Т.е. если время обновления 00:01:00 и время работы турбо-режима 00:01:30, то турбо-режим будет завершен через 2 мин. > [!IMPORTANT] > При ручном переключении скорости или выключении бризера, турбо-режим отключается. ### Тип auto Переключает работу вентиляции в автоматический режим. Для работы необходимо установить целевое значения CO2, минимальную и максимальную скорость вентиляции, используя параметры в настройке платформы [tion](#конфигурация-платформы-tion) или соответствующие сущности `number`. > [!CAUTION] > Работа этого режима находится в экспериментальной стадии. Пример использования: ```yaml switch: - platform: tion type: auto name: Auto ``` ## Домен [number] Отображение и изменение состояния параметров бризера в числовом виде. Пример использования: ```yaml number: - platform: tion type: entity_type name: Entity Name ``` ### Тип fan_speed Отображает и позволяет изменить скорость вентиляции. > [!NOTE] > Скорость вентиляции `0` выключает бризер. ### Тип target_temperature Отображает и позволяет изменить целевую температуру нагрева. ### Тип boost_time Отображает и позволяет изменить время работы турбо режима `Boost`. Особенности настройки интервала см. в описании [switch[type=boost]](#тип-boost). Дополнительные параметры: - `initial_value`, _[time]_: позволяет задать стартовое значение при инициализации. - `restore_value`, _boolean_: сохранять текущее значение и использовать после перезагрузки. ```yaml number: - platform: tion type: boost_time name: Boost Time initial_value: 20min restore_value: True ``` > [!IMPORTANT] > Тип `boost_time` не совместим с параметром [switch[type=boost].duration](#тип-boost), > при использовании совместно поведение определить невозможно. ### Тип auto_setpoint Устанавливает целевое значение CO2 при автоматическом управлении вентилятором. Пример использования: ```yaml number: - platform: tion type: auto_setpoint name: Auto Setpoint initial_value: 700 restore_value: True ``` ### Тип auto_min_fan_speed Устанавливает минимальную скорость вентиляции при автоматическом управлении. Пример использования: ```yaml number: - platform: tion type: auto_min_fan_speed name: Auto Min Fan Speed initial_value: 1 restore_value: True ``` Может принимать значение 0, в этом случае бризер будет отключен. Максимальное значение на единицу меньше максимальной скорости бризера. Не может быть больше или равным [number[type=auto_max_fan_speed]](#тип-auto_max_fan_speed). ### Тип auto_max_fan_speed Устанавливает максимальную скорость вентиляции при автоматическом управлении. Пример использования: ```yaml number: - platform: tion type: auto_max_fan_speed name: Auto Max Fan Speed initial_value: 3 restore_value: True ``` Минимальной значение 1, максимальное равно максимальной скорости вентиляции бризера. Не может быть меньше или равным [number[type=auto_min_fan_speed]](#тип-auto_min_fan_speed). ## Домен [select] Пример использования: ```yaml select: - platform: tion type: entity_type name: Entity Name ``` ### Тип air_intake Отображает список доступных режимов вентиляции и позволяет выбрать один из них. > [!TIP] > Алиасы: `gate_position` > [!IMPORTANT] > Поддерживаемые модели: 3S, 4S. ### Тип presets Отображает список доступных пресетов и позволяет активировать один из них. ## Домен [button] ```yaml button: - platform: tion type: entity_type name: Entity Name ``` ### Тип reset_filter Производит сброс счетчика ресурса фильтров. > [!IMPORTANT] > Поддерживаемые модели: 3S, 4S, Lite. Дополнительные параметры: - `confirm`, _[switch]_: защита от случайного нажатия, сброс будет срабатывать, только если переключатель включен. По умолчанию: <отсутствует>. Пример использования: ```yaml climate: - platform: tion type: reset_filter name: Reset Filter confirm: name: Reset Filter Confirm ``` ## Домен [climate] Мониторинг и изменение параметров бризера в виде компонента типа климат. Дополнительные параметры: - `enable_heat_cool`, _boolean_: включает/выключает дополнительный режим HEAT_COOL, позволяющий включать бризер через сервис [turn_on](https://www.home-assistant.io/integrations/climate/#service-climateturn_on), с восстановлением предыдущего режима обогрева. По умолчанию: False. - `enable_fan_auto`, _boolean_: включает/выключает дополнительный режим вентиляции `auto`, позволяющий включать автоматический режим вентиляции. По умолчанию: False. Пример использования: ```yaml climate: - platform: tion name: Climate enable_heat_cool: True enable_fan_auto: True ``` ## Домен [fan] Мониторинг и изменение параметров бризера в виде компонента типа вентилятор. Пример использования: ```yaml fan: - platform: tion name: Fan ```