Broadlink IR Climate Component

I just tested in LOW fan setting and the temperatures are also mixed up. For example, when I set 23, I get 19, 24 I get 20, etc…

I’m ready to redo the INI file by putting in all the different commands for all the modes in the learn function of the Broadlink app. I can do this in my phone but how do I extract the actual IR code to a file?

EDIT: Got it. I found the answer here: https://home-assistant.io/components/switch.broadlink/
What a pain that will be… LOL I will post my results once I’m done.

I created those LG codes based on the models listed at the top of the INI file.

I’m confused when you say 19 becomes 27, etc. how are you checking this?

The temperature on the remote does not match the one displayed on the AC unit: 19 on the remote become 27 on the AC unit, etc.

I’m half way building the INI file. I will post it here once I confirm it works.

Thanks!

Ahh I’ve just noticed that you’re using a Cooling only unit? Maybe this is why.

Yes, cooling only.

Okay, I finished. It took some time, but I also tested all the different modes. I have an LG Model #LS120HYV (cooling only). It will probably work with other AC models from LG. In configuration.yaml:

climate:
  - platform: broadlink
    # This is a custom component based on https://github.com/vpnmaster/homeassistant-custom-components
    # Thread: https://community.home-assistant.io/t/broadlink-ir-climate-component/27406
    # Existing Model is LG LS120HYV
    name: LG AC
    host: 192.168.x.x
    mac: 'AA:BB:CC:DD:EE:FF'
    ircodes_ini: 'broadlink_climate_codes/lg.ini'
    min_temp: 18
    max_temp: 30
    target_temp: 23
    temp_sensor: sensor.broadlink_temperature
    #temp_sensor: sensor.zw100_temperature
    default_operation: "off"
    default_fan_mode: auto
    customize:
      operations:
        - "off"
        - cool
      fan_modes:
        - low
        - mid
        - high
        - auto

My lg.ini file is the following:

# Models: LS120HYV
[off]
off_command = JgBAAAABNpQSOBAUEBUPFQ86DxUQFRAUDzoQOBAVDxUQFBAVDxUQFQ8VDxUQFQ8VEBUPORAVEDgRFA8VEBQQORAADQUAAAAAAAAAAA==

[idle]
idle_command = JgBAAAABNpQSOBAUEBUPFQ86DxUQFRAUDzoQOBAVDxUQFBAVDxUQFQ8VDxUQFQ8VEBUPORAVEDgRFA8VEBQQORAADQUAAAAAAAAAAA==

