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

I updated to the last HA core version and now I have this issue

Then I suggest checking the SmartIR github repo for an existing issue relating to it not working after the 2023.3.0 HA core update and if there isnā€™t one, please create one.

Hi there. Thanks for the great work.
I need some support with ESP32home setup which I canā€™t figure out myself.
I have everything working with broadlink on device_code: 1344 which means some components are setup correcly.
However, for the rest of the rooms I am setting up ESPhome. I followed the examples as is, but still, nothing comes out from the HASS to the esp32 (nothing in the esp32 logs).
When I use the native ESPhome IR Remote Climate, everything works (so the IR led on the esp32 etc. are OK), but the IR codes of the remote arenā€™t supported.
Here is my configuration:

in configurarion.yaml:

smartir:
  check_updates: false

climate:
  - platform: smartir
    name: Office AC
    unique_id: office_ac
    device_code: 8000
    controller_data: my_espir.send_raw_command
    temperature_sensor: sensor.temperature
    humidity_sensor: sensor.humidity
    power_sensor: binary_sensor.ac_power

in the esphome.yaml:

esphome:
  name: my_espir

esp32:
  board: esp32dev
  framework:
    type: arduino

api:
  services:
    - service: send_raw_command
      variables:
        command: int[]
      then:
        - remote_transmitter.transmit_raw:
            code: !lambda 'return command;'

Thanks!

I saw your issue on the github repo, hopefully it gets sorted for you.

Anyone else on here having trouble since upgrading HA to core 202303.x? Iā€™m yet to update in case it trashes SmartIR which I use extensively.

I canā€™t figure out how to have multiple entities in my config.yaml smartir section. No matter how I dress it up, only the Main Hall AC & TV appear in my HA entities.

climate:
  - platform: smartir
    name: Main Hall AC
    unique_id: main_hall_ac
    device_code: 1102
    controller_data: remote.main_hall_remote
#    temperature_sensor: sensor.temperature
#    humidity_sensor: sensor.humidity
#    power_sensor: binary_sensor.ac_power  (install zigbee 30a power switch)
#    power_sensor_restore_state: true

  - platform: smartir
    name: Dining Hall AC
    unique_id: dining_hall_ac
    device_code: 11022
    controller_data: zigbee2mqtt/Dining_Hall_IR_Remote/set
#    temperature_sensor: sensor.temperature
#    humidity_sensor: sensor.humidity
#    power_sensor: binary_sensor.ac_power  (install zigbee 30a power switch)
#    power_sensor_restore_state: true

media_player:
  - platform: smartir
    name: Main Hall TV
    unique_id: main_hall_tv
    device_code: 1063
    controller_data: remote.main_hall_remote
#    power_sensor: binary_sensor.tv_power

  - platform: smartir
    name: Kitchen TV
    unique_id: kitchen_tv
    device_code: 10633
    controller_data: zigbee2mqtt/Dining_Hall_IR_Remote/set
#    power_sensor: binary_sensor.tv_power

Device codes 11022 and 10633 are jsons Iā€™m defining myself in the smartir folder

EDIT:
Turns out my json 10633 had errors in it. Got it validated and the entity entry appeared but a new problem has arisen. 11022 still isnā€™t loading an entity though, still figuring that out. Post in new reply below

Iā€™m having an issue with SmartIR, and not sure if itā€™s a bug or I just donā€™t know what Iā€™m doingā€¦

The issue is I canā€™t seem to get the proper HVAC modes to be recognized by HA for my particular unit/code. Iā€™ve been playing around with different codes, and itā€™s not consistent.
For example, if I use code 1121 (cooling only), it includes this in the modes section:

