diff --git a/README-EN.md b/README-EN.md index 51fa872..ae2d68a 100644 --- a/README-EN.md +++ b/README-EN.md @@ -87,30 +87,37 @@ climate: id: aux_id uart_id: ac_uart_bus period: 7s - show_action: true display_inverted: false - timeout: 150 + timeout: 300 optimistic: true - indoor_temperature: - name: AC Indoor Temperature - id: ac_indoor_temp + indoor_ambient_temperature: + name: AC Indoor Ambient Temperature + id: ac_indoor_ambient_temp accuracy_decimals: 1 internal: false - outdoor_temperature: - name: AC Outdoor Temperature - id: ac_outdoor_temp + outdoor_ambient_temperature: + name: AC Outdoor Ambient Temperature + id: ac_outdoor_ambient_temp internal: false - outbound_temperature: - name: AC Coolant Outbound Temperature - id: ac_outbound_temp + outdoor_condenser_temperature: + name: AC Outdoor Condenser Temperature + id: ac_outdoor_condenser_temp internal: false - inbound_temperature: - name: AC Coolant Inbound Temperature - id: ac_inbound_temp + compressor_suction_temperature: + name: AC Compressor Suction Temperature + id: ac_compressor_suction_temp internal: false - compressor_temperature: - name: AC Compressor Temperature - id: ac_strange_temp + indoor_coil_temperature: + name: AC Indoor Coil Temperature + id: ac_indoor_coil_temp + internal: false + compressor_discharge_temperature: + name: AC Compressor Discharge Temperature + id: ac_compressor_discharge_temp + internal: false + defrost_temperature: + name: AC Defrost Temperature + id: ac_defrost_temp internal: false display_state: name: AC Display State @@ -175,35 +182,38 @@ climate: - **period** (*Optional*, [time](https://esphome.io/guides/configuration-types.html#config-time), default ``7s``): Period between status requests to the AC. `Aux_ac` will receive the new air conditioner status only after a regular request, even if you change the settings of AC using IR-remote. -- **show_action** (*Optional*, boolean, default ``true``): Whether to show current action of the device (experimental). For example, in the HEAT_COOL mode, AC hardware may be in one of the following actions: - - HEATING: AC is heating the air in the room; - - IDLE: AC is working in the FAN mode, cause the target temperature is reached; - - COOLING: AC is cooling the air. - The same thing will be in HEAT or COOL modes, with the only difference of the list of actions (IDLE + HEATING or IDLE + COOLING). - - **display_inverted** (*Optional*, boolean, default ``false``): It configures display driver logic level. As it turned out in the issue [#31](https://github.com/GrKoR/esphome_aux_ac_component/issues/31), different models of conditioners manage display different way. Rovex ACs powers off display by bit `1` in command packet and power it on by bit `0`. Many other conditioners do this vice versa. -- **timeout** (*Optional*, unsigned integer, default ``150``): Packet timeout for `aux_ac` data receiver. +- **timeout** (*Optional*, unsigned integer, default ``300``): Packet timeout for `aux_ac` data receiver. In the most common use of `aux_ac`, it isn't necessary to change this value. This keyword is optional, so you may omit it. The only situation when you can play with timeout is heavily loaded ESP. When you are using your ESP for many hard tasks, it is possible that `aux_ac` does not have enough time to receive AC responses. In this case, you can slightly raise the timeout value. But the best solution would be to remove some of the tasks from the ESP. - The timeout is limited to a range from `150` to `600` milliseconds. Other values are possible only with source code modification. But I don't recommend that. + The timeout is limited to a range from `300` to `800` milliseconds. Other values are possible only with source code modification. But I don't recommend that. - **optimistic** (*Optional*, boolean, default ``true``): Whether entity states should be updated immediately after receiving a command from Home Assistant/ESPHome. -- **indoor_temperature** (*Optional*): Parameters of the room air temperature sensor. +- **indoor_ambient_temperature** (*Optional*): Parameters of the room air temperature sensor. - **name** (**Required**, string): The name for the temperature sensor. - **id** (*Optional*, [ID](https://esphome.io/guides/configuration-types.html#config-id)): Set the ID of this sensor for use in lambdas. - **internal** (*Optional*, boolean): Mark this component as internal. Internal components will not be exposed to the frontend (like Home Assistant). As opposed to default [Sensor](https://esphome.io/components/sensor/index.html#base-sensor-configuration) behaviour, this variable is **always true** except in cases where the user has set it directly. - All other options from [Sensor](https://esphome.io/components/sensor/index.html#base-sensor-configuration). + > **ATTENTION!** The sensor's name was changed in v.1.0.0 to synchronize with AUX service manuals. -- **outdoor_temperature** (*Optional*): Parameters of the outdoor temperature sensor. They are the same as the **indoor_temperature** (see description above). - > **Attention!** When the air conditioner is turned off, the outdoor temperature is updated rarely (every 6-7 hours). This isn't a bug of the component, but a feature of the air conditioner hardware. The only way to get changes more often is to create a template sensor, the temperature of which can be changed manually. When the air conditioner is working, the value of this sensor can be copied from the **outdoor_temperature**. When the air conditioner is turned off, the temperature value should be recalculated according to the dynamics of the **outbound_temperature** sensor (it changes frequently and shows values close to the air temperature when the air conditioner is turned off). You can't copy the value of **outbound_temperature** without changes to the template sensor in AC off mode, because these temperatures are not identical. +- **outdoor_ambient_temperature** (*Optional*): Parameters of the outdoor temperature sensor. They are the same as the **indoor_ambient_temperature** (see description above). + > **Attention!** When the air conditioner is turned off, the outdoor temperature is updated rarely (every 6-7 hours). This isn't a bug of the component, but a feature of the air conditioner hardware. The only way to get changes more often is to create a template sensor, the temperature of which can be changed manually. When the air conditioner is working, the value of this sensor can be copied from the **outdoor_ambient_temperature**. When the air conditioner is turned off, the temperature value should be recalculated according to the dynamics of the **compressor_suction_temperature** sensor (it changes frequently and shows values close to the air temperature when the air conditioner is turned off). You can't copy the value of **compressor_suction_temperature** without changes to the template sensor in AC off mode, because these temperatures are not identical. + > **ATTENTION!** The sensor's name was changed in v.1.0.0 to synchronize with AUX service manuals. -- **inbound_temperature** (*Optional*): Parameters of the coolant inbound temperature sensor. They are the same as the **indoor_temperature** (see description above). +- **outdoor_condenser_temperature** (*Optional*): Parameters of the temperature sensor for condenser in outdoor unit. All the parameters are the same as the **indoor_ambient_temperature** (see description above). -- **outbound_temperature** (*Optional*): Parameters of the coolant outbound temperature sensor. They are the same as the **indoor_temperature** (see description above). +- **indoor_coil_temperature** (*Optional*): Parameters of the temperature sensor for indoor unit coil. All the parameters are the same as the **indoor_ambient_temperature** (see description above). + > **ATTENTION!** The sensor's name was changed in v.1.0.0 to synchronize with AUX service manuals. -- **compressor_temperature** (*Optional*): Parameters of the compressor temperature sensor. They are the same as the **indoor_temperature** (see description above). +- **compressor_suction_temperature** (*Optional*): Parameters of the temperature sensor for compressor suction pipe. All the parameters are the same as the **indoor_ambient_temperature** (see description above). + > **ATTENTION!** The sensor's name was changed in v.1.0.0 to synchronize with AUX service manuals. + +- **compressor_discharge_temperature** (*Optional*): Parameters of the temperature sensor for compressor discharge pipe. All the parameters are the same as the **indoor_ambient_temperature** (see description above). + > **ATTENTION!** The sensor's name was changed in v.1.0.0 to synchronize with AUX service manuals. + +- **defrost_temperature** (*Optional*): Parameters of the defrost temperature sensor in the outdoor unit. All the parameters are the same as the **indoor_ambient_temperature** (see description above). - **display_state** (*Optional*): The information for the HVAC display state sensor (is display ON or OFF) - **name** (**Required**, string): The name for the display state sensor. @@ -213,12 +223,12 @@ climate: - **defrost_state** (*Optional*): The information for the HVAC defrost function state sensor (is it ON or OFF). All settings are the same as for the **display_state** (see description above). -- **inverter_power** (*Optional*): The information for the inverter power sensor. All settings are the same as for the **indoor_temperature** (see description above). +- **inverter_power** (*Optional*): The information for the inverter power sensor. All settings are the same as for the **indoor_ambient_temperature** (see description above). > **ATTENTION!** The parameter name was changed in v.0.2.9 due to incorrect spelling. - **inverter_power_limit_state** (*Optional*): Configuration of the power limit state sensor. It displays the state of the power limitation function for the inverter HVAC (is it ON or OFF). All settings are the same as for the **display_state** (see description above). -- **inverter_power_limit_value** (*Optional*): Configuration of the power limit value sensor. All settings are the same as for the **indoor_temperature** (see description above). +- **inverter_power_limit_value** (*Optional*): Configuration of the power limit value sensor. All settings are the same as for the **indoor_ambient_temperature** (see description above). It reports the current value of the power limitation function for the inverter HVAC. This sensor represents the value only after the HVAC confirms the power limitation. The value is always in the range from 30% to 100%. This is the hardware limitation. - **preset_reporter** (*Optional*): Parameters of text sensor with current preset. All settings are the same as for the **display_state** (see description above). diff --git a/README.md b/README.md index 267be8f..68f5388 100644 --- a/README.md +++ b/README.md @@ -96,29 +96,37 @@ climate: id: aux_id uart_id: ac_uart_bus period: 7s - show_action: true display_inverted: false - timeout: 150 - indoor_temperature: - name: AC Indoor Temperature - id: ac_indoor_temp + timeout: 300 + optimistic: true + indoor_ambient_temperature: + name: AC Indoor Ambient Temperature + id: ac_indoor_ambient_temp accuracy_decimals: 1 internal: false - outdoor_temperature: - name: AC Outdoor Temperature - id: ac_outdoor_temp + outdoor_ambient_temperature: + name: AC Outdoor Ambient Temperature + id: ac_outdoor_ambient_temp internal: false - outbound_temperature: - name: AC Coolant Outbound Temperature - id: ac_outbound_temp + outdoor_condenser_temperature: + name: AC Outdoor Condenser Temperature + id: ac_outdoor_condenser_temp internal: false - inbound_temperature: - name: AC Coolant Inbound Temperature - id: ac_inbound_temp + compressor_suction_temperature: + name: AC Compressor Suction Temperature + id: ac_compressor_suction_temp internal: false - compressor_temperature: - name: AC Compressor Temperature - id: ac_strange_temp + indoor_coil_temperature: + name: AC Indoor Coil Temperature + id: ac_indoor_coil_temp + internal: false + compressor_discharge_temperature: + name: AC Compressor Discharge Temperature + id: ac_compressor_discharge_temp + internal: false + defrost_temperature: + name: AC Defrost Temperature + id: ac_defrost_temp internal: false display_state: name: AC Display State @@ -183,37 +191,40 @@ climate: - **period** (*Опциональный*, [время](https://esphome.io/guides/configuration-types.html#config-time), по умолчанию ``7s``): Период между запросами статуса кондиционера. `Aux_ac` получает новое состояние кондиционера только после регулярного запроса, потому что сам кондиционер об изменении параметров своей работы не уведомляет. Поэтому нужно запрашивать его, вдруг пользователь установил иной режим работы с помощью ИК-пульта. -- **show_action** (*Опциональный*, логическое, по умолчанию ``true``): Показывать ли текущую задачу кондиционера (экспериментальная функция). Например, в режиме HEAT_COOL кондиционер может выполнять одну из следующих задач: - - НАГРЕВ: нагревает воздух в комнате; - - ПРОСТОЙ: кондиционер работает в режиме вентилятора для перемешивания воздуха в комнате, поскольку целевая температура уже достигнута; - - ОХЛАЖДЕНИЕ: кондиционер охлаждает воздух в комнате. - Аналогично будут отображаться действия кондиционера и для режимов ОТОПЛЕНИЕ и ОХЛАЖДЕНИЕ. Единственная разница будет в количестве действий: ПРОСТОЙ+НАГРЕВ для режима отопления и ПРОСТОЙ+ОХЛАЖДЕНИЕ для режима охлаждения комнаты. - - **display_inverted** (*Опциональный*, логическое, по умолчанию ``false``): Настраивает способ управления дисплеем. Как выяснилось (issue [#31](https://github.com/GrKoR/esphome_aux_ac_component/issues/31)), включение-выключение дисплея обрабатывается кондиционерами по разному. Кондиционеры Rovex включают дисплей по `0` в соответствующем бите команды и выключают по биту `1`. Многие другие модели кондиционеров поступают наоборот. -- **timeout** (*Опциональный*, неотрицательное целое, по умолчанию ``150``): Таймаут получения пакета для ресивера данных `aux_ac`. +- **timeout** (*Опциональный*, неотрицательное целое, по умолчанию ``300``): Таймаут получения пакета для ресивера данных `aux_ac`. Чаще всего вам это значение никогда не понадобится. Поскольку этот параметр опционален, то его можно смело пропустить, если нет необходимости менять таймауты. - Единственная ситуация, когда вам может пригодиться этот параметр, - это сильно загруженная ESP. Если по какой-то неподдающейся логике причине вы кроме `aux_ac` нагрузили свою ESP кучей дополнительных ресурсоемких задач, то у компонента может просто не хватать времени для оперативного приёма ответов от кондиционера. В этом в логе будут сообщения о том, что последовательность команд была прервана по таймауту. Чтобы это исправить, лучше, конечно, немного разгрузить ESP. Если это вам не подходит, тогда можно увеличить таймаут. - Значение таймаута в прошивке ограничено диапазоном от `150` до `600` миллисекунд. Устанавливать значения выше можно только отредактировав исходные коды компонента. Но сильно задирать таймаут не стоит. Кондиционер периодически рассылает пакеты без запроса со стороны `aux_ac` и это приводит к сбою в отправке команды. + Единственная ситуация, когда вам может пригодиться этот параметр, - это сильно загруженная ESP. Если по какой-то неподдающейся логике причине вы кроме `aux_ac` нагрузили свою ESP кучей дополнительных ресурсоемких задач, то у компонента может просто не хватать времени для оперативного приёма ответов от кондиционера. В этом случае в логе будут сообщения о том, что последовательность команд была прервана по таймауту. Чтобы это исправить, лучше, конечно, немного разгрузить ESP. Если это вам не подходит, тогда можно увеличить таймаут. + Значение таймаута в прошивке ограничено диапазоном от `300` до `800` миллисекунд. Устанавливать значения выше можно только отредактировав исходные коды компонента. Но сильно задирать таймаут не стоит. Кондиционер периодически рассылает пакеты без запроса со стороны `aux_ac` и это приводит к сбою в отправке команды. - **optimistic** (*Опциональный*, логическое, по умолчанию ``true``) В «оптимистичном» режиме компонент не ждёт от кондиционера изменения параметров работы, а сразу после отправки команды в кондиционер сообщает в Home Assistant о новом состоянии. Если кондиционер команду не принял, то спустя несколько секунд eps получит текущее состояние всех систем и отправит в умный дом реальное состояние кондиционера. В итоге, если подавать в кондиционер неподдерживаемые команды, они будут записываться в историю Home Assistant и спустя время сбрасываться сбрасываться. В «пессимистичном» режиме esp отправляет команду в кондиционер, но об изменении состояний не сообщает до тех пор, пока не получит информацию о фактическом режиме работы кондиционера. В большинстве случаев разница между этими режимами будет практически незаметна. -- **indoor_temperature** (*Опциональный*): Параметры создаваемого датчика температуры воздуха, если такой датчик нужен +- **indoor_ambient_temperature** (*Опциональный*): Параметры создаваемого датчика температуры воздуха, если такой датчик нужен - **name** (**Обязательный**, строка): Имя датчика температуры. - **id** (*Опциональный*, [ID](https://esphome.io/guides/configuration-types.html#config-id)): Можно указать свой ID для датчика для использования в лямбдах. - **internal** (*Опциональный*, логическое): Пометить данный датчик как внутренний. Внутренний датчик не будет передаваться во фронтэнд (такой как Home Assistant). В противоположность стандартному поведению [сенсоров](https://esphome.io/components/sensor/index.html#base-sensor-configuration) этот параметр для датчика в кондиционере **всегда выставлен в true** за исключением случаев, когда пользователь не установил его в `false`. То есть по умолчанию значение сенсора не будет передаваться во фронтенд даже если указано `name` для сенсора. - Все остальные параметры [сенсора](https://esphome.io/components/sensor/index.html#base-sensor-configuration) ESPHome. + > **ВНИМАНИЕ!** Название сенсора было изменено в версии v.1.0.0 для синхронизации с сервисными схемами производителя кондиционеров. -- **outdoor_temperature** (*Опциональный*): Параметры создаваемого датчика уличной температуры воздуха, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_temperature** (см. выше). - > **ВНИМАНИЕ!** Когда кондиционер выключен, температура наружного воздуха обновляется редко (раз в 6-7 часов). Это не баг компонента, а особенность работы железа кондиционера. Единственный способ получать изменения чаще - создать шаблонный сенсор, температуру которого изменять вручную. Когда кондиционер работает, значение такого сенсора можно копировать из **outdoor_temperature**. Когда кондиционер выключен, значение температуры пересчитывать по динамике сенсора **outbound_temperature** (он изменяется часто и при выключенном кондее показывает значения близкие к температуре воздуха). Заморочки с пересчетом нужны потому, что показания сенсоров не идентичны и на графике значений шаблонного сенсора могут быть ступеньки при переходе с **outdoor_temperature** на **outbound_temperature** и обратно. +- **outdoor_ambient_temperature** (*Опциональный*): Параметры создаваемого датчика уличной температуры воздуха, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_ambient_temperature** (см. выше). + > **ВНИМАНИЕ!** Когда кондиционер выключен, температура наружного воздуха обновляется редко (раз в 6-7 часов). Это не баг компонента, а особенность работы железа кондиционера. Единственный способ получать изменения чаще - создать шаблонный сенсор, температуру которого изменять вручную. Когда кондиционер работает, значение такого сенсора можно копировать из **outdoor_ambient_temperature**. Когда кондиционер выключен, значение температуры пересчитывать по динамике сенсора **compressor_suction_temperature** (он изменяется часто и при выключенном кондее показывает значения близкие к температуре воздуха). Заморочки с пересчетом нужны потому, что показания сенсоров не идентичны и на графике значений шаблонного сенсора могут быть ступеньки при переходе с **outdoor_ambient_temperature** на **compressor_suction_temperature** и обратно. + > **ВНИМАНИЕ!** Название сенсора было изменено в версии v.1.0.0 для синхронизации с сервисными схемами производителя кондиционеров. -- **inbound_temperature** (*Опциональный*): Параметры создаваемого датчика температуры на подаче теплоносителя, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_temperature** (см. выше). +- **outdoor_condenser_temperature** (*Опциональный*): Параметры создаваемого датчика температуры конденсатора в наружном блоке кондиционера, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_ambient_temperature** (см. выше). -- **outbound_temperature** (*Опциональный*): Параметры создаваемого датчика температуры на обратке теплоносителя, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_temperature** (см. выше). +- **indoor_coil_temperature** (*Опциональный*): Параметры создаваемого датчика температуры на теплообменнике во внутреннем блоке кондиционера, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_ambient_temperature** (см. выше). + > **ВНИМАНИЕ!** Название сенсора было изменено в версии v.1.0.0 для синхронизации с сервисными схемами производителя кондиционеров. -- **compressor_temperature** (*Опциональный*): Параметры создаваемого датчика температуры компрессора, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_temperature** (см. выше). +- **compressor_suction_temperature** (*Опциональный*): Параметры создаваемого датчика температуры на входе в компрессор, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_ambient_temperature** (см. выше). + > **ВНИМАНИЕ!** Название сенсора было изменено в версии v.1.0.0 для синхронизации с сервисными схемами производителя кондиционеров. + +- **compressor_discharge_temperature** (*Опциональный*): Параметры создаваемого датчика температуры на выходе компрессора, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_ambient_temperature** (см. выше). + > **ВНИМАНИЕ!** Название сенсора было изменено в версии v.1.0.0 для синхронизации с сервисными схемами производителя кондиционеров. + +- **defrost_temperature** (*Опциональный*): Параметры создаваемого датчика температуры разморозки в наружном блоке кондиционера, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_ambient_temperature** (см. выше). - **display_state** (*Опциональный*): Параметры создаваемого датчика дисплея (включен или выключен), если такой датчик нужен. - **name** (**Обязательный**, строка): Имя датчика дисплея. @@ -223,12 +234,12 @@ climate: - **defrost_state** (*Опциональный*): Параметры создаваемого датчика состояния разморозки (включена или выключена), если такой датчик нужен. Параметры аналогичны датчику дисплея **display_state**. -- **inverter_power** (*Опциональный*): Параметры создаваемого датчика мощности инвертора, если такой датчик нужен. Параметры аналогичны датчику дисплея **indoor_temperature**. +- **inverter_power** (*Опциональный*): Параметры создаваемого датчика мощности инвертора, если такой датчик нужен. Параметры аналогичны датчику дисплея **display_state**. > **ВНИМАНИЕ!** Название параметра было изменено в версии v.0.2.9 в рамках борьбы с безграмотностью. - **inverter_power_limit_state** (*Опциональный*): Параметры создаваемого датчика состояния функции ограничения мощности. Показывает, включена данная функция в настоящий момент или нет. По очевидным причинам актуально только для инверторных кондиционеров, для "старт-стоп" кондиционеров всегда будет "выключен". Параметры аналогичны датчику дисплея **display_state**. -- **inverter_power_limit_value** (*Опциональный*): Параметры создаваемого датчика текущего ограничения мощности, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_temperature** (см. выше). +- **inverter_power_limit_value** (*Опциональный*): Параметры создаваемого датчика текущего ограничения мощности, если такой датчик нужен. Параметры аналогичны датчику внутренней температуры **indoor_ambient_temperature** (см. выше). Сенсор отображает текущее значение ограничения максимальной мощности для инверторного кондиционера. Значение в процентах. С кондиционерами "старт-стоп" по очевидным причинам не работает, всегда показывая значение `0%`. Заданное пользователем значения лимита будет отображено только после того, как кондиционер подтвердит полученное значение и начнет с ним работать. В силу ограничений на уровне железа лимит мощности может быть задан только в пределах от `30%` до `100%`.