Tasmota MQTT IRHVAC Controller

Hello everybody.

I am trying to use tasmota_irhvac for a long time, but had no success.
My hardware is a Raspberry Pi 4 4Gb with Ubuntu 19.10 x64 (Official) and Hassio on Docker.
Everything works like a charm, except the tasmota_irhvac.

I downloaded the [Tasmota IRHVAC for HA v0.103+] from Github, put it inside folder “\config\custom_components\tasmota_irhvac” using Samba Share and gave all permitions with “chmod 777”.

My configuration.yaml:

climate:
  - platform: tasmota_irhvac
    name: ClimateBedroom
    availability_topic: "homeassistant/climate/bedroom/LWT"
    command_topic: "homeassistant/climate/bedroom/cmnd/irhvac"
    state_topic: "homeassistant/climate/bedroom/RESULT"
    protocol: "LG"
    min_temp: 18
    max_temp: 30
    target_temp: 23
    initial_operation_mode: "off"
    away_temp: 25 
    precision: 1.0 
    supported_modes:
      - "cool"
      - "dry"
      - "fan_only"
      - "auto"
      - "off" 
    supported_fan_speeds:
      - "medium"
      - "high"
      - "min"
      - "max"
    supported_swing_list:
      - "off"
      - vertical #up to down
    default_quiet_mode: "Off" #optional - default "Off" string value
    default_turbo_mode: "Off" #optional - default "Off" string value
    default_econo_mode: "Off" #optional - default "Off" string value
    hvac_model: "-1" #optional - default "1" string value
    celsius_mode: "On" #optional - default "On" string value
    default_light_mode: "Off" #optional - default "Off" string value
    default_filter_mode: "Off" #optional - default "Off" string value
    default_clean_mode: "Off" #optional - default "Off" string value
    default_beep_mode: "Off" #optional - default "Off" string value
    default_sleep_mode: "-1" #optional - default "-1" string value

But when I restarted, had the notification:

The following integrations and platforms could not be set up:

  • climate.tasmota_irhvac

Please check your config.

Was tested on HA 0.106 and now on 0.107.7.

Am I missing something ?

Thanks for the help.

  • is it supposed to update the entity when using the original remote if you use the IRrecv?
  • can it show the swing and fan speed in homeKit component?

For the first question tasmota_irhvac already support this feature. :slight_smile:
For your second question - I don’t know. You’re able to access this info trough home assistant, but I don’t know how this homeKit works and if it is possible to tell this component to get this info.

Hi! tasmota_irhvac does not support such config key like availability_topic . Probably this is the reason. Maybe if you check the logs, you will see what exactly is going on, but be sure that including the availability_topic will 100% prevent the component from being setup. :slight_smile:

Hi, I made this beautiful project, but I have a problem, because I discovered that my AC HISENSE when it changes temperature transmits the “power” and “mode” function to OFF. Instead, to turn the AC in mode on / off, the “power” function transmit ON.You can help me?Thanks

@gh0s7Thanks for that wonderful project! Just built it with a Wemos D1 mini, an IR receiver and transmitter powered via BC337.
Flashed with Tasmota, and all seems to work great.
When pressing remote button I receive them:

But the card looks like this:

image

And when I change something, I only received

12:53:41 MQT: stat/tasmota_23115D/RESULT = {"Command":"Unknown"}

This is the part of the config:

climate:
  - platform: tasmota_irhvac
    name: DaikinEG
    command_topic: "cmnd/tasmota_23115D/"
    state_topic: "tele/tasmota_23115D/RESULT"
    protocol: "DAIKIN"

This is a complete received line:

{"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA2700425C03B311DA27000029C000A0000006602000C00200E3","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"On","Mode":"Dry","Celsius":"On","Temp":96,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"On","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}

Any idea what’s wrong?

2 Likes

Same thing I have it did not update the card at all I wonder if there is something needed to be done here???

climate:
  - platform: tasmota_irhvac
    name: DaikinEG
    command_topic: "cmnd/tasmota_23115D/irhvac"
    state_topic: "tele/tasmota_23115D/RESULT"
    protocol: "DAIKIN"

Your command topic was missing the irhvac part. Also you have skipped the part with the supported_modes part, which is very important. Also hvac_model, supported_swing_list, supported_fan_speeds … For reference see below config, and for full instructions see the first post.

