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
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