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

Hey! Did you solve this?
I opened a question here about this

Hi,
is there anyone using Alexa voice commands to control a Home Assistant media_player TV entity configured from SmartIR? Itā€™s a basic LG television that works fine from Home Assistant Lovelace UI thanks to SmartIR.

I can just switch on/off the TV from Alexa voice commands. Volume or mute controls are not available, from the Alexa app or by using Amazon Echo voice commands. The Alexa configured language is Spanish.

1 Like

I can change the volume (and also mutie and unmute) on my Samsung television via Alexa using SmartIR. with my only issue being that if I say something like ā€œAlexa, turn the volume of the television down by 10ā€ it can send the IR packets a bit too quickly for the television to follow so it will only change by 1 or 2 steps.

This is with English as the language, so it may be a limitation of the Spanish language with Alexa.

RM mini 3 stop working after upgrade
my working config before upgradingā€¦
any recommendation ?

#smartir
smartir:
switch:
  - platform: broadlink
    host: 192.168.1.2
    mac: xx:xx:xx:xx:xx:xx
    

climate:
  - platform: smartir
    name: Livingroom AC
    unique_id: livingroom_ac
    device_code: 1000
    controller_data: 192.168.1.2

  - platform: smartir
    name: Kitchen_ARC
    unique_id: kitchen_airc
    device_code: 1020
    controller_data: 192.168.1.2

I am broken here too after upgrading to 0.118. I have removed Broadlink component from integrations and re-installed (not via YAML). It finds the RM Mini ok but smartir doesnā€™t send any commands.

You need to add the Broadlink device via Integrations page, manually upgrade the SmartIR component and replace the host with the entity id in your configuration:

climate:
  - platform: smartir
    name: Livingroom AC
    unique_id: livingroom_ac
    device_code: 1000
    controller_data: remote.living_room_remote  # Example remote

  - platform: smartir
    name: Kitchen_ARC
    unique_id: kitchen_airc
    device_code: 1020
    controller_data: remote.kitchen_remote  # Example remote

Hi, i have a TV that i turn on with a broadlink RM mini 3 and the media_player entity changes state and more options are available.
If i turn on with the TV remote i want to update the media_player entity_id based on the plug power consumption.
How can i update the media_player state without running the broadlink command?

I cannot get the temperature set point to show in the correct Unit. The current temp is accurate in Imperial, but the setpoint is in metric, if I switch to Metric for HA, the current temp changes correctly, but the set point is converted to metric from the Metric temp it thought was imperial.

image
image

Iā€™m trying to set up a codes/fan file for my ceiling fan. I have a Genio IR device flashed with ESPHome, I have set up the raw codes in the ESPHome yaml and they work well, switching off and on the fan. Iā€™m trying to add to SmartIR. I have a couple of questions.

How do I add the carrier_frequency: 38kHz to the json file?

How do I get the conroller_data for the ESPHome device. I am going to add a few of them around the house, so how do I specify the IR device to send the command?

Many thanks

In case anyone reads this and needs the fix. I worked it out. Add the following to the ESPHome code:

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

Then I was able to add the following to my HA config yaml:

fan:
  - platform: smartir
    name: Lounge Fan
    unique_id: lounge_fan
    device_code: 1045
    controller_data: device_name_remote

The ESPHome code puts the service into HA, so you can call it.

hi,
i missing the button for switching the channel up and down.
any idea?

running the latest version of smart ir + hassio.

any suggestions? @Vassilis

Hi,
i have the same situation after upgrading home assistant from 0.115.2 to 0.118.5

Hi,

I couldnā€™t have this working, see my config:

ESPHOME:

api:
  services:
    - service: ligarac
      variables:
        command: int[]
      then:
        - remote_transmitter.transmit_raw:
            carrier_frequency: 38kHz
            code: !lambda 'return command;'
            repeat:
              times: 2
              wait_time: 0ms

remote_transmitter:
  pin: D3
  # RF uses a 100% carrier signal
  carrier_duty_percent: 50%

HA:

smartir:

climate:
  - platform: smartir
    name: AC Escritorio
    unique_id: ac_escritorio
    device_code: 1060
    controller_data: esp_sensor_escritorio_ligarac
    temperature_sensor: sensor.temp_escritorio
    humidity_sensor: sensor.umid_escritorio
    power_sensor: binary_sensor.status_ar_escritorio

Iā€™m always receiving this log:

2020-12-15 10:55:58 ERROR (MainThread) [custom_components.smartir.climate] not a valid value for dictionary value @ data['entity_id']
Traceback (most recent call last):
  File "/config/custom_components/smartir/climate.py", line 330, in send_command
    await self._controller.send(self._commands['off'])
  File "/config/custom_components/smartir/controller.py", line 109, in send
    await self.hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1399, in async_call
    processed_data = handler.schema(service_data)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/validators.py", line 218, in __call__
    return self._exec((Schema(val) for val in self.validators), v)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/validators.py", line 340, in _exec
    raise e if self.msg is None else AllInvalid(self.msg, path=path)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/validators.py", line 336, in _exec
    v = func(v)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 817, in validate_callable
    return schema(data)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 594, in validate_dict
    return base_validate(path, iteritems(data), out)
  File "/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py", line 432, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: not a valid value for dictionary value @ data['entity_id']

What am I doing wrong?

In the

climate:
    controller_data: esp_sensor_escritorio_ligarac

Do you see the name of the service when you look in Developer Tools in HA?

Yes, I doā€¦ When I try to run this service with some parameter (certainly wrong) I received the same error as above.

image

The device_code you have 1060, refers to a Broadlink climate control on the github page for smartir. Is this correct?

Yes, thereā€™s no ā€œesphomeā€ specific code to use. But Iā€™ve tried with climate inside ESPHome and worked, but with SmartIR. Is it possible try to change ā€œsupportedControllerā€ to ā€œEsphomeā€ and create a new code file? Do you have any example for ESPHome?

This is the fan code I created.

You could adapt the top of that. Then add your codes into there, just with the ESPHome raw codes you have.
Edit: hereā€™s someones code for an ESPHome climate control

Thank youā€¦ Iā€™ll try with your code.

Would it be possible to mention the use of the ā€œclimateā€ services to control an A/C in the actual Smartir setup instructions. I installed Smartir, everything works great from the lovelace card, but Iā€™ve been hunting for hours trying to find how to control my A/Cā€™s with a script and I just came upon this info.