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

How do I assign it the code in smart IR? I am assuming the code numbers in the smartir database are reserved. I just create my own random?

Yes, you can just create a new / random number that hasn’t already been used and reference that in the SmartIR config.

1 Like

does anyone have a script that can help make learning ir codes for ac climate control faster/easier? tried using Broadlink tools by Keite Trần but it didn’t work as there isn’t a broadlink.learn command now, currently I’m also trying this but not sure how to get it going GitHub - nickneos/Broadlink-Toolkit: Tools to speed up learning and sending IR commands on a Broadlink device (when i open smartir_generator it asks to pick a json file then it closes after picking it, and I’m not sure how to link my rm3/4 mini to this)

thanks for sharing your script, im currently trying this out and was wondering how do you link your broadlink to the script? and when i try to open a json file the application would close after that

I have added a custom climate json for my ac, but for some reason, there are no climate entities in HA, but it works when I use an available code from the list.

3690.json - Pastebin.com here’s a paste bin of the full code (not sure why the formatting is off on pastebin)

image

Edit: I noticed I missed a comma on one of the lines

I currently have a sonoff rf bridge that is flashed with tasmota and Portisch Firmware. Im wondering if its possible to implement it with smartir for my fans?

Hey, I just updated to 2022.4 and needed to reboot as I was trying out some of the cool new features but I got this error so cannot…

Platform error fan.smartir - cannot import name 'ATTR_SPEED' from 'homeassistant.components.fan' (/usr/src/homeassistant/homeassistant/components/fan/__init__.py)

ignore that, just removed the SmartIR FAN Integration and all OK now

i’m getting the same error but i want to use my fan integration

Note, for those using SmartIR with fans, and have updated to 2022.4.x, SmartIR doesnt support preset modes, and set speed is now gone.

Luckily, there is a lovelace card that can make them appear to have preset modes.

Call service for Update SmartIR component and reboot.

1 Like

Anyone know if there is a code for using Honeywell HL10CESWK air conditioner unit? Is it the same as something else?

I’m trying to create a custom SmartIR entity for a Denon AV Receiver.

Anyone here familar with IRScrutinizer? So I’m trying to get to import codes without learning for media players like AVRs etc since they are available.

For a Denon AVR the global cache IR code is provided as

"POWER OFF","sendir,1:1,1,38000,1,1,10,30,10,70,10,30,10,30,10,30,10,30,10,70,10,30,10,70,10,70,10,70,10,70,10,30,10,30,10,30,10,1657,10,30,10,70,10,30,10,30,10,30,10,70,10,30,10,70,10,30,10,30,10,30,10,30,10,70,10,70,10,70,10,1657","0000 006d 0000 0020 000a 001e 000a 0046 000a 001e 000a 001e 000a 001e 000a 001e 000a 0046 000a 001e 000a 0046 000a 0046 000a 0046 000a 0046 000a 001e 000a 001e 000a 001e 000a 0679 000a 001e 000a 0046 000a 001e 000a 001e 000a 001e 000a 0046 000a 001e 000a 0046 000a 001e 000a 001e 000a 001e 000a 001e 000a 0046 000a 0046 000a 0046 000a 0679",,

I took this and put it into IRScrutinizer, set the export type to Homeass-Broadlink and the resultant code looks like

I put into a custom numbered code file as thus

