Skip to content

nickneos/HA_harmony_climate_component

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Harmony Hub Climate Controller

homeassistant_community Github Stars Buy Me A Coffee

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.

Thermostat Lovelace Card

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:

  1. Download or clone this project, and place the custom_components folder and its contents into your Home Assistant config folder.
  2. Ensure climate.py is located in a folder named harmony_ac within the custom_components folder.

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_*.conf if it exists. eg. mine is called harmony_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.

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_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 

Buy Me A Coffee