climate:
  - platform: tasmota_irhvac
    name: Daewoo IRHvac
    command_topic: "cmnd/kitchenMultisensor/irhvac"
    state_topic: "tele/kitchenMultisensor/RESULT"
    temperature_sensor: sensor.kitchen_temperature #optional this sensor is used to display current temp on the AC card
    protocol: "FUJITSU_AC"
    min_temp: 16 #optional - default 16 int value
    max_temp: 30 #optional - default 32 int value
    target_temp: 26 #optional - default 26 int value
    initial_operation_mode: "off" # optional - default "off" string value
    away_temp: 24 #optional - default 24 int value
    precision: 1.0 #optional - default 1.0 float value
    supported_modes:
      - heat
      - cool
      - dry
      - fan_only
      - auto
      - "off" #Turns the AC off - Should be quoted and should be always included here
    supported_fan_speeds:
      #- low
      - max
      - medium
      # - high
      #- middle
      #- focus
      #- diffuse
      - min
      - auto
    supported_swing_list:
      - "off"
      - vertical #up to down
      - horizontal # Left to right - remove if your AC does not support it
      - both # remove if your AC does not support horizontal
    hvac_model: "1" # string value
    celsius_mode: "On" #optional - default "On" string value - you can remove it if you use celsius

@cviro Yes, I can help, but I need the log from Tasmota console, when moving temp up, temp down and may be on and off (from the original remote control). :slight_smile:

Thanks. That explains a lot :wink: Overread that little and important part.
And No, I have all the modes. I just didn’t copy them as the seemed irrelevant for the problem. :+1:

Here’s the complete configuration part:

climate:
  - platform: tasmota_irhvac
    name: DaikinEG
    command_topic: "cmnd/tasmota_23115D/irhvac"
    state_topic: "tele/tasmota_23115D/RESULT"
    temperature_sensor: sensor.heizung_temperature_2 #optional this sensor is used to display current temp on the AC card
    protocol: "DAIKIN"
    min_temp: 16 #optional - default 16 int value
    max_temp: 30 #optional - default 32 int value
    target_temp: 26 #optional - default 26 int value
    initial_operation_mode: "off" # optional - default "off" string value
    away_temp: 24 #optional - default 24 int value
    precision: 1.0 #optional - default 1.0 float value
    supported_modes:
      - heat
      - cool
      - dry
      - fan_only
      - auto
      - "off" #Turns the AC off - Should be quoted and should be always included here
    supported_fan_speeds:
      - min
      - low 
      - medium
      - high
      - max
      - auto
    supported_swing_list:
      - "off"
      - vertical #up to down
      - horizontal # Left to right - remove if your AC does not support it
      - both # remove if your AC does not support horizontal
    hvac_model: "1" # string value

I works now, somehow. I hear the A/C beep indicating that it received an IR signal, so the hardware seems to work fine, but it stays OFF (also indicated in lovelace).
And i don’t see a menu open where i can choose the fan, swing, and stuff.
So something seems to be wrong still.

This is the output (when setting something in Lovelace) and the input received by the very same command.

