SmartIR - Control your Climate, TV and Fan devices via IR/RF controllers

Hi there.

In case anyone is interested I’ve wrote a simple python script to automate learning IR codes for AC units using a Broadlink RM. Here is the script: GitHub - sargue/learn-broadlink: Broadlink RM IR remote learning script for smartir Home Assistant integration

I did it to learn all the codes for my Mitsubishi Electric MSZ-HR35VF which I already contributed to the smartir repository. PR here: add climate support for Mitsubishi Electric MSZ-HR35VF by sargue · Pull Request #981 · smartHomeHub/SmartIR · GitHub

I hope it might be useful for somebody else.

6 Likes

nevermind fixed

Hey guys, I have a cheap LED light strip that uses IR. Does anyone know of a fork or alternative that supports the light platform?

Something minor but triggers my OCD…how to fix this non capitalized “mid” fan mode?

Hello everyone,

I’m looking to create a json for a heater in my home it has 3 modes of heating, swing and the temperature only goes up. Is there a way to use smart ir for this use case? If so can someone support me with the how?

Thank you!

No problem. I can’t upload the file here but I’ve copied the code below. You will need to create a .json file with something similar to suit your heater. For example my file is simply 99999.json where I made up the file name as something that wasn’t already used by SmartIR.

As long as you have already got your Broadlink IR device working with HA, you just need to retrieve all the codes from your heater remote. To do that you go to Developer Tools and select ‘remote:learn_command’ and select your Broadlink entity, then click ‘Call Service’.

Now press a button on your gas heater remote while aiming at the Broadlink. HA will provide a persistent notification containing the IR code. You will need to replace the codes in my example with the ones you learn.

99999.json

{
    "manufacturer": "Paloma",
    "supportedModels": [
      "Generic"
    ],
    "supportedController": "Broadlink",
    "commandsEncoding": "Base64",
    "minTemperature": 18.0,
    "maxTemperature": 30.0,
    "precision": 1.0,
    "operationModes": [
      "heat"
    ],
    "fanModes": [
      "high"
    ],
    "commands": {
      "off": "JgBYAAABJpITNxM2FBETEhMSEhMSExM2ExITEhMSEzcSNxM3EjgTNhM3EhMTNhQ2FBETEhMTEhMSEhI3ExITEhM3EzYTNxI4EwAFFgABJEgVAAxIAAElShMADQU=",
      "heat": {
        "high": {
          "18": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "19": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "20": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "21": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "22": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "23": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "24": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "25": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "26": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "27": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "28": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "29": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU=",
          "30": "JgBYAAABJZMSNxM3EhMUERITEhITEhI4EhMSExMSEzYSOBM3EzYTNxMSExITNhM3EhMTEhITExITNhI4EhMSFBE3EjgSOBI3EwAFFgABJUkTAAxJAAEkShMADQU="
        }
      }
    }
  }

I hope this helps. Let me know if you need more info.

Cheers,

Dave

Thank you so much Dave for all your help and detail!

I really really appreciate it :slight_smile:

Config for Kaisai Eco air conditioner (KED-09KTA without WiFi)

https://www.dropbox.com/s/phsbh09zkljgdxi/9999.json?dl=0

morning all. So I undertook this weekend to learn all commands needed for climate control but when I transfer all 300 commands to the JSON it does not seem to want to work. the codes works independently if I use the IR send command so the commands “learned” correctly. Is there a correct way to get these codes into a JSON? once finalised and working I want to submit it to smarit to add to their list of supported devices as its a Panasonic thats not yet on their list

Anyone knows why on HomeKit it show the climate with a current temperature of 21° C even if I don’t have any temperature sensor configured ?

This is my smartir config:

  - platform: smartir
    name: Attic AC
    unique_id: atic_ac
    device_code: 1380
    controller_data: remote.attic_remote_remote

And this is how it shows on HomeKit:

I have two climates and the behavior is the same. Shows 21° on both of them

Hi Dave

Can supported modules be any name in the JSON?

Good afternoon.
Does anyone have the floureon and smartir integration at the same time?..I can’t get the beok 311 thermostat and the smartir integration to work at the same time

Does anyone know how to help me set up my air conditioner?
I have a Moes UFO-R11 Zigbee IR blaster.
Through this I learned the codes of the air conditioner remote control.
How do I set this to the smartir configuration?
Do I need to generate my own JSON file? If so how do I do it? What settings do I need to write?

