MQTT IR Controller Tasmota

MQTT-IR-Controller-Tasmota

Simple and Easy smart IR controller based on Tasmota via IRHVAC via SmartIR plugin

It’s been about a 2 years since i made my first MQTT IR Controller and it been working flawlessly with Home Assistant and i feel it’s about time to share this.

This conntroller is runing with Tasmota IR 8.3.1 if you want to know More about Tasmota Click Here the reason why I’m using old version of Tasmota IR that this is the one worked best for me and never had any issues with so i keeped using it.

also using the SmartIR plugin that creates the Home Assistant climate componant and publish the commands via MQTT you can find more about it in details and more about installation Click Here

Required Components

Name Photo
ESP-01
Hi-Link 3.3v
2N2222 Transistor
IR TX LED
10k Resistor
DHT11 temperature and humidity sensor
PCB screw terminal 2P connector
Double-Side Prototype Board PCB

Circuit diagram

alt text

Instructions

  • first you will need to flash Tasmota on ESP-01 using USB to Serial UART adapter of your choice with the BIN file provided in files above.
  • after flashing you will need to connect to WIFI signal Called tasmota-xxxxxxxxx and insert your home WIFI credentials.
  • you need to find your device IP address by checking you router DHCP clients page.
  • after the device is connected successfully you will be able to access your device to put in your MQTT info and choose a topic.

Sending IRHVAC Commands

Source Click Here
you can check example.json

Command Parameters
IRHVAC Send HVAC IR remote control code as JSON payload

IRHVAC {"Vendor":"Mitsubishi_Heavy_152", "Power":"On","Mode":"Hot","FanSpeed":3,"Temp":22.5}

"Protocol" or "Vendor" (select one of the following):
COOLIX, DAIKIN, KELVINATOR, MITSUBISHI_AC, GREE, ARGO, TROTEC, TOSHIBA_AC, FUJITSU_AC, MIDEA, HAIER_AC, HITACHI_AC, HAIER_AC_YRW02, WHIRLPOOL_AC, SAMSUNG_AC, ELECTRA_AC, PANASONIC_AC, DAIKIN2, VESTEL_AC, TECO, TCL112AC, MITSUBISHI_HEAVY_88, MITSUBISHI_HEAVY_152, DAIKIN216, SHARP_AC, GOODWEATHER, DAIKIN160, NEOCLIMA, DAIKIN176, DAIKIN128

"Model":

Some HVAC have variants in protocols, this field allows to specify the variant, see detailed list

- Fujitsu_AC: ARRAH2E|ARDB1
- Panasonic_AC: LKE|NKE|DKE|JKE|CKP|RKR
- Whirlpool_AC: DG11J13A|DG11J104|DG11J1-04|DG11J191

"Power":
   On, Yes, True, 1,
   Off, No, False, 0

"Mode":
   Off, Stop
   Auto, Automatic
   Cool, Cooling
   Heat, Heating
   Dry, Drying, Dehumidify
   Fan, Fanonly, Fan_Only

"FanSpeed":
   Auto, Automatic
   Min, Minimum, Lowest, 1
   Low, 2
   Med, Medium, Mid, 3
   High, Hi, 4
   Max, Maximum, Highest, 5

"SwingV":
   vertical swing of Fan
   Auto, Automatic, On, Swing
   Off, Stop
   Min, Minimum, Lowest, Bottom, Down
   Low
   Mid, Middle, Med, Medium, Centre, Center
   High, Hi
   Highest, Max, Maximum, Top, Up

"SwingH":
   horizontal swing of Fan
   Auto, Automatic, On, Swing
   Off, Stop
   LeftMax, Left Max, MaxLeft, Max Left, FarLeft, Far Left
   Left
   Mid, Middle, Med, Medium, Centre, Center
   Right
   RightMax, Right Max, MaxRight, Max Right, FarRight, Far Right
   Wide

"Celsius": temperature is in Celsius ("On") or Farenheit ("Off")

"Temp": Temperature, can be float if supported by protocol

"Quiet": Quiet mode ("On"/"Off")

"Turbo": Turbo mode ("On"/"Off")

"Econo": Econo mode ("On"/"Off")

"Light": Light ("On"/"Off")

"Filter": Filter active ("On"/"Off")

"Clean": Clean mode ("On"/"Off")

"Beep": Beep active ("On"/"Off")

"Sleep": Timer in seconds

"StateMode":
   SendOnly (default)
   StoreOnly
   SendStore

SmartIR Component Config

First you will have to copy your json config to SmartIR directory and save it with name as a number Ex. 1600.json

<config directory>/
|-- custom_components/
|   |-- smartir/
|       |-- codes
|           |-- climate

you can now add your device config in climate.yaml

Example:

- platform: smartir
  name: Office A/C 
  unique_id: office_ac
  device_code: 1600 # your JSON file number
  controller_data: cmnd/studio/IRhvac # Change to match your device topic
  temperature_sensor: sensor.studio_temperature # Change to match your sensor id in Home Assistant
  humidity_sensor: sensor.studio_humidity # Change to match your sensor id in Home Assistant 
  power_sensor: binary_sensor.ac_power # you can set a binery sensor to detect the power status

I’ll be sharing more details soon with a youtube video :slight_smile:

1 Like