"operationModes": [
    "cool"

When I check the State Attributes under Developer Tools for the resulting climate sensor, I see it recognize ā€œhvac_modes: off, coolā€ (this is expected).
HOWEVER, if I use another code like 1133, it includes the following modes in the file:

  "operationModes":[
    "ifeel",
    "cool",
    "cool_econo",
    "cool_powerful",
    "dry",
    "fan_only"

If I check the Attributes in HA, all it lists is ā€œhvac_modes: off, cool, dry, fan_onlyā€. Itā€™s missing the custom modes like ā€œifeelā€, etc.
I canā€™t figure out the correlation of how to get all the JSON modes to be recognized as ā€œhvac_modesā€ for the climate sensor.
Is this supposed to be a 1-to-1 correlation from the JSON code file? If this seems like a bug, Iā€™ll open an issue, but not sure if Iā€™m missing something else.
Thanks.

Edit: OK, it looks like an issue with this particular JSON code, 1133. HA doesnā€™t support ā€œcustomā€ modes, as you have to use one of the built-in HVAC modes. Anything else (like Econo) must be a Preset instead.
Iā€™ll try and open an issue.

Nope, using SmartIR on 2023.3.0 up to 2023.3.3 (Supervised install) with 12 AC units and I donā€™t notice any issues. SmartIR v.1.17.6 installed through HACS.

Thanks for confirming, Iā€™ll hit the HA update this weekend.

Getting errors from my custom json entry, hereā€™s the log from HA core:

First occurred: 11:19:39 (2 occurrences)
Last logged: 11:19:41
value should be a string for dictionary value @ data['payload']

Traceback (most recent call last):
  File "/config/custom_components/smartir/media_player.py", line 289, in send_command
    await self._controller.send(command)
  File "/config/custom_components/smartir/controller.py", line 151, in send
    await self.hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1762, in async_call
    processed_data: dict[str, Any] = handler.schema(service_data)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/validators.py", line 232, in __call__
    return self._exec((Schema(val) for val in self.validators), v)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/validators.py", line 355, in _exec
    raise e if self.msg is None else AllInvalid(self.msg, path=path)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/validators.py", line 351, in _exec
    v = func(v)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 818, in validate_callable
    return schema(data)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 595, in validate_dict
    return base_validate(path, iteritems(data), out)
  File "/usr/local/lib/python3.10/site-packages/voluptuous/schema_builder.py", line 433, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: value should be a string for dictionary value @ data['payload']

Hereā€™s the json:

{
	"manufacturer": "Sharp",
	"supportedModels": [
		"LC-19LE510K",
		"LC-22DV510K",
		"LC-22LE510K",
		"LC-24DV510K",
		"LC-24LE240E",
		"LC-24LE510K",
		"LC-32D12E(A)",
		"LC-32LE511E",
		"LC-32SH130K",
		"LC-40F22E(A)",
		"LC-40LE510E",
		"LC-40LE511E",
		"LC-40LE530E",
		"LC-40LE531E",
		"LC-40SH340K"
	],
	"supportedController": "MQTT",
	"commandsEncoding": "Raw",
	"commands": {
		"off": {"ir_code_to_send":"AXADgAED3wZwA+ABAQffBt8GcANwA+ADBQP//3ADgAGAFQLkA3BgAQPfBt8GQAsL3wZwA3AD3wZwA3AD"},
		"on": {"ir_code_to_send":"DVID//9SA1ID3gabA1ID4AMDA94G3gZADxHeBlIDmwPeBpsDUgP//5sDmwOACwGbA+ABAwPeBt4GQA8L3gZSA1ID3gabA5sD"}
	}
}

This is a supercool developmentā€¦ but Iā€™m trying to find my Toshiba climate RAS-3M26GAV-E1 and I donā€™t find it.
just in case, does anyone have this one?
thanks you!

Hello! Please tell me, did you manage to convert the codes received from the Faber cooker hood remote control? If so, could you share it? I would be very grateful for any information!

With the Midea devices, is there a way to have it send a ā€œFollow Meā€ temperature update, similar to this action in the ESPHome integration?
Currently have an RM4 in the roof next to the blower unit. Temp, mode, and fan are all working fine, but Iā€™m looking to feed it updated temperature information based on an aggregate sensor.

Hello! Iā€™m just jumping into this topic right now, wanted to ask if you managed to find any way to convert AEHA to Pronto?

Hi,
Iā€™m trying to set my ESPHOME SmartIR
Iā€™m using ESP12f (8266)
I do see the service and can send single commande trough the ā€œDeveloper Toolsā€ tab data to the ESP
When iā€™m using the entity, i canā€™t see any comunication to the ESP
This is my configuration
climate:

  • platform: smartir
    name: Office AC
    unique_id: office_ac
    device_code: 1343
    controller_data: acblaster_send_raw_command

This is my ESP Yaml file
esphome:
name: ā€œacblasterā€
friendly_name: acBlaster

esp8266:
board: esp01_1m

Enable logging

logger:

Enable Home Assistant API

api:

services:
- service: send_raw_command
variables:
command: int[]
then:
- remote_transmitter.transmit_raw:
carrier_frequency: 38kHz
code: !lambda ā€˜return command;ā€™
repeat:
times: 2
wait_time: 0ms

Any idea what is wrong ?

This is probably a basic question but Iā€™m new to this and canā€™t seem to figure it out.
In SmartIR when setting up a climate, is there a way to set a minimum and maximum temperature and letting HASS keep the room temperature between the two automatically?
There seems to be no way to set this directly in the SmartIR climate settings and integrating SmartIR with another thermostat plugin such as smart_thermostat fails since the SmartIR climate itself is a climate instead of a device.
I am considering setting up a relatively complicated automation flow that checks for temperature and then enables/disables the heating and cooling mode based on that or simply writing a script in Python to do it for me but if there is a more clean, built in solution I would appreciate knowing about it.

After some experimentation, I ended up figuring out. Leaving the answer here in case other newbies run into it.
The general_thermostat or smart_thermostat plugins all take switches as inputs. Which is something that SmartIR does not provide natively. However, you can create virtual switches using the switch template integration. Those switches make service calls when toggled. Then you can set these switches as heaters and coolers in the thermostats.

Example switch

  - platform: template
    switches:
      office_ac_cool:
        friendly_name: "Office Cooling"
        unique_id: office_ac_cool
        turn_on:
          service: climate.set_temperature
          target:
            entity_id: climate.office_ac_climate
          data:
            temperature: 21
            hvac_mode: 'cool'
        turn_off:
          - service: climate.set_temperature
            target:
              entity_id: climate.office_ac_climate
            data:
              temperature: 21
              hvac_mode: 'off'
          - delay:
              seconds: 1
          - service: climate.set_temperature
            target:
              entity_id: climate.office_ac_climate
            data:
              temperature: 21
              hvac_mode: 'off'

(My AC needs the off button to be pressed twice to fully turn off)

Then in the configuration of your thermostat, you can set office_ac_cool as the ā€œcoolerā€.
Do the same for heater, dryer, etc.

1 Like

Hello everybody,
Iā€™ve come up with an issue, and I donā€™t know how to resolve it, so I came here for help.
Iā€™ve setup my Broadlink RM4 Mini through HA integration and followed the process, I played a bit with it and tried script to learn and play command, all worked fine.
I then added Smart IR as described on the GitHub page, found my remote code, and added the code to the configuration file. Everythng went fine, and I finaly added the card to my dashboard.
The issue here is that the light from the RM4 Mini is only flashing when I click on the shutdown button, it never does anything when I try to change the temperature or the modeā€¦
Any of you, have an Idea ?

Kind regards

If you get the error

value should be a string for dictionary value @ data[ā€˜payloadā€™]

then line 148 in controller.py should be 'payload': json.dumps(command).

After I discovered that Broadlink ā€œsniffsā€ all the traffic in my network, I decided to replace it with zigbee UFO-R11. But I really do not want to manually learn the codes. Does anyone know how to convert existing codes to codes for UFO-R11 MQTT.

Good afternoon. Tell me can I use smart ir s08 tuya if so how? Thank you.