[cool]
low_18 = JgBAAAABNpQROBEUDxUQFBA5EBUPFQ8VEBUPFQ8VEBUPFRAVDxUPFRAVDxUPOhA5EBQPFRAVDxUPFRAVDzoQOBAADQUAAAAAAAAAAA==
low_19 = JgBAAAABN5QROBAVDxUPFRA5EBUPFQ8VEBQQFQ8VEBUPFQ8VEBUPFRAUEDkQFBAVDxUQFQ8VEBQQFQ86DxUPFRAADQUAAAAAAAAAAA==
low_20 = JgBAAAABN5MSOA8VEBUPFRA5EBQQFQ8VDxUQFQ8VEBQQFQ8VEBQQFQ8VEDkQFBA5EBUPFQ8VEBUPFQ86EBQQORAADQUAAAAAAAAAAA==
low_21 = JgBAAAABOJISOA8VERMQFRE3EhMPFRITERMPFRITERMQFBITERMSExETETgRNxEUERMSEhITDxURFBE3EjcSEhIADQUAAAAAAAAAAA==
low_22 = JgBAAAABNpQROBEUEBQQFQ85ERQPFRAUEBUPFRAUERQPFRAVDxUPFRAVDzkROBE4EBQQFQ8VEBQQFQ86EDgROBAADQUAAAAAAAAAAA==
low_23 = JgBAAAABN5QROBEUDxUQFBE4ERQPFRAUEBUPFRAUEBUPFRAUEBUQFBA5EBQQFQ8VEBQQFRAUERQQOBEUDxUQFBAADQUAAAAAAAAAAA==
low_24 = JgBAAAABN5QROBAUEBUPFRA5EBQQFQ8VDxUQFQ8VEBUPFQ8VEBUPFQ86EBQQFBA5EBUPFQ8VEBUPOREUDxUQORAADQUAAAAAAAAAAA==
low_25 = JgBAAAABN5QROBAUEBUPFRA5EBQQFQ8VEBQQFQ8VEBUPFQ8VEBUPFRA5EBQQORAUEBUPFQ8VEBUPOhAUDzoPFQ8ADQUAAAAAAAAAAA==
low_26 = JgBAAAABNpQROQ8VDxUQFQ86EBQPFRAVDxUPFRAVDxUQFQ8VDxUQFQ85EBUPORA5EBQQFQ8VEBUPORAVDzkROBAADQUAAAAAAAAAAA==
low_27 = JgBAAAABN5QROBAUEBUPFRA5EBQQFQ8VEBQQFQ8VEBUPFQ8VEBUPFRA5EDkQFA8VEBUPFQ8VEBUPORE4EBUPFQ8ADQUAAAAAAAAAAA==
low_28 = JgBAAAABN5MSOBAUEBUPFRA5EBQQFQ8VEBQQFQ8VEBUPFQ8VEBUPFQ86DzkRFA86EBQPFRAVDxUQORA4EBUPOg8ADQUAAAAAAAAAAA==
low_29 = JgBAAAABNpQRORAUEBUPFRA5EBQQFBAVDxUQFQ8VDxUQFQ8VEBQQFQ85ETgROBAUEBUPFRAVDxUPOhA4ETgQFBAADQUAAAAAAAAAAA==
low_30 = JgBAAAABNpQRORAUEBUPFRA5EBQQFBAVDxUQFQ8VEBQQFQ8VEBUPFQ86DzkROBA5EBQQFBAVDxUQORA5EDgQORAADQUAAAAAAAAAAA==
mid_18 = JgBAAAABN5ISORAVDxUPFRA5EBQQFQ8VEBUPFQ8VEBUPFRAUEBUPFRAUEBUPOhA4ERQPFRA5EBQQFBA5ERQPOREADQUAAAAAAAAAAA==
mid_19 = JgBAAAABN5MTNxETEBURExE4ERMSExETDxUSExETERMSExETEhMRExETEjcRExAVERMSEhI3EhMREw86ETgREw8ADQUAAAAAAAAAAA==
mid_20 = JgBAAAABNpQRORAUDxUQFQ85ERQPFRAUEBUPFRAUEBUPFRAVDxUQFBAVDzoQFA86EBQQFBA5DxURFA86EDgQORIADQUAAAAAAAAAAA==
mid_21 = JgBAAAABOJMROBEUDxUQFQ85EBUPFQ8VEBUPFRAVDxUPFRAVDxUPFRAVDzoQOBAVDxUPFRA5EBQQORAVDxUPFRAADQUAAAAAAAAAAA==
mid_22 = JgBAAAABNpQSOBISEhMRExE4ERMRExAVERMRExAVDxUQFRETERMSExETETgRNhM3EhMREw86ERMROBETEhMRNxIADQUAAAAAAAAAAA==
mid_23 = JgBAAAABNpQRORAUDxUQFQ86EBQPFRAVDxUPFRAVDxUQFBAVDxUQFQ85EBUPFRAUEBUPFRA5DxUQORAUEDkQFBAADQUAAAAAAAAAAA==
mid_24 = JgBAAAABOJMROBEUDxUQFBA5ERQPFQ8VEBUPFRAUEBUPFRAVDxUPFRA5EBQQFQ86EBQQFBA5EBQQORAUEDkROA8ADQUAAAAAAAAAAA==
mid_25 = JgBAAAABNpQRORAUDxUQFQ86EBQPFRAVDxUPFRAVDxUQFBAVDxUQFQ85ERQPOREUDxUQFBA5ERQPORE4EBQQFQ8ADQUAAAAAAAAAAA==
mid_26 = JgBAAAABOJMRORAUDxUQFQ85ERQPFRAUEBUPFRAVDxUPFRAVDxUQFBA5EBUPORE4EBQQFQ85ERQPOhA4EBUPORAADQUAAAAAAAAAAA==
mid_27 = JgBAAAABNpQRORAUEBQQFQ85ERQPFRAVDxUPFRAVDxUPFRAVDxUQFBA5EDkQFBAVDxUQFBA5ERQPORA5EDkPFRAADQUAAAAAAAAAAA==
mid_28 = JgBAAAABN5MSOBAUEBUPFRA5EBQQFQ8VDxUQFQ8VEBQQFRAUEBUPFQ86EDgRFA86EBQPFRA5EBQROA86EDkQOBEADQUAAAAAAAAAAA==
mid_29 = JgBAAAABN5MRORAUDxUQFQ85ERQQFBAUEBUQFBAVDxUQFBAVEBQQFBA5ETgQORAUEBUPFQ86EBQPFRAVDxUPFRAADQUAAAAAAAAAAA==
mid_30 = JgBAAAABN5MRORAUEBQQFQ86EBQQFBAVDxUQFBAVDxUQFQ8VDxUQFQ85ETgQOQ86EBQPFRA4ERQQFQ8VEBUPORAADQUAAAAAAAAAAA==
high_18	= JgBAAAABNpQSOBAUEBUQFBA5EBQRFA8VEBQQFRAUEBQRFA8VEBUPFRAUEBUPORE3ERUPOREUDxUPFRA5EDkQORAADQUAAAAAAAAAAA==
high_19	= JgBAAAABNpQRORAUDxUQFQ86EBQPFRAVDxUPFRAVDxUQFBAVDxUQFBAVDzoQFA8VEBUPOREUDxUQORAUEBUPFQ8ADQUAAAAAAAAAAA==
high_20	= JgBAAAABN5QROBEUEBQPFRE4EBQQFRAUEBUQFA8VEBUQFA8VERQPFRAUEDkQFRA4ERQPOREUDxUQORAUEBUPORIADQUAAAAAAAAAAA==
high_21	= JgBAAAABN5QROBEUDxUQFBE4EBQRFBAUEBUQFBAUERQQFBAUERQPFRAUEDkROA8VERQQOBEUEBQQOQ8VETgQFBAADQUAAAAAAAAAAA==
high_22	= JgBAAAABN5QROBAVDxUPFRE4EBQRFBAUEBQQFRAUEBUPFRAUEBUQFA8VETgQORA5EBQQORAUEBQROBEUEDgROBAADQUAAAAAAAAAAA==
high_23	= JgBAAAABN5MRORAUEBQQFQ86EBQPFRAVDxUQFBAVDxUQFQ8VEBQQFQ85ERQQFBAUEBUPOhAUEBQQORA5EBQQFQ8ADQUAAAAAAAAAAA==
high_24	= JgBAAAABN5QROBAVEBQQFBE4EBQQFRAUEBUQFBAUEBUPFRAUEBUPFRA5EBQQFBE4ERQQOBEUDxUQORA5EBQQORAADQUAAAAAAAAAAA==
high_25	= JgBAAAABN5MRORAUDxUQFRA5EBQQFBAVDxUPFREUEBQQFBAVEBQQFQ85ERQQOBAVEBQQORAUEBUPORA5EDkQFBAADQUAAAAAAAAAAA==
high_26	= JgBAAAABOJISNxITERMRExI3EhMRExETEhMRExETEhMRExITERMRExI3ERMSNxE4ERMSNw8VEhMRNxI3ETgROBEADQUAAAAAAAAAAA==
high_27	= JgBAAAABNpQRORAUDxUQFQ85ERQPFRAVDxUPFRAVDxUQFBAVDxUQFQ85EDkQFBAVDxUQOQ8VEBUPFRAUEBUPFRAADQUAAAAAAAAAAA==
high_28 = JgBAAAABOJMROBEUDxUQFBA5EBUPFQ8VEBUPFRAUEBUPFRAVDxUPFRA5EDkQFBA5DxUQOQ8VEBUPFQ8VEBUPOg8ADQUAAAAAAAAAAA==
high_29 = JgBAAAABN5MSOBAUEBUPFRA5EBQQFQ8VDxUQFQ8VEBUPFQ8VEBUPFQ86DzkQORAVDxUQORAUEBQQFQ8VEDkPFRAADQUAAAAAAAAAAA==
high_30 = JgBAAAABOpESOBISDxUSExI2ExISEhETEBUSEhITERMSEhMSERMSEhM2EjcSNxI2ExIRNxAVEhISExISEjcSNhMADQUAAAAAAAAAAA==
auto_18 = JgBAAAABOJITNhITEhISExE3EhMRExISEhMRExITERMSEhITERMSEhITERMSNxI3ERMSNxETEjcSNxETEhISExEADQUAAAAAAAAAAA==
auto_19 = JgBAAAABNpQSOBETERMSExE4ERMRExEUERMRExAVERMRFBETDxURFBETETgRExETEhMROBETETgRNxITERMROBEADQUAAAAAAAAAAA==
auto_20 = JgBAAAABNpQQORAVDxUSEhA5EBUPFQ8VEBUPFRAVDxUPFRAVDxUPFRAVDzkQFRE4DxUPOg8VETgPORAVDzoPFQ8ADQUAAAAAAAAAAA==
auto_21 = JgBAAAABOJQQORAVDxUQFQ85EBUPFQ8VEBUPFRAUEBUPFRAVDxUPFRAVDzkQOBEVDxUPOg8VEDkPORAVDzoPORAADQUAAAAAAAAAAA==
auto_22 = JgBAAAABN5QQORAVDxUPFRA5EBUPFQ8VEBUPFQ8VEBUPFRAVDxUPFRAVDzkQORA5DxUQOQ8VEDkQOQ85EBUPFRAADQUAAAAAAAAAAA==
auto_23 = JgBAAAABN5QQORAVDxUPFRA5EBUPFQ8VEBUPFQ8VEBUPFQ8VEBUSEhA5DxUQFQ8VERQPORAUEjcQOQ86DxUPOg8ADQUAAAAAAAAAAA==
auto_24 = JgBAAAABNpQQORAVDxUQFQ85EBUPFRAUEBUPFRAVDxUPFRAVDxUPFRA5EBQQFQ86DxUPOg8VDzoPOg85EDkPFRAADQUAAAAAAAAAAA==
auto_25 = JgBAAAABNpQQORAVDxUQFBA5EBUPFQ8VEBUPFQ8VERQPFRAVDxUPFRA5DxYPORAVDxUPOg8VDzoPORA5EDkPOg8ADQUAAAAAAAAAAA==
auto_26 = JgBAAAABN5MSOBAUEhMQFBA5EBQRExEUDxURFBAUEBQRFBAUEBQRFBA4ERQQOBI3ERQQOBEUEDkQFBISERQQFA8ADQUAAAAAAAAAAA==
auto_27 = JgBAAAABNpQQOg8VDxUQFQ85EBUPFRAVDxUPFRAVDxUPFg8VDxUQFQ85EDkPFRAVDxUQOQ8VEDkQFBAVDxUQOQ8ADQUAAAAAAAAAAA==
auto_28 = JgBAAAABN5MROQ8VEBUPFQ86DxUQFQ8VDxUQFQ8VDxUQFQ8VEBUPFQ86DzkQFQ85EBUPOg8VETgPFQ8VEDkQFQ8ADQUAAAAAAAAAAA==
auto_29 = JgBAAAABNpQQOg8VDxUQFQ86DxUPFRAVDxUPFRAVDxUQFQ8VDxUQFQ85EDkPOg8VEBUPORAVETcQFQ8VEDkPOg8ADQUAAAAAAAAAAA==
auto_30 = JgBAAAABNpQQOg8VDxUQFQ85EBUPFRAVDxUPFRAVDxUPFRAVDxUQFQ85EDkPOg86DxUPOg8VDzoPFQ86DxUQFBAADQUAAAAAAAAAAA==

