HA_harmony_climate_component
HA_harmony_climate_component copied to clipboard
❄ Use a Harmony Hub to control an IR controlled climate device
Harmony Hub Climate Controller
Harmony Hub Climate Controller allows you to control IR climate devices (eg. split system air conditioners) through a Harmony Hub.
This component appears to home assistant as a climate device and as such can be intuitively used to control an air conditioner or other climate device.

I forked from this project, which was created for Broadlink RM Devices, so thanks goes to vpnmaster for doing the hard work in creating that component.
Installing
Recommended install via HACS, otherwise follow the manual steps below:
- Download or clone this project, and place the
custom_componentsfolder and its contents into your Home Assistant config folder. - Ensure
climate.pyis located in a folder namedharmony_acwithin thecustom_componentsfolder.
Configuration
Once this custom component is installed, add the following to your configuration.yaml to use it in your HA installation
climate:
- platform: harmony_ac
remote_entity: remote.living_room
device_id: 12345678
*** refer below how to obtain device_id and for all the configuration options
Main Configuration Options
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | FALSE | Harmony Climate Controller | Name you would like to give this climate component |
| remote_entity | string | TRUE | entity_id of your existing harmony device in HA that will send the IR commands |
|
| device_id | integer | TRUE | The ID which Harmony has assigned to the climate device you wish to control (refer to FAQ's below on how to obtain) |
|
| min_temp | float | FALSE | 16 | Set minimum temperature range |
| max_temp | float | FALSE | 30 | Set maximum temperature range |
| target_temp | float | FALSE | 20 | Set initial target temperature |
| target_temp_step | float | FALSE | 1 | Set target temperature step |
| temp_sensor | string | FALSE | entity_id for a temperature sensor, target_sensor.state must be temperature |
|
| customize | list | FALSE | List of options to customize. Refer to table below | |
| debug_mode | boolean | FALSE | false |
When set to true commands are sent to Home Assistant Log only (no commands are sent to Harmony Device). |
CustomizeConfiguration Options
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
| operations | list | FALSE | - heat - cool - auto |
List of operation modes (nest under customize)do not include the OFF mode in this list |
| fan_modes | list | FALSE | - auto - low - mid - high |
List of fan modes (nest under customize) |
| no_temp_operations | list | FALSE | List of operation modes that will not send a target temperature (nest under customize) |
Example Usage
climate:
- platform: harmony_ac
name: Living Room
remote_entity: remote.living_room
device_id: 12345678
min_temp: 18
max_temp: 30
target_temp: 20
target_temp_step: 1
temp_sensor: sensor.living_room_temp
customize:
operations:
- cool
- heat
- dry
- fan_only
- auto
no_temp_operations:
- dry
- fan_only
fan_modes:
- auto
- low
- mid
- high
FAQ's
How to obtain your Air Conditioner's Device ID
This assumes you have already setup the official home assitant harmony component and have added your air conditioner as a device in the MyHarmony software.
- in your home assistant config folder, delete
harmony_*.confif it exists. eg. mine is calledharmony_living_room.conf - restart home assistant
- when it boots up it should create a new
harmony_*.conffile. Open this and find your air conditioner device, it should have an ID number next to it.
How to learn and name all the IR commands for your air conditioner
This part is unfortunately going to be manual. Every combination of operations (heat, cool, dry, fan_only, heat_cool, etc), fan modes (low, mid, high, auto, etc) and temperatures, will need to be learned manually within the MyHarmony software. The naming convention of each command is important for this component to work.
- in MyHarmony, go to devices > your air conditioner and click on Add or Fix a Command
- Click on add a missing command and enter a name in the following format: OperationFanmodeTemperature eg. CoolHigh18 and then follow the prompts within MyHarmony
some important notes about the naming convention for commands:
- Operation must be one of the operations listed in your configuration.yaml file. If the operation has two words, remove the underscore and capitalize each word:
FanOnly - Fanmode must be one of the fan_modes listed in your configuration.yaml file
- Temperature must be an integer in the range specified by your min/max temp in configuration.yaml file. Operations configured in
no_temp_operationsshould not include a temperature in the Harmony command - The only exception to these rules is the 'off' command. Just name this as Off in MyHarmony
Some valid examples of command names based on the above configuration.yaml example
Off
CoolAuto18
CoolAuto19
CoolAuto20
...
CoolAuto30
CoolHigh18
CoolHigh19
CoolHigh20
...
CoolHigh30
HeatLow18
HeatLow19
etc
etc
Any modes configured in the no_temp_operations Customization entry should not include a temperature:
FanOnlyHigh
FanOnlyLow
DryHigh
DryLow
etc
etc