{
  "manufacturer":"Denon",
  "supportedModels":[
    "AVR3700",
     ],
  "supportedController":"Broadlink",
  "commandsEncoding":"Base64",
  "commands":{
    "off":"JgBIAAABKJQSEhISEhISEhISEhISEhISEjcSNxI3EjcSNxI3EjcSNxISEhISEhISEhISEhISEhISNxI3EjcSNxI3EjcSNxI3EgAFFwABKEoSAA0F",

The light on the broadlink transmitter blinks when I issue the command but the receiver does not react. I tried many other codes, for Power On, Volume etc too. But none work. Making me think that the conversion isnt working correctly. I also notice that many other Base64 codes have an “=” or 2 at the end while mine dont. Any other way to incorporate codes from the web into Smart IR?

Try adding an = to the end of the code as that acts as an ‘end of code’ signal.

1 Like

If you have the original remote for your A/C then you can ‘learn’ the codes and create your own code file for it. Time consuming but works.

1 Like

Not very skilled in this space, but sending base 64 to rm4pro via home assistant i have the following scripts (note: the remote.send_command services requires command with “b64:” in the front.)

study_fan_off:
  alias: Study Fan Off
  sequence:
  - service: remote.send_command
    data:
      entity_id: remote.rm4_mini_s_remote
      command: b64:JgBYAAABJpMUERQRFBITEhQRFBITFhARFDYUNhQ2FDYUNhQ2FDYUNhQSEzcUNhQRFBITEhQ2ExIUNhQSExITNxQ2FDYUERQ2FAAFFAABJ0oUAAxRAAEoSRQADQU=
  - service: input_boolean.turn_off
    data:
      entity_id: input_boolean.study_fan_state
study_fan_speed:
  alias: Study Fan Speed
  sequence:
  - service: remote.send_command
    data:
      entity_id: remote.rm4_mini_s_remote
      command: b64:JgBQAAABJpMTEhMSFBEUEhMSFBEUEhMSEzcTNxQ2FDYUNhQ2FDYUNhQRFBITNxMSFBEUEhM3ExIUNhQ2FBEUNhQ2FDYUEhM3EwAFFAABKEkUAA0F
  - service: input_boolean.turn_on
    data:
      entity_id: input_boolean.study_fan_state
study_fan_mode:
  alias: Study Fan Mode
  sequence:
  - service: remote.send_command
    data:
      entity_id: remote.rm4_mini_s_remote
      command: b64:JgBQAAABJpIUEhMSFBITEhMSFBEUEhMSFDYUNhQ2FDYUNhQ2FDcTNhQ2FBITNxMSFDYUEhMSExIUEhM3ExITNxMSFDYUNhQ2FAAFFAABKEkUAA0F
study_fan_timer:
  alias: Study Fan Timer
  sequence:
  - service: remote.send_command
    data:
      entity_id: remote.rm4_mini_s_remote
      command: b64:JgBYAAABJ5EUEhMSFBITEhMSFBEUEhMSFDYUNhQ2FDYUNhQ2FDYUNhQSEzcTNxMSFDYUEhMSExIUNhQSExITNxMSFDYUNhQ2FAAFFAABKEkUAAxSAAEnShMADQU=
study_fan_swing:
  alias: Study Fan Swing
  sequence:
  - service: remote.send_command
    data:
      entity_id: remote.rm4_mini_s_remote
      command: b64:JgBYAAABJ5IUEhMSFBEUEhMSFBEUEhMSFDYUNhQ2FDYUNhQ2FDYUNhQSExIUERQ2FBITEhMSFBEUNhQ2FDYUEhM3FDYUNhQ2FAAFEwABKEoUAAxRAAEoSRQADQU=

You should also be able to test this with the inbuilt service tab in developer tools

Hope that helps.

1 Like

I was using Denon codes with a marantz receiver. I thought it would work now that the companies are the same. Turns out it wont! Here is the code for Marantz 8K receivers for anyone interested. Works perfect pasted from the Marantz code base. I named it 2001 because there were no codes occupying that number in the SmartIR database. Power On, Off, Volume, Mute and all Inputs working.

P.S. Duh, how do I attach a json file to this post? Looks like I cant. Code below

{
  "manufacturer":"MARANTZ",
  "supportedModels":[
    "SR5015",
    "SR6015",
    "SR7015",
    "SR8015"
  ],
  "supportedController":"Broadlink",
  "commandsEncoding":"Base64",
  "commands":{
    "off":"JgAiAB0dHR0dHTodHR0dHR2RHR0dOh0dOh0dHR0dHR0dHR06OgANBQ==",
    "on":"JgAkAB0dHR0dHTodHR0dHR2RHR0dOh0dOh0dHR0dHR0dHR0dHTodAA0F",
    "volumeDown":"JgAYAB0dHR0dHTodHR0dHR0dHTo6HR0dHTodAA0F",
    "volumeUp":"JgAYAB0dHR0dHTodHR0dHR0dHTo6HR0dHR0dAA0F",
    "mute":"JgAYAB0dHR0dHTodHR0dHR0dHR0dOh0dOjodAA0F",
	"sources":{
          "CBL/SAT":"JgAYAB0dHR06HR06HR06Oh0dHR0dHR0dHR0dAA0F",
          "DVD":"JgAiAB0dHR0dHTodHR0dHR2RHR0dHR0dHR0dHR0dHR0dOjo6OgANBQ==",
          "Blu-Ray":"JgAkAB0dHR06HR06HR0dHR2RHR0dHR0dHR0dHTodHR0dHR0dHR0dAA0F",
          "AUX":"JgAkAB0dHR0dHTodHR0dHR2RHR0dHR0dHR0dHR0dHR0dHR06HR06AA0F",
          "8K":"JgAmAB0dHR0dHTodHR0dHR2RHR0dHR0dHR0dHR0dHR0dHR06HR0dHR0ADQU=",
          "MEDIA PLAYER":"JgAYAB0dHR06HR06OjodHR0dHR0dHR0dHR0dAA0F",
          "TV AUDIO":"JgAaAB0dHR06HR0dHR0dHR06HR0dHR0dHR0dHR0ADQU=",
          "CD":"JgAYAB0dHR0dHTo6Oh0dOh0dHR0dHR0dHR0dAA0F",
          "TUNER":"JgAaAB0dHR0dHTodHR0dOh0dHR0dHR0dHR0dHR0ADQU=",
          "NET":"JgAgAB0dHR0dHR0dOjodHR2RHR0dHR0dHR0dHTodHTo6OjoADQU=",
          "PHONO":"JgAYAB0dHR0dHTo6OjodHR0dHR0dHR0dHR0dAA0F"
           }
      }
 }

First off, great job with this!!

My AC was not in the list, kind of obsolete, but I did create a JSON to cover all the remote commands and it works like a charm. How could I provide the developer with the JSON file so others could possibly take advantage of it and is there a naming convention for the json filenames other than the digits?

  • Fork the repo
  • Add the file to your fork
  • Submit a Pull Request to the main repo with the request being to include your file
  • Wait for your PR to be merged

Welcome to the community by the way!

1 Like

Thanks for the speedy response!! First time I ever do a pull request :). You should see it in your queue.