Nice work. Just added PR for my Panasonic CS-CE9HKEW HVAC.

Could this component be considered to be added to the official HASS release? I know the code libraries can get overwhelming, but still…

Thanks a lot for this work.

Need a little help to understand how to make the ini-file.
My remote control has the choices:
Mode: Auto, Heat, Cool, Fan
Fan speed: Auto, 1, 2, 3, 4, 5
Temp: 16 - 30

I think it will be right to call fan speed 1 (low), 3 (mid) and 5 (high), but what can I call fan speed 2 and 4?

Do I need to add something to broadlink.py and climate.yaml?

I made a .ini file for Panasonic CS-HE9LKE, but does not allow fan mode (at the end of the file) to work. The codes should be correct. Does something need to be done in broadlink.py to get it right?

    ### Panasonic CS-HE9LKE

    [off]
    off_command = JgC8AXI7DQ8NLA4PDRANDw4PDRANDw0QDQ8ODw0QDQ8NLA4PDRANDw4PDRANDw0QDSwNLA4sDQ8ODw0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0QDQ8NEA0PDg8NAAFVcjoPDg0sDg8NEA0PDg8NDw4PDRANDw4PDRANDw0sDg8NEA0PDRANDw4PDRANLA0sDiwNDw0QDSwNEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0sDRANDw4PDRANDw0QDQ8ODw0sDiwNDw0QDQ8ODw0QDQ8NEA0PDg8NLA4sDSwNEA0PDSwODw0sDg8NEA0sDRANLA0PDg8NEA0PDRANDw4PDRANDw4PDQ8ODw0QDSwNLA4sDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NDw4PDRANLA0QDQ8NEA0PDg8NEA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0tDQ8NLA4PDRANDw4sDQANBQAAAAAAAAAAAAAAAA==

    [idle]
    idle_command = JgC8AXI7DQ8NLA4PDRANDw4PDRANDw0QDQ8ODw0QDQ8NLA4PDRANDw4PDRANDw0QDSwNLA4sDQ8ODw0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0QDQ8NEA0PDg8NAAFVcjoPDg0sDg8NEA0PDg8NDw4PDRANDw4PDRANDw0sDg8NEA0PDRANDw4PDRANLA0sDiwNDw0QDSwNEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0sDRANDw4PDRANDw0QDQ8ODw0sDiwNDw0QDQ8ODw0QDQ8NEA0PDg8NLA4sDSwNEA0PDSwODw0sDg8NEA0sDRANLA0PDg8NEA0PDRANDw4PDRANDw4PDQ8ODw0QDSwNLA4sDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NDw4PDRANLA0QDQ8NEA0PDg8NEA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0tDQ8NLA4PDRANDw4sDQANBQAAAAAAAAAAAAAAAA==

    [auto]
    auto_16 = JgC8AXI6DRANLA0PDg8NEA0PDg8NDw4PDRANDw4PDRANLA0PDg8NEA0PDRANDw4PDSwOLA0sDRANDw0tDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw4PDQ8ODw0QDSwNLA4PDRANDw0QDQ8OAAFVcTsNDw4sDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4sDQ8ODw0QDQ8NEA0PDg8NLA4sDisNEA0PDSwODw0QDQ8ODw0PDg8NEA0PDg8NEA0PDRANDw4PDRANDw0sDg8NEA0PDg8NDw4PDRANDw0QDSwNEA0PDg8NEA0PDRANDw4PDRANLA0sDiwNDw0QDQ8OLA0PDiwNDw0sDg8NLA4PDRANDw0QDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0sDRANDw4PDRANDw4PDRANDw0QDSwNLA4sDQ8NEA0PDg8NEA0PDRANEA0PDRANDw4PDRANDw0QDQ8OLA0PDRANDw4PDRANDw0tDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8ODw0sDRANLA0QDQ8OLA0sDQANBQAAAAAAAAAAAAAAAA==
    auto_17 = JgC8AXI6DRANLA0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANLA0QDQ8ODw0QDQ8NEA0PDiwNLA0sDg8NEA0sDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NDw4PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0PDRANDw4PDRANAAFVcjoNEA0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0sDRANDw4PDRANDw0QDQ8OLA0sDSwODw0PDiwNDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4sDQ8ODw0QDQ8NEA0sDRANDw4PDSwNEA0PDg8NEA0PDg8NEA0PDRANLA0sDiwNDw0QDQ8OLA0PDiwNDw4sDQ8NLQ0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0sDg8NEA0PDRANDw4PDRANDw0QDSwNLA4sDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8OLA0PDg8NEA0PDRANDw4sDQ8NEA0PDg8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDSwNLA0QDQ8OLA0sDQANBQAAAAAAAAAAAAAAAA==

     **_code is 291 lines so it is too big to paste .. .._**
    
    high_27 = JgC8AXI6Dg8NLA0QDQ8ODw0QDQ8ODw0PDg8NEA0PDg8NLA0QDQ8ODw0QDQ8NEA0PDiwNLA0sDg8NEA0sDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NDw4PDRANDw4PDSwNLA4PDRANDw4PDRANAAFVcjoNEA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0sDQ8ODw0QDQ8ODw0PDg8NLA4sDSwNEA0PDSwODw0QDQ8ODw0PDg8NEA0PDg8NEA0PDRANDw4sDQ8NEA0sDSwOLA0PDg8NEA0sDSwNEA0sDSwODw0QDQ8NEA0PDg8NEA0PDRANLA0sDiwNDw4PDSwNLQ0sDQ8ODw0sDg8NLA4PDQ8ODw0QDQ8ODw0PDg8NEA0PDg8NDw4PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0sDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NLA4PDQ8ODw0QDQ8ODw0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANLA0QDQ8ODw0QDSwNLA0sDgANBQAAAAAAAAAAAAAAAA==
    high_28 = JgC8AXI6Dg8NLA4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NLA4PDQ8ODw0QDQ8ODw0PDiwNLA0sDg8NEA0sDQ8ODw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0PDRANDw4PDRANAAFVcjoNEA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0sDRANDw0QDQ8ODw0QDQ8NLA4sDSwNEA0PDiwNDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4sDQ8ODw0sDSwOLA0PDg8NEA0PDRANLA0sDiwNDw4PDRANDw0QDQ8ODw0QDQ8OLA0sDSwNEA0PDiwNLA0sDRANDw4sDQ8OLA0PDRANDw4PDRANDw4PDQ8ODw0QDQ8ODw0PDiwNLA0sDg8NEA0PDRANDw4PDRANDw0QDSwNLA4sDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8OLA0PDg8NDw4PDRANDw4sDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NLQ0sDQ8ODw0QDSwNLA4sDQANBQAAAAAAAAAAAAAAAA==
    high_29 = JgC8AXI6DRANLA0QDQ8NEA0PDg8NEA0PDRANDw4PDRANLA0PDg8NEA0PDg8NEA0PDSwOLA0sDRANDw0sDg8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDSwNLA0QDQ8ODw0QDQ8NAAFWcTsNDw4sDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0tDQ8NEA0PDg8NEA0PDRANLA0sDiwNDw4PDSwNEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0sDg8NEA0sDSwNLA4PDRANDw0tDQ8NLA4sDSwNEA0PDg8NEA0PDRANDw4PDRANLA0sDSwODw0QDSwNLA0tDQ8NEA0sDRANLA0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDSwNLA4sDQ8ODw0QDQ8NEA0PDg8NEA0PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NDw4PDRANLA0QDQ8NEA0PDg8NEA0sDRANDw4PDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANLA0PDiwODg4PDSwNLQ0sDQANBQAAAAAAAAAAAAAAAA==
    high_30 = JgC8AXI6Dg8NLA0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANLA0QDQ8ODw0QDQ8NEA0PDiwNLA0sDRANDw4sDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDSwNLA4PDRANDw0QDQ8OAAFVcjoNEA0sDQ8ODw0QDQ8ODw0PDg8NEA0PDg8NDw4sDQ8ODw0QDQ8NEA0PDg8NLA4sDSwNEA0PDSwODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw4sDQ8NEA0sDSwOLA0PDg8NEA0PDSwOLA4rDSwODw0QDQ8NEA0PDg8NEA0PDRANLA0sDiwNDw0QDSwNLA4sDQ8ODw0sDg8NLA0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA4rDg8NDw4PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NLA0QDQ8ODw0QDQ8NEA0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANLA0sDiwNDw4PDSwNLA4sDQANBQAAAAAAAAAAAAAAAA==

    [fan]
    auto = JgC8AXI6DRANLA0QDQ8NEA0PDg8NEA0PDRANDw4PDRANLA0PDg8NEA0PDRANDw4PDSwOLA0sDRANDw0sDg8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDSwNLA0QDQ8ODw0QDQ8NAAFWcTsNDw4sDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0sDg8NEA0PDg8NEA0PDRANLA0sDiwNDw4PDSwNEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0sDg8NEA0sDQ8OLA0sDRANDw4sDSwNDw4sDSwNEA0PDg8NDw4PDRANDw4PDRANLA0sDSwODw0QDQ8NLQ0PDSwODw0sDg8NLA4PDRANDw0QDQ8ODw0PDg8NEA0PDg8NDw4PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0sDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NLA4PDRANDw0QDQ8ODw0sDRANDw4PDRANDw0QDQ8ODw0QDQ8ODw0PDg8NEA0PDg8NLA0QDQ8ODw0QDQ8NLA4PDQANBQAAAAAAAAAAAAAAAA==
    low = JgC8AXI6Dg8NLA4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NLA4PDQ8ODw0QDQ8ODw0QDSwNLA0sDg8NEA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0PDRANDw4PDRANAAFVcjoNEA0sDRANDw0QDQ8ODw0QDQ8ODw0QDQ8NEA0sDRANDw0QDQ8ODw0QDQ8NLA4sDSwNEA0PDiwNDw4PDQ8ODw0QDQ8ODw0PDg8NEA0PDg8NEA0sDQ8ODw0sDg8NLA0sDg8NEA0sDisODw0sDS0NDw0QDQ8ODw0QDQ8NEA0PDg8NLA4sDSwNEA0PDSwOLA0PDg8NEA0sDQ8OLA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDSwNLA0sDg8NEA0PDg8NEA0PDRANDw4PDSwNLQ0sDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NDw4PDRANEA0PDRANLA0PDg8NEA0PDRANDw4sDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8OLA0PDg8NEA0sDQ8OLA0sDQANBQAAAAAAAAAAAAAAAA==
    mediumLow = JgC8AXE7DQ8NLA4PDRANDw4PDRANDw0QDQ8ODw0QDQ8NLA4PDRANDw4PDQ8ODw0QDSwNLA4sDQ8NEA0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDSwOLA0PDg8NEA0PDRANAAFVcjoODw0sDg8NDw4PDRANDw4PDQ8ODw0QDQ8ODw0sDRANDw4PDRANDw0QDQ8OLA0sDSwODw0QDSwNDw4PDRANDw0QDQ8ODw0QDQ8ODw0QDQ8NEA0sDRANDw0sDg8NLA4sDQ8ODw0sDS0ODg0sDiwNDw4PDRANDw0QDQ8ODw0QDQ8NLA4sDSwNEA0PDg8NDw4sDQ8ODw0sDg8NLA0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0sDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NLA4PDRANDw0QDQ8ODw0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NLA0QDQ8ODw0QDSwNLA0sDgANBQAAAAAAAAAAAAAAAA==
    mid = JgC8AXI7DQ8NLA4PDRANDw0QDRANDw0QDQ8ODw0PDg8NLA4PDRANDw0QDQ8ODw0QDSwNLA0sDg8NEA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDg8NDw4PDRANDw4PDQ8ODw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDSwOLA0PDg8NEA0PDRANAAFVcjoODw0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0sDRANDw4PDRANDw0QDQ8OLA0sDSwNEA0PDiwNDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0sDRANDw0sDg8NLA4sDQ8NEA0sDSwODw0sDiwNDw4PDQ8ODw0QDQ8ODw0QDQ8NLA4sDSwNEA0PDSwODw0sDg8NEA0sDRANLA0PDg8NEA0PDg8NDw4PDRANDw4PDRANDw0QDSwNLA4sDQ8NEA0PDg8NEA0PDRANDw4PDSwOLA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANLA0QDQ8NEA0PDg8NEA0sDQ8ODw0QDQ8ODw0PDg8NEA0PDg8NDw4PDRANDw4PDQ8OLA0PDg8NEA0sDSwNLQ0sDQANBQAAAAAAAAAAAAAAAA==
    mediumHigh = JgC8AXE7DQ8NLA4PDRANDw4PDRANDw0QDQ8ODw0QDQ8NLA4PDRANDw4PDRANDw0QDSwNLA4sDQ8NEA0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDSwOLA0PDg8NEA0PDg8NAAFVcjoODw0sDg8NDw4PDRANDw4PDQ8ODw0QDQ8ODw0sDRANDw4PDRANDw0QDQ8OLA0sDSwODw0QDSwNDw4PDRANDw4PDQ8ODw0QDQ8ODw0QDQ8NEA0sDRANDw0sDg8NLA4sDQ8ODw0sDiwNDw0sDiwNDw4PDRANDw0QDQ8ODw0QDQ8NLQ0sDSwNEA0PDg8NLA4rDg8NEA0sDRANLA0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDSwNLA4sDQ8ODw0QDQ8NEA0PDg8NEA0PDSwOLA0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANLA0QDQ8NEA0PDg8NEA0sDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANLA0QDQ8NEA0PDg8NEA0PDQANBQAAAAAAAAAAAAAAAA==
    high = JgC8AXI7Dg4NLA4PDRANDw4PDRANDw0QDQ8ODw0QDQ8NLA4PDRANDw0QDQ8ODw0QDSwNLA4sDQ8NEA0sDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0PDSwOLA0PDg8NEA0PDRANAAFVcjoODw0sDRANDw4PDRANDw0QDQ8ODw0QDQ8ODw0sDRANDw4PDRANDw0QDQ8OLA0sDSwODw0QDSwNDw4PDRANDw0QDQ8ODw0QDQ8NEA0PDg8NEA0sDRANDw0sDw4NLA4sDQ8ODw0sDSwODw0sDiwNDw4PDRANDw0QDQ8ODw0QDQ8NLA4sDSwNEA0PDiwNLA0sDg8NDw4sDQ8OLA0PDRANEA0PDRANDw0QDQ8ODw0QDQ8NEA0PDiwNLA0sDg8NEA0PDRANDw4PDRANDw0QDSwNLA4sDQ8ODw0QDQ8NEA0PDg8NEA0PDRANDw4PDRANDw0QDQ8OLA0PDg8NEA0PDRANDw4sDQ8NEA0PDg8NEA0PDRANDw4PDRANDw4PDQ8ODw0QDQ8NLQ0PDRANDw4sDQ8ODw0QDQANBQAAAAAAAAAAAAAAAA==

climate.yaml

  - platform: broadlink
    name: Panasonic CS-HE9LKE
    host: xx.xx.xx.xx
    mac: 'xx:xx:xx:xx:xx:xx'
    ircodes_ini: 'broadlink_climate_codes/panasonic_CS-HE9LKE.ini'
    min_temp: 16
    max_temp: 30
    target_temp: 23
    temp_sensor: sensor.aeotec_zw100_multisensor_6_temperature_4
    default_operation: heat
    default_fan_mode: mid
    customize:
      operations:
        - 'off'
        - idle
        - auto
        - heat
        - cool
        - fan
      fan_modes:
        - auto
        - low
        - mediumLow
        - mid
        - mediumHigh
        - high

Error message:

Error executing service <ServiceCall climate.set_fan_mode: entity_id=['climate.panasonic_cshe9lke'], fan_mode=high>
1:03 AM custom_components/climate/broadlink.py (ERROR)
Error executing service <ServiceCall climate.set_fan_mode: entity_id=['climate.panasonic_cshe9lke'], fan_mode=mediumHigh>
1:03 AM custom_components/climate/broadlink.py (ERROR)
Error executing service <ServiceCall climate.set_fan_mode: entity_id=['climate.panasonic_cshe9lke'], fan_mode=mid>
1:03 AM custom_components/climate/broadlink.py (ERROR)
Error executing service <ServiceCall climate.set_fan_mode: entity_id=['climate.panasonic_cshe9lke'], fan_mode=mediumLow>
1:03 AM custom_components/climate/broadlink.py (ERROR)
Error executing service <ServiceCall climate.set_fan_mode: entity_id=['climate.panasonic_cshe9lke'], fan_mode=low>
1:03 AM custom_components/climate/broadlink.py (ERROR)
Error executing service <ServiceCall climate.set_operation_mode: entity_id=['climate.panasonic_cshe9lke'], operation_mode=fan>
1:02 AM custom_components/climate/broadlink.py (ERROR)

This is awesome! I’m a total noob to HA, but I got this working in less than 15 minutes for my RM Mini & Panasonic Aircon, using the panasonic aircon ini file from someone else in the repository!

Thank you so much!!!

I think you need to add x5 of the fan modes all the way through your ini for cool/heat/auto part of the file and i wonder if fan modes at the end needs an ir code for every temperature (even though the ac doesn’t support it i think hassio expects it).

Thank you @kiwijunglist, that solved my problem :+1:

1 Like

I wanted some help with an automation, but I figured out on my own so I’ll post the example here:

- alias: 'Turn off AC if no motion for 90 minutes'
  trigger: # trigger if motion sensor off for 90 minutes
    platform: state
    entity_id: binary_sensor.motion_sensor_158d0001dc7526
    to: 'off'
    for:
      minutes: 90
  condition: # check aircon isn't already idle, if you use the original aircon remote as well as H.A. then you should probably skip this condition, this is because the AC might be set to ON without H.A. knowing it is already on.
  - condition: template
    value_template: "{{ not is_state('climate.panasonic_aircon', 'idle') }}"     
  action: # turn the AC to idle mode
    service: climate.set_operation_mode
    data:
      entity_id: climate.panasonic_aircon
      operation_mode: idle

PS: This is my first automation =)

