Sendo A/C unit with Wifi Control (BroadLink_OEM-T1)

Hi all,

yesterday I installed a new Air Conditioning unit, an el-cheapo Sendo 9000 BTU, which - to my great surprise - came with Wifi control! Just as I was thinking “crap, I have to build another one of my smart/dumb esp8266-to-IR controllers and somehow shove it in front of the IR receiver”…

In my DHCP server it comes up with the hostname BroadLink_OEM-T1-XX-XX-XX, where XX-XX-XX are a part of its MAC address.

To control it via Wifi, you need to download an app called “AC Freedom” (https://itunes.apple.com/uy/app/ac-freedom/id988314711?mt=8), which works quite nicely.

Now for the big question: does anyone have any idea as to if and how this A/C unit could be integrated within Home Assistant? Any pointers to further look into it will be appreciated.

Thanks!

4 Likes

Did you manage to get a solution how to integrate with HA?

Hello, unfortunately no. No one seems to have a solution for this… Have you managed to at least find any relevant information?

there is nothing for maybe i will debug how the application works

@Sener_Bruges / @lexam79 did you manage to make any progress? I just bought a couple of Rinnai air conditioners and they use AC Freedom app which utilises broadlink tech as above

@lexam79
Hello!
I have a similar situation. Already began to study the problem and found something.
Do you have any success?

Hello, I’m afraid I don’t…

Now I discovered the following things:

  1. Data with codes for management is stored in the phone at the following address - folder eControl -> DNA I got there a folder named 20014 in which there are some files with commands.
    Here is an example of my file (dnacontrollinfo has 642 lines in it)

132 123: bb0001033501006402083d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de
117131: bb0001033501006403003800000000000000000000000000000000000000000000000000000000000000000000000000000000d2
110123: bb0001033501006403083a00000000000000000000000000000000000000000000000000000000000000000000000000000000d8

As far as I can guess, the first symvols can be decrypted as follows (dnainfo file)
“acSwitch”: [0,1], on or off
“mode”: [2,3,1,4,5], - modes of operation
“wind”: [7,0,1,2], - work speed
“windDirection”: [1], - direction
“tem”: [16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31] - temperature

It turns out that the first command sends the code 132123, which can be decrypted above.
By converting the command itself to base64 we can use it to send via Broadlink.

  1. I also installed another IHC program (replaces eControl), the air conditioners automatically appeared as TCL, although I have a different manufacturer of equipment Ballu. After that, I searched for remotes in the cloud for TCL and found three options, one of them turned out to be working and I was able to control the air conditioner from the IHC. Then I went further and found in the folder with eControl parts of the IHC, it turns out I downloaded these consoles in the archives. Similar to https://github.com/mjg59/python-broadlink/issues/74 in this post.
    Now I have converted them, the lines are ~ 1500, but have not yet verified. In the future, it will be possible to use them in components for control via HA.
    SmartIR - Control your Climate, TV and Fan devices via IR/RF controllers

  2. Found one hack. Earlier, I used the eControl application, after I reassigned my RMPro via a reset and tied it to the IHC. And now interesting: Add a binding in GoogleHome and the air conditioner appears in it and you can turn it on and off with your voice, however, you cannot adjust the temperature and other parameters. This is one of the limitations of Google (in any case, I read it on their page). At the same time, I can still manage my climate systems from eControl and IHC applications via the Internet.

Now I have several scenarios that I have to check to answer the following questions:

  1. How can I use the commands from step 1 (Direct Sending)
  2. Check the operation through HA using the command base and your component as in paragraph 2.
  3. Operation of devices without the Internet (what will happen)
  4. Modify the library of broadlink and add to it any compatible devices that can give status to their state, by analogy with MP1 or SC1
  5. Creating a script to work through the Broadlink cloud (I need help here, I’m not good at programming)

About software: You can also use this app: eControl, IHC, tclEair (http://cloud.broadlink.com.cn/soft/tcl/tclEair.apk)

1 Like

There is no more need to convert your codes from Broadlink Hex to Base64. SmartIR - Climate component converts them on the fly.

I have a different number of commands.
I also received such a file, but it was not decrypted before the end and had not yet figured out about its conversion.

Hide Text

VENMv9W1918xMzIAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAEAAAAAEAAAABAAAAAAAAAAUAAAAAAAAAAQAAAAIAAAADAAAABAAAAAQAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAEAAAAAAAAA
JgCKAJRSDAwMHwwfDAwMHwwMDAwMDAwMDB8MDAwfDB8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDB8MHwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDB8MHwwfDAwMDAwfDAwMDAwfDAwMDAwfDB8MDAwfDB8MAAKQlAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Any news regarding AC freedom app and integration with Home Assistant.
I have 2 aircodition units and I would like to add them in HA

1 Like

I have some floor heating thermostats that are listed with BroadLink_OEM-T1-XX-XX-XX too.
Integration in Home Assistant is done via https://github.com/algirdasc/hass-components/tree/master/floureon

Floureon is a manufacturer that uses broadlink too. Give it a try.

1 Like

I have three Rinnai A/C units which utilise the AC Freedom app. Unfortunately the Floureon component doesn’t work.

If someone gets a component working for the AC Freedom app (or the Rinnai units directly) I would be forever grateful!

For what it’s worth, I managed to get my two Rinnai air conditioners working with Home Assistant on a Raspberry Pi via MQTT thanks to this wonderful script by GitHub user liaan: https://github.com/liaan/broadlink_ac_mqtt

As per the repo description, it should also work with Dunham Bush aircons, and perhaps any others that show up on the network as Broadlink_OEM_T1_xxx on your network.

Clone the repo locally, edit monitor.py and set your MQTT broker IP address and debug=True. Run monitor.py, and it will auto-detect any AC units on your network and run an endless loop where it acts as an MQTT bridge to them. You can get a bunch of properties from the units, but can only set power on/off, mode, temperature and fan speed. This was all I needed though, and it looks like it would be possible to add more functionality without too much trouble.

While monitor.py is running, you can test it out under Home Assistant > Developer Tools > MQTT.

Publish a packet: /aircon/<MAC ADDRESS>/<PROPERTY>/set
MAC ADDRESS: MAC address of the AC unit you want to communicate with, eg “34ef144eba71”.
PROPERTY: temp, power, mode or fanspeed

Payload:
temp: 16-32 (in 0.5 increments)
power: ON/OFF
mode: AUTO/COOLING/HEATING/DRY/FAN
fanspeed: AUTO/LOW/MID/HIGH

To listen to a topic: /aircon/<MAC ADDRESS>/<PROPERTY>/value
MAC ADDRESS: MAC address of the AC unit you want to communicate with, eg “34ef144eba71”.
PROPERTY: fixation_v, mildew, temp, power, mute, turbo, ifeel, sleep, mode, clean, fanspeed, health, macaddress, display, or fixation_h

I integrated this into Home Assistant on my Pi by installing monitor.py as a systemd service (similar to a manual install of Home Assistant), then set up my Home Assistant configuration as follows:

It’s a bit messy, but seems to do the job. This GitHub repo may be a good starting point for a proper integration if someone has the time, as liaan figured out the bulk of the protocol.

2 Likes

Looks like this:
image

2 Likes

@a1studmuffin, thank you thank you thank you! This works. I haven’t had the time to work on it, but the base component built by liaan is detecting my A/C. I will work to build a Home Assistant component based on this.

2 Likes

Oh that’s awesome news, glad it was helpful!

I had a bit of a dig into the raw socket protocol that the ac_db.py class uses to communicate with the AC unit directly, as I was curious to see if it was possible to get back room temperature sensor information from the unit (in addition to the currently set temperature), as this would be a convenient sensor for automating a thermostat. Unfortunately I couldn’t see any obvious additional information in there other than what’s been exposed already. Perhaps someone else will have better luck. I’m not sure how the original author managed to dig out all this stuff, seriously impressive bit of reverse engineering!

1 Like

@lexam79 @a1studmuffin
I just bought a mini split by aux and it uses AC Freedom app as well
The wifi shows up as HangZhou Gubai Electronics Tech
Anyway if someone ends up building a component for HA please let me know.
In the mean time I will control it with a smart power plug and a virtual climate component. I have a temp sensor in the room so this works fine its just that I dont know how good it is to have the unit shutoff from the power.

Hey @lexam79,
Did you ever get around to building a component for this?

Hi, no, sorry, I haven’t found the time yet.

1 Like