Help with TCL WiFi Air conditioner integration

Thanks. My AC needs TCL Home app and doesn’t expose any wi-fi network

I have a Airco from TCL as well and use the TCL Home app. I’ve been proxying the app through Proxyman to see what kind of API calls it’s making and I can actually see what it’s sending to them mostly to prod.aws.tcljd.com but I will setup a proxy for the other way around too to see what the airco actually gets back when I change the temp or turn it off/on.

I’ll keep you guys posted if there’s still anyone who wants to know.

(Can’t really parrot the API calls because it’s timestamped with nonce and sign and accessTokens so more work is needed to reverse engineer this)

2 Likes

Thanks, that would be great! Got two of these ACs, they are really great value for heating and cooling. Its a bit of shame that we cant integrate them into HA.

Not sure if relevant but some wifi modules are Broadlink based :

as commented in this repo:

After spending a long time using the official TCL app (which is rubbish) I finally got frustrated enough to do something about it. The official app is slow, terrible to use and more importantly constantly nags for Bluetooth permissions. I have also seen it attempt to access my clipboard, all very sahdy.

I ordered several relatively inexpensive ESP8266/ESP01-M from aliexpress with an integrated IR Receiver/Transmitter. Then using ESPHome, I turned it into an IR remote for my aircon, which now gives me a “climate” entity to add to the dashboard / use in automations.

It is VERY simple to do. You just order the device, it looks something like this
image

And then you’ll of course need a programmer (I use a CH340G based one that I got from a local shop) - these should be in any serious HASS user’s arsenal :wink:

Then I just wrote the below code to it, and then added the climate entity and it works!! The best part the IR library for tcl that the ESP integration uses supports “receiver” mode, so if you place the ESP near the aircon’s I/R receiver itself, it can detect when someone aims the remote at the aircon and changes something, so the A/C state is always up-to-date within home assistant.

esphome:
  name: living-room-ac

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "secure"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "living-room-ac"
    password: "securepw123"

captive_portal:

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "living-room-ac IP Address"
 
binary_sensor:
  - platform: status
    name: "living-room-ac Connection State"
 
remote_receiver:
  id: ir_receiver 
  pin:
    number: GPIO14
    inverted: True
    mode:
      input: true
      pullup: true
  tolerance: 55%
  dump: all
 
remote_transmitter:
  id: ir_transmit
  pin: GPIO4
  carrier_duty_percent: 50%
 
climate:
  - platform: tcl112 
    name: "office-ac"
    id: climate_ac
    transmitter_id: ir_transmit
    receiver_id: ir_receiver
    sensor: temp # optional - remove if you don't want "current" temperature
 
sensor:
# remove below code block if you don't want "current" temperature
  - platform: homeassistant
    name: "Office-ac-Temp"
    # adjust below entity to temp sensor of room this aircon is in
    entity_id: sensor.lumi_lumi_sensor_ht_00a42202_temperature
    id: temp
    internal: true
 
  - platform: wifi_signal
    name: "living-room-ac WiFi Signal Strength"
    update_interval: 60s
 
  - platform: uptime
    name:  "living-room-ac Uptime"
 
switch:
  - platform: restart
    name: "living-room-ac Device reboot"
4 Likes

Works perfect on the TCL TAC-12CHSA split unit.