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.
Recommended install via HACS, otherwise follow the manual steps below:
- Download or clone this project, and place the
custom_components
folder and its contents into your Home Assistant config folder. - Ensure
climate.py
is located in a folder namedharmony_ac
within thecustom_components
folder.
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
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). |
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 ) |
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
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_*.conf
if it exists. eg. mine is calledharmony_living_room.conf
- restart home assistant
- when it boots up it should create a new
harmony_*.conf
file. Open this and find your air conditioner device, it should have an ID number next to it.
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_operations
should 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