15:23:14 MQT: stat/tasmota_23115D/RESULT = {"IRHVAC":{"Vendor":"DAIKIN","Model":1,"Power":"Off","Mode":"Off","Celsius":"On","Temp":25.5,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}
15:23:14 MQT: tele/tasmota_23115D/RESULT = {"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA27004200005411DA270000083200B0000006600000C0000022","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"Off","Mode":"Off","Celsius":"On","Temp":25,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}

On, Off, On, Temp up, Temp down from original remote as received by Tasmota on the console:

15:34:24 MQT: tele/tasmota_23115D/RESULT = {"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA270042E1033811DA270000092C00A0000006600000C000000D","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"On","Mode":"Auto","Celsius":"On","Temp":22,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
15:34:27 MQT: tele/tasmota_23115D/RESULT = {"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA270042E1033811DA270000082C00A0000006600000C000000C","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"Off","Mode":"Off","Celsius":"On","Temp":22,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
15:34:30 MQT: tele/tasmota_23115D/RESULT = {"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA270042E1033811DA270000092C00A0000006600000C000000D","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"On","Mode":"Auto","Celsius":"On","Temp":22,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
15:34:32 MQT: tele/tasmota_23115D/RESULT = {"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA270042E2033911DA270000092E00A0000006600000C000000F","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"On","Mode":"Auto","Celsius":"On","Temp":23,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}
15:34:34 MQT: tele/tasmota_23115D/RESULT = {"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA270042E2033911DA270000092C00A0000006600000C000000D","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"On","Mode":"Auto","Celsius":"On","Temp":22,"FanSpeed":"Auto","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}

Your hvac_model should be “-1” not “1”.
Are you using fahrenheit or celsius? celsius_mode: "Off" if you use fahrenheit. :slight_smile:

Oh man. How stupid can one be. Sorry for bothering you for something that simple. Maybe it’s because i dont know what “1” or “-1” means and ignored that.
THANKS

Hmmm. Still doesn’t work. I seem it doesn’t know that it needs to be turned ON, or I don’t know how to turn in on. I just set the temperature, but that of course won’t tell it to turn on/off.

15:44:33 MQT: stat/tasmota_23115D/RESULT = {"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"Off","Mode":"Off","Celsius":"On","Temp":22.5,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}
15:44:33 MQT: tele/tasmota_23115D/RESULT = {"IrReceived":{"Protocol":"DAIKIN","Bits":280,"Data":"0x0x11DA2700C50000D711DA27004200005411DA270000082C00B0000006600000C000001C","Repeat":0,"IRHVAC":{"Vendor":"DAIKIN","Model":-1,"Power":"Off","Mode":"Off","Celsius":"On","Temp":22,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}}}

And still no MODES and such to choose from, only history graph.

image

This is what my “regular” thermostat looks like.
It’s got the three modes under the temperature.
Auto, Heat & Off. <- That’s missing with the A/C thermostat.

image

@iz3man What is your Home Assistant version?

Home Assistant 0.107.7 running on rpi4 & HassOS 3.12

You write: “Once restarted you can add in LovelaceUI new thermostat card and select the newly integrated AC.” That means: Add a “regular” thermostat card, correct? There is no special IRHVAC card or such?

How is this different to SMARTIR? I thought about using it, and have an broadlink ordered, and while waiting for it to arrive I found that gem here.

Hi Hristo.
Thank you for answering me.
You are right, I included the availability_topic and the component starts to work.
But my tasmota device isn’t receiving the messages (when I see on web Console}.
How should be the “Topic” and “Full Topic” on MQTT parameters menu ?

My configuration actually is:

climate:
  - platform: tasmota_irhvac
    name: HVACBedroom
    command_topic: "cmnd/bedroomMultisensor/irhvac"
    state_topic: "tele/bedroomMultisensor/RESULT"
    temperature_sensor: sensor.bedroom_temperature
    protocol: "LG"
    min_temp: 18 #optional - default 16 int value
    max_temp: 30 #optional - default 32 int value
    target_temp: 23 #optional - default 26 int value
    initial_operation_mode: "off" # optional - default "off" string value
    away_temp: 25 #optional - default 24 int value
    precision: 1.0 #optional - default 1.0 float value
    supported_modes:
      #- "heat"
      - "cool"
      - "dry"
      - "fan_only"
      - "auto"
      - "off" #Turns the AC off - Should be quoted
      # Some devices have "auto" and "fan_only" chaned
      # If following two lines are uncommented, "auto" and "fan" shoud be commented
      #- auto_fan_only #if remote shows fan but tasmota says auto
    supported_fan_speeds:
      # Some devices say max,but it is high, and auto which is max
      # If you uncomment the following two, you have to comment high and max
      # - auto_max #woud become max
      # - max_high #would become high
      #- on
      #- off
      #- low
      - "medium"
      - "high"
      #- middle
      #- focus
      #- diffuse
      - "min"
      - "max"
      #- auto
    supported_swing_list:
      - "off"
      - vertical #up to down
    default_quiet_mode: "Off" #optional - default "Off" string value
    default_turbo_mode: "Off" #optional - default "Off" string value
    default_econo_mode: "Off" #optional - default "Off" string value
    hvac_model: "-1" #optional - default "1" string value
    celsius_mode: "On" #optional - default "On" string value
    default_light_mode: "Off" #optional - default "Off" string value
    default_filter_mode: "Off" #optional - default "Off" string value
    default_clean_mode: "Off" #optional - default "Off" string value
    default_beep_mode: "Off" #optional - default "Off" string value
    default_sleep_mode: "-1" #optional - default "-1" string value

And the script is:

#IRHVAC
  ir_code:
    sequence:
    - data_template:
        payload: '{"Protocol":"{{ protocol }}","Bits": {{ bits }},"Data": 0x{{ data }}}'
        topic: 'cmnd/{{ room }}Multisensor/irsend'
      service: mqtt.publish
  ir_raw:
    sequence:
    - data_template:
        payload: '0, {{ data }}'
        topic: 'cmnd/{{ room }}Multisensor/irsend'
      service: mqtt.publish

I can see the HomeAssistant sending messages with MQTT Explorer, but I can’t match this messages on tasmota.

Thank you !

@Julhio LG ACs are not supported well in Tasmota, this is why I’ve made another custom component, specially for LG. Not all LGs are supported, but you can give it a try …

@iz3man As my custom component only rely on Tasmota, and the supported IRHVAC AC models inside Tasmota, you can give a try to SMARTIR. Sorry I don’t have enough time today for investigation, what is wrong with your setup, but you can give me the remote model number (on the back of the remote). When I have time, I can read more about this Daikin Remote. Thank you! :slight_smile: