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

Hi! I finally solved my issue, I needed to put the json code file in the smartir/codes folder, I finally found where to search for error codes and it was clear, json file was missing. I think that maybe is a good idea to specify it in the “how to”, it was not so obvious for me, and if it says that this step is needed, I missed it.

Thank you for this awesome component!!

Hi,

I do have a fan with 5 buttons only (On/Speed, Off, Mode, Timer, Swing).
Unfortunately, I cannot select a speed (3 levels controlled by the On/Speed button - Once on level 3, next command will go back to level 1).

I tried to setup a json code but something is not working.
Can anyone check my configuration (setup the “levelup” on “speed”, read it somewhere but I can’t figure out again where).

{
  "manufacturer": "Solis",
  "supportedModels": [
    "Unknown"
  ],
  "supportedController": "Broadlink",
  "commandsEncoding": "Base64",
  "speed": "levelup",
  "commands": {
    "off": "JgBYAAABJ5YTExISFBISExMSExITExISFBISExM3EzcUNxM3EjgUNxMRFBISExMSExITExISFDcTNxI4FDcTNxI4FDcTNxITEwAFcAABKEwTAAxnAAEoTBMADQU=",
    "on": "JgBgAAABKZQTExITEhMTExETExMSExITEhMTEhI4EzcTNxM4EzcTNxMTExITNxMTEhMSExITEzYUNxM3FBISOBM3EzcTNxQTEgAFcAABKksSAAxoAAEpShMADGgAASlKEgANBQAAAAAAAAAA",
    "levelup": "JgBgAAABKZQTExITEhMTExETExMSExITEhMTEhI4EzcTNxM4EzcTNxMTExITNxMTEhMSExITEzYUNxM3FBISOBM3EzcTNxQTEgAFcAABKksSAAxoAAEpShMADGgAASlKEgANBQAAAAAAAAAA",
    "timer": "JgBQAAABKpQTEhMSExITExISFBISExMSExITExI4EzcTNxM3EzcVNhMSEzgSOBMSExITEhMTEjgSOBMSExMSNxM4FDYTNxMTEwAFcAABKUsTAA0FAAAAAAAAAAA"
  }
}

Can anyone could help me handle such configuration ?

Hi, would it be possible to replace operation modes (cool, heat, dry…) on the Lovelace card with fan modes (auto, medium, quiet…) ? Thanks.

No, thats a hardcoded part of the lovelace card, not anything to do with SmartIR. You could submit an improvement if you want.

Latest HA (102+) broke Alexa integration for my dumb AC via SmartIR. I guess SmartIR needs to implement presets for the climate component.
Discovery for all devices fail unless I filter/exclude the AC from alexa, because of this:

 File "/home/nuc/homeassistant/lib/python3.7/site-packages/homeassistant/components/alexa/capabilities.py", line 755, in configuration
    for mode in preset_modes:
TypeError: 'NoneType' object is not iterable

More details about what changed in climate API/alexa https://github.com/home-assistant/home-assistant/pull/28176

Thanks for reporting this.

I make a own code for climate, file is valid in https://jsonformatter.org when i download file after validation then file save as jsonformatter.txt . I renamed the file 2061.json and put file in directory custom_components/smartir/codes/climate, but error in HA The device Json file is invalid

here is file link

Hi all!
Anyone can help on my issue?

Thanks,
Stefano

Hi there. How do I paste Pronto HEX code. Example. Thanks

HI I have the following simple automation which works.
But when I added the fan_mode isn’t working
Can someone help please?

here is my climate json

#Bedroom Air Con LR Heat on
- id: Bedroom AC
  alias: Bedroom Heat 
  trigger:
    platform: time
    at: '21:30:00'
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.bedroom_ac
        hvac_mode: 'heat'
        temperature: 26
        fan_mode: 'On Low'

The fan mode is ‘low’,‘mid’ and ‘high’, the climate.set_temperature needs to be ‘low’ not ‘on low’.

I have test it with ‘low’ also but it didn’t worked.
Any other ideas please. ?

Looking at the guide for the climate functions,

for climate.set_temperature, ‘fan_mode’ is not an accepted parameter. It can only be used with climate.set_fan_mode

Home Assistant Climate component ! = SmartIR :wink: (!= means not equal)

Thanks, that was my problem… now it is working

Hello all
How I can detect the status of an hi-fi integrated as media player via SmartIR using a smart plug with power monitor? I know that in stand-by the power is around 15W and when power on start from 30W

Hello all
I have a Mitsubishi Electric AC which is not included in the codes library for smartir climate so I figured I would create json code table for this specific model and share it.
I’m having doubts now that am I teaching the IR codes correctly to Broadlink RM mini.

Remote has on/off toggle button and I understand that AC remote sends all the data once (mode, temperature, fan speed).

I have taught the the temperatures for ac mode “auto” and fan speed “auto”. I taught these settings by setting the temperature, toggling the remote to off and then pressing the remote ON so that Broadlink can learn these setting (this would send the correct temp mode and fan speed).

HOWEVER I tested sending the same setting just by changing the temperature while the ac was “on” I noticed that the IR codes is not the same so I am not sure am I doing it the right way.

Here is the json for IR codes (not finished):

{
  "manufacturer": "Mitsubishi",
  "supportedModels": [
    "MSZ-SF25VE3",
    "MSZ-SF35VE3",
    "MSZ-SF42VE3",
    "MSZ-SF50VE3"
  ],
  "commandsEncoding": "Base64",
  "supportedController": "Broadlink",
  "minTemperature": 16,
  "maxTemperature": 31,
  "precision": 1,
  "operationModes": [
    "auto",
    "cool",
    "heat",
    "dry",
    "fan"
  ],
  "fanModes": [
    "auto",
    "quiet",
    "low",
    "normal",
    "high",
    "very high"
  ],
  "commands": {
    "off": "JgBMAmc4DCwLLAwPDBAMDwwrDBAMDwwrDCsMEAwrDA8MEAwrDCsMDwwrDCsMEAwPDCsMEAwPDikMEA0ODBAMDwwQDA8MEAwQDA8MEAwPDA8ODgwPDg4MDw0PDBAMDwwQDQ4MEAwPDQ8LEAwQDQ4MEA0qDQ4MEAwPDQ8MKwsQDBANDgwQDQ4MEA0qDCsMDw0qDCsMEAwPDQ8MDw0PDA8NDwwPDikMEAwPDSoMEAwrDA8MKw4pDBAMDw4ODA8ODgwPDQ8MDw4ODA8NDw0ODBAMDw4ODA8ODgwPDQ8MEAwPDBAMDw0PDA8MKwwQDA8MEAwPDBAMDw0qDBAMDwwQDQ4MEAwPDBAMDwwQDA8MEAwPDBAMDwwQDA8MEAwrDA8MKwwrDBAMDw0qDQABs2w5DCsMKwwQDQ4MEAwrDA8NDwwrDCsMDw4pDg4MDwwrDSoODgwrDSoMDw4ODCsNDgwQDSoMDw4ODA8NDw0ODBANDg4ODBANDgwQDA8NDwwPDQ8MDw0PCxANDw0ODBANDgwQDQ4MEA0ODBANDgwrDBANDgwQDA8OKQwQDQ4MEAwPDQ8MDwwrDSoMEAwrDSoMDw4ODA8ODgwPDg4MDwwQDSoNDgwQDSoNDgwrDBANKgwrDA8NDw0ODBAMDw4ODA8ODgwQDQ4NDgwQDQ4NDw0ODQ8NDwwPDQ8LEA0PDQ4MEA0ODBANKgwPDQ8MDw0PCxANDw0qDQ4MEA0ODBAMDw0PDA8MEA0ODBANDgwQDQ4MEA0ODQ8MDw4pDBANKgwrDA8ODgwrDAANBQAAAAAAAAAAAAAAAA==",
    "auto": {
      "auto": {
        "16": "JgBMAmg3DikOKQ4ODQ4ODg0qDQ4ODg0qDSoNDg4pDg4NDg4pDikODg0qDSoNDg4ODSoNDg4ODSoNDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4ODQ4ODg0ODg4NDg4ODQ4ODikODQ4ODg0ODg4NDg4ODg0qDQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4pDikODg0qDSoNDg4ODQ4ODg0ODg4NDg4ODSoNDg4ODSoNDg4pDg4NKg0qDQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4OKg0ODg0ODg4ODQ4ODg0qDQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4pDikODg0qDSoNDg4pDgABsm43DikOKQ4ODQ4ODg0qDQ4ODg0qDikODQ4pDg4NDg4pDikODg0qDikODQ4ODSoODQ4ODSoODQ4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODSoODQ4ODg0ODg4ODQ4ODg0qDQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4pDikODg0qDikODQ4ODQ4ODg0ODg4NDg4ODSoODQ4ODSoODQ4pDg4NKg4pDg0ODg0ODg4NDg4PDA4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODg0OKg0ODg4NDg4ODQ4ODg0qDQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4pDikODg0qDikODQ4pDgANBQAAAAAAAAAAAAAAAA==",
        "17": "JgBMAmk3DikOKQ4ODQ4ODg0qDg0ODg0qDikODQ4pDg4NDg4pDikODg0qDikODQ4ODSoODQ4ODikODQ4ODQ4ODg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODikODg0ODg4NDg4ODQ4ODg0qDg0ODg0qDg0ODg0ODg4NDg4ODQ4ODg0qDikODQ4pDikODg0ODg4NDg4ODQ4ODg0ODikODg0qDikODQ4pDg4OKQ4pDg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NKg4NDg4NDg4ODQ4ODg0qDg0ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4OKQ4pDikODg0qDgABdG04DikOKQ4NDg4NDg4pDg4NDg4pDikODg0qDg0ODg0qDikODQ4pDikODg0ODikODg0ODikODg0ODg4ODQ4ODg0ODg4NDg4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODSoNDg4ODQ4ODg0ODg4NDg4pDg4NDg4pDg4NDg4ODQ4ODg0ODg4NDw0pDikODg0qDikODQ4ODQ4ODg0ODg4NDg4ODSoODQ4pDikODg0qDg0OKQ4pDg4ODQ4ODg0ODg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4OKQ4ODQ4ODg0ODg4NDg4pDg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NKg4pDikODQ4pDgANBQAAAAAAAAAAAAAAAA==",
        "18": "JgBMAmc4DikOKQ0PDQ4NDw0qDQ4NDw0qDikNDg0qDg4ODQ0qDikODg0qDSoODQwQDSoMDw0PDSoNDg4ODA8ODg0ODBANDg4ODA8ODgwPDg4NDg4ODQ4ODgwPDg4MDw4ODCsMDw0PDA8NDwwQDA8MEAwqDBAMEAwPDCsMEAwPDBAMDwwQDA8MEAwrDCsMDwwrDCsODgwPDBAMDwwQDA8MEAwPDCsMEAwrDCsMDwwrDBAMKw4pDA8NDwwPDQ8MDw4ODA8NDwwPDQ8MDw0PDA8NDwwPDQ8MEAwPDBAMDwwQDA8MEAwPDBAMKg0PDBAMDwwQDA8MEAwrDA8MEAwPDBAMDwwQDA8MEAwPDBAMDwwQDA8MEAwPDBAMKwwPDBAMKwwrDCsMDwwrDAABdmw5DCsMKwwPDQ8MDw0qDBAMDw0qDSoMEAwrDBAMDwwrDCsMEAwqDCsMEAwQDCsMDwwQDCsMDwwQDA8MEAwPDBAMDwwQDA8MEAwPDBAMDwwQDA8MEAwPDBAMDwwQDCsMDwwQDA8NDwwPDQ8MDw0qDQ8MDw0PDCsMDw0PDA8NDwwPDQ8MDw0qDSoMEAwrDCsMEAwPDBAMDwwQDA8MEAwPDCsMEAwrCywMDwwrDBAMKwwrDA8NDwwPDBAMDwwQDA8MEAwPDBAMDwwQDA8MEAwPDBAMDw0PDA8MEAwPDBAMDw0PDA8NKgwQDA8NDwwPDQ8MDw0qDBAMDw0PDA8NDwwPDQ8MEAwPDBAMDwwQDA8MEAwPDBAMKg0PDBAMKwwrDCsMDwwrDAANBQAAAAAAAAAAAAAAAA==",
        "19": "JgBMAmY6CywLLAsQCxELEAssCxELEAssCywLEQssCxALEQssCywLEAssCywLEQsQCywMEAsQCywMEAsQCxELEAsRCxALEQsQCxELEAsRCxEKEQsRCxALEQsQCxELEAsRCywLEAsRCxALEQsQCxELEAssCxELEAssCywLEQsQCxELEAsRCxALEQssCywLEAssCywLEQsQCxELEAsRDQ4LEQsQDSoMEAssCywLEA0rCxANKgssCxANDw0ODQ8NDwwPDQ8MDw0PDA8NDwwPDQ8NDg0PDA8LEQwPDQ8NDgsRDQ4NDw0ODQ8NKgsQDQ8NDg0PDQ4NDw0qCxANDw0ODQ8NDg0PDQ4LEQ0ODQ8NDg0PDQ4NDw0ODQ8NDg4pCxENKgssCywLEA0qDAABdm04DSoLLAsQDQ8NDg0qDBANDg0qDCsMEA0qCxEMDw0qCywLEQwrCywLEA0PDCsLEA0PDCsLEA0PDA8NDw0ODQ8NDg0PDA8NDw0ODQ8LEA0PDQ4LEQ0ODQ8NDg0PDSoLEA0PDQ4LEQ0ODQ8NDg0qCxENDg0qDCsLEQ0ODQ8NDg0PDQ4MEA0qCywLEA0qDCsMEA0PDA8NDwwPDQ8MDw0PDCsLEA0qCywLEQwrCxANKgssCxENDg0PDQ4NDw0ODQ8NDg0PDQ4NDw0ODQ8LEA0PCxANDw0ODQ8LEA0PCxANDw0ODQ8NKgsQDQ8NDg0PCxANDw0qCxANDw0ODQ8NDg0PDQ4NDw0ODBANDg0PDQ8MDw0PCxANDg0qDBANKgssCywLEQ0qCwANBQAAAAAAAAAAAAAAAA==",
        "20": "JgBMAmY5DCsMKwwQDQ4ODgwrDA8ODg0qDCsMDw4pDQ8NDg0qDygODg4pDSoNDg4ODSoODQ8NDikNDg4ODg0PDQ0PDQ4ODg0ODQ4ODg0PDQ4NDw0ODQ8NDg0PDQ4NDw0ODSoODg0ODQ8NDg0PDQ4NDw0qDQ4NDw0ODQ8NKg4NDQ8NDg0PDQ4ODg0qDSoODQ4pDikODg0ODg4NDg4ODQ4PDQ0ODikODg0qDSoODQ4pDg4NKg0qDg4NDg0PDQ4NDw0ODg4NDg4ODQ4ODg0ODg4NDg4ODA8NDw4NDBAODQ4ODQ4ODg0ODw0MKw0ODg4MDw8NDQ4ODg4pDg0ODg0ODBANDg8NDA8PDQ0ODw0MDw8NDg0ODg4NDQ8NKg4pDQ4PKA4pDykNDg4pDQABdHA1DikPKA8NDQ8NDg4pDQ8NDg0qDSoODg0qDg0NDw0qDikNDg0qDikODg0ODSoNDw0ODSoODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODikODg4NDg4NDg4ODQ8NDg0qDQ8NDg4ODg0NKg0PDQ4NDw4NDQ8NDg0qDSoNDw4pDSoNDg4ODQ4ODg0ODg4NDg8NDCsNDg4pDSoODg4pDA8OKQwrDBANDg8NDA8ODg0ODBAMDw4ODQ4ODgwPDg4NDg4ODQ4MEA0ODg4NDg4ODBANDg0ODQ8NKg0PDA8NDw0ODQ8MDw0qDBANDgwQDQ4NDw0ODBANDg0PDQ4MEA0ODQ8NDg0PDA8OKQwrDBANKgwrDCsNDg0qDAANBQAAAAAAAAAAAAAAAA==",
        "21": "JgBMAmg3DSoLLAsRCxANDwssCxALEQ0qCywLEA0qDBALEA0qDCsMEA0qCywLEQwPDSoLEQsQDSoLEQ0ODQ8NDgsRDQ4LEQwPDQ8LEA0PCxANDw0ODQ8NDgsRDQ4NDw0ODSoNDw0ODQ8NDg0PCxANDwssCxANDwssCxANKgsRDQ4MEA0OCxENDg0qDCsMEA0qDSoLEQwPCxEMDw0PDQ4LEQ0ODSoLEQwrCywLEA4pCxENKgssCxANDw0OCxENDg0PDQ4NDw0ODQ8NDg0PDQ4ODg0OCxENDg0PDQ4NDwsQDQ8NDg0PCxANKgsRDQ4NDw0ODQ8NDg0qDBANDg0PDQ4NDw0ODQ8NDg0PCxANDw0PDA8NDwwPDQ8MDw0PDCsLLAssCywLEA0qCwABdm44DCsLLAsQDQ8LEA0qCxENDg0qCywLEQssCxANDw0qCywLEA0qCywNDw0OCywLEQ0OCywNDw0OCxENDg0PDQ4NDw0ODQ8MDw0PDQ8MDw0ODg4LEA0PDQ4NDwsQDikMEAsRDQ4LEQ0OCxENDgssCxENDg0qCxENKgsQDQ8NDg0PDQ4NDwssCywLEA0qCywNDwsQDQ8LEA0PDQ4NDwsQDSoMEA0qDSoLEA0qDQ8NKgssDQ4NDw0ODBANDg0PDQ4NDw0PDQ4NDwsQDQ8NDg0PCxANDwsQDQ8LEA0PDQ4NDwsQDQ8NKgsQDQ8LEA0PCxANDwssDQ4NDwsQDQ8LEA0PCxANDwsQDQ8LEA0PDQ4NDwsQDQ8NDg0PDSoLLA0qDSoNDg0qDgANBQAAAAAAAAAAAAAAAA==",
               JgBMAmg4DSoNKg0ODQ8NDg4pDg4NDg4pDikODg0qDQ4ODg0qDSoNDg4pDikODg0ODikODg0ODioNDg4NDg4NDg4ODQ4ODg0ODg4ODQ4ODg4NDg4ODQ4ODg0ODg4NDg4ODSoNDg4ODQ4ODg0ODg4NDg4pDg4NDg4pDg4NKg0ODg4NDg4ODQ4ODg0qDSoNDg4pDikODg0ODg4NDg4ODQ4ODg4NDioNDg4pDg0OKg0qDQ4OKQ4pDg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NKg0ODg4NDg4ODQ4ODg0qDg0ODg0ODg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODg0qDSoNKg0qDSoNDg4pDgABc243DioNKg0ODg4NDg4pDg4NDg4pDikODg0qDQ4ODg0qDSoNDg4pDikODg0ODikODg0ODikODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODg0ODg0ODg4ODQ4ODg0ODg4NDioNDg4NDg4ODg0ODg4NDg4pDg4NDg4pDg4NKg0ODg4NDg4ODQ4ODg0qDSoNDg4pDikODg0ODg4NDg4ODQ4ODg0ODikODg0qDg0OKg0qDQ4NKg4pDg0ODg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NDg4ODQ4ODg0ODg4NKg0ODg4NDg4ODQ4ODg0qDQ4ODg0ODg4NDg4ODQ4ODg0OEQsNDg4ODQ4ODg0ODg4NDg4qDSoNKg0qDSoNDg4pDgANBQAAAAAAAAAAAAAAAA==

As you can see that the setting auto, auto 21 degress are different. Maybe I don’t get it but I understood that it shouldn’t matter if turn the AC to auto, auto 21 degress by turning it on or changing the temperature as it should send always the same ir code?

So my question is that what is the correct way to teach the IR codes?
Setting the desired values to remote and toggling it to OFF and then learn the ON command or just by changing the values and teaching it those commands? Or it doesn’t matter?

1 Like

I have 2 split systems from these guys.

You are correct that every IR blast sends every command to the unit. Temp, speed, mode, fan speed, vent angles, etc.

This is my current list of codes. Feel free to compare and/or use. I’m not sure if these will work for your system or not. I still have a few hiccups, so I haven’t shared it for inclusion yet.

Also, you’ll notice that Auto low to highest haven’t been added. I haven’t got around to that, and I don’t really use that setting. Only Auto/Auto. Hmm, maybe that’s why I have a few hiccups.

Thanks for your codes.
Actually I got already the system work sort of with one of the codes stored to smartir but not all of the functions was really working so I figured to create the table by myself to have all the settings there if needed.

I’ll try to test the system today once I taught all the codes.
Only thing which really confuses me that yesterday when I tested to teach the excatly same command (same temp, mode, fan speed vent angle) I got everytime different Base64 IR code. I don’t understand how that is possible (maybe it is the time stamp that is different?).

Also it makes it hard to debug the commands as the indoor unit doesn’t have a monitor to display any data what settings it is on right now (just has 2 leds) so I can do only rough testing.

Thanks for your help anyway.

EDIT:
I got all the codes to json and tested all the states and they seem to work fine.
I opened an issue to github to include the json codes for the specific models to smart ir climate component.

1 Like