Can I please request this is added to the wiki page, I’m sure it would help a lot of people.

@bengt you’re welcome

2 Likes

I had an idea to improve the functionality of my air conditioner with the broadlink component. Sometimes you don’t know if the aircon is on (ie if it was turned on via the original IR remote).

You can put a xiaomi door sensor on the duct of the air conditioner. It can sense whether the airconditioner is on or off. Is there any way this can be easily integrated into the existing climate control. I was wondering if we could add an additional state called “on” that doesn’t have an IR code.

The logic would be

If xiaomi door sensor from closed to open , then check broadlink cimate aircon state. If currently idle then set state to “on” if not idle then do nothing.
If xiaomi door sensor from open to closed, then check broadlink climate airconst ate. If currently not idle then set state to idle.

Is there a way to set the climate aircon state through automation.yaml ?

6 Likes

That’s a great idea, I will probably do something like that. I even have an extra wireless door sensor. I think you could set the state through automation, but what temperature would you set it at? As you know, the AC can not report back to the Braodlink unit what temperature it is set at. Maybe use the target temp defined in the YAML config file but what could be set using the AC remote control could be different…

Yes. You only know that it is on. You don’t know operation mode, target temp, or fan speed.

I’d set it as
Operation mode: on
Temp:
Fan speed:

For temp i think I’d leave it blank, you could use “unknown” for temp, or just leave it at the current numerical value. I don’t think it’s that important to know the target temp, just the fact that it is on should be enough for most automations.

I found you can set the state and attributes of the climate entity in the states tab of the web interface using a web api call with a json string. I have not idea how to put that action into automation.yaml though.

I have asked the question here:

But haven’t had any replies yet.

using open close sensor to detect the state (on/off) of a dumb aircon is a brilliant idea. unfortunately it is not supported by this custom component. i hope this can be supported soon. perhaps it can do something similar to Switch Template where it uses value_template to determine the state of the switch.