1 Like

I’m not sure what that parameter actually does within the Integration, probably just for the user to understand which model(s) the code should work with.

Yes. See my post above.

Thanks.

I followed your guide but it still doesn’t work for me.
As I wrote, I have a Zigbee device connected via zigbee2mqtt to Home Assistant and yours is Broadlink. The question is how do I define this device in the JSON file? Maybe I set it wrong and that’s why nothing happens.
This is what I wrote for a test:

{
  "manufacturer": "Gree",
  "supportedModels": [
    "Unknown"
  ],
  "supportedController": "MQTT",
  "commandsEncoding": "Raw",
  "minTemperature": 25.0,
  "maxTemperature": 25.0,
  "precision": 1.0,
  "operationModes": [
    "heat",
    "cool"
  ],
  "fanModes": [
    "low"
  ],
  "commands": {
    "off": "C9ciaRGbAlgGmwIkAuABA+ATD+AHG+ADN+ADC+ATJ8AbwAdAN8ALAztOmwJAD+BrAwdYBpsCJAKbAg==",
    "heat": {
      "low": {
        "25": "B4sjWBGwAgkCgAMBXQbgAQPAE0AHQBdAB0AD4AMLQA/gDwNAJ0AD4AsfwBfAB0AjwAsDRU6wAkAP4GMDQHsLXQawAl0GsAJdBrAC"
      }
    },
    "cool": {
      "low": {
        "25": "E4UjWRGzAmcGYwJjArMCCgKzAmcGgANAC8ADQBMHCgJjAgoCswKACwGzAuALAwNjArMCwBdAJ0ADwA/gAweAFwVjAmcGYwLAAQNnBrMCQBMBcE5AB+AJAwBjYAEBswLgDxvgCxcCCgJjYAEBCgJAC4ADAGMgAcALgAfADwljAmcGswJnBmMC"
      }
    }
  }
}

In the config file of Home Assistant I tried all kinds of options but nothing worked:

- platform: smartir
  name: Office AC
  unique_id: e04d18de-6a4b-460c-906c-201a877e6c29
  device_code: 2019
  controller_data: zigbee2mqtt/Office_RC/set
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v2
  unique_id: 50a0a386-66a2-40bf-8502-cfb918b9c9ab
  device_code: 2019
  controller_data: zigbee2mqtt/Office RC/set
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v3
  unique_id: 2cdc5ce3-c8db-4de8-867c-11bc09027d68
  device_code: 2019
  controller_data: zigbee2mqtt/Office RC
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v4
  unique_id: 49d2cb51-3f31-4c64-9613-8bf08eee8c31
  device_code: 2019
  controller_data: zigbee2mqtt/Office-RC/set
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v5
  unique_id: 3c169560-8c8c-4f83-b26f-196ade531dd8
  device_code: 2019
  controller_data: zigbee2mqtt/Office-RC
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v6
  unique_id: 35fc40cd-fc75-4b78-941c-27a481f0f93b
  device_code: 2019
  controller_data: zigbee2mqtt/Office_RC
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v7
  unique_id: 2d99632e-5f0e-4d02-b799-5d5aa31ab69b
  device_code: 2019
  controller_data: zigbee2mqtt/Office-RC/command
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v8
  unique_id: 61dedd94-76b4-41fe-a32f-75a29b246601
  device_code: 2019
  controller_data: zigbee2mqtt/Office RC/command
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

- platform: smartir
  name: Office AC v9
  unique_id: ab47bf07-65b9-4d9d-9ef7-46af79899131
  device_code: 2019
  controller_data: zigbee2mqtt/Office_RC/command
  temperature_sensor: sensor.office_environment_temperature
  humidity_sensor: sensor.office_environment_humidity
  power_sensor: binary_sensor.office_ac_status

What am I doing wrong?

1 Like

Only certain IR devices are supported.

Ok. Mine works through MQTT, so maybe it works with the MQTT Publish service. Am I right?

Yeah I suppose. It’s not something I’m familiar with in regards to this Integration.

Got it.
Even though it seems like it should go away, I still can’t get my head around it and find a solution.
Thanks anyway for trying to help! :slight_smile: