Air Conditioner Speaks Serial, Just Like Everything Else

Like so many other home appliances, it’s likely that even your air conditioner has a serial interface buried inside it. If you’re wondering why, it’s because virtually every microcontroller on the planet has a UART built in, and it’s highly useful for debugging during the development process, so it makes sense to use it. Thus, it was only a matter of time before we saw a hacked airconditioner controlled by a Raspberry Pi.

[Hadley] was growing frustrated with the IR remote for his Mitsubishi air conditioner; it can issue commands, but it’s a one way interface – there’s no feedback on current status or whether commands are received, other then the occasional beep or two. Deciding there had to be a better way, [Hadley] grabbed a Saleae Logic Analyser and started probing around, determining that the unit spoke 5 V TTL at 2400 bps with even parity. The next step was to start talking back.

The post doesn’t go into detail about how the messaging protocol was decoded – we’d love to see the process involved. From there it was a simple matter of rolling up some Python scripts to talk serial to the air conditioner. The system allows control over HTML using MQTT over websockets.

The real benefit here is the two-way communication – not only can commands be sent to the unit, but messages can be received as well. The air conditioner will both confirm commands received, as well as send updates when changes are made using the IR remote – this allows the controller to remain in sync with the air conditioner’s current state.

This project demonstrates a much more powerful way of automating your HVAC system at home than just simple on-off control, and merely requires some basic digital hacking skills along with the know-how to safely work with mains-powered appliances. As proof you can try this yourself, someone’s ported the code to the ESP8266 already! If you’re keen to learn more about working with your HVAC hardware, why not read up on what it takes to be a HVAC technician?

[Thanks Bob!]

22 thoughts on “Air Conditioner Speaks Serial, Just Like Everything Else

  1. I also recomended looking in professional HA forums for Crestron and AMX. we have already decided a lot of this stuff already. the AC unit he is using has an option board that brings that TTL up to standard RS232 and there are drivers written for it already out there in the AMX forums. Although devices like the CoolLink are used heavily as they support multiple devices.

    1. It’s called a “ductless mini-split” It has a fan unit outside and works like geothermal does. It’s able to heat in the winter and cool in the summer.

      This is a great idea. I have one of these too, and the stupid beep is all you get. And if you are too far away, you don’t get a beep, but the remote thinks you changed it, so it is out of sync with what the unit thinks. If I wasn’t moving in a few months, I would definitely try to do this.

      The other issue, is there is no “timer” function, so if you want it cooler at night, you have to remember to do it manually.

  2. Just had a microprocessor electric water boiler for our hydronic heating system installed this Summer. While it was supposedly set up optimized for us by the installer, I’m sure there are a few tweaks left to do. However I am currently prevented from doing so until the warranty expires by the express orders of my dear wife. However the keypad and display on the unit almost mock me every time I look at it.

  3. I was thinking of same thing, expect my remote does have two way communication.
    I found a service manual for similar unit, but not exact, as i have.
    From there i can see, that it does have serial communication, but that’s between the inside and outside units.
    Otherwise there is the “wireless unit assembly”, which has 15 wires, but that’s as far as i’ve gotten. It could still have an extra serial line somewhere. The manual is not really that informative on that. Mechanics don’t need to know i guess.
    Buuuut, as i said, my remote does have two way communication, so i’m not in a big need for additional control right now.

  4. >However I am currently prevented from doing so until the warranty expires by the express orders of my dear wife.
    :-)
    Not so long ago i changed the electronics of my electric water heater (took me a lot of time because OF COURSE the new eletronic was different and so the cables were too short, thank you Murphy…). Because it was under warranty i had to return the old unit quickly and couldn’t tinker with it, but i couldn’t resist to separate the two boards (reaaaallllyyyy carefully) and have a close look at them. The µC was a PIC and there was a programming header, luckily (oder sadly…) i don’t have a PICkit. There were quite a lot of contacts, i’m still wondering what there might be for, i mean it’s just a simple water heater?!?! Maybe there is a serial port somewhere, but as i said i was not allowed to mess with the thing. :-/ I suppose this stuff costs at least 100€ so i really didn’t want to get in trouble because of my curiosity.

  5. I’m an appliance repairman for GE Aplliance and our Zonelines wall units (and some of our other appliances) have an Ethernet connection on them. For the Zoneline A/C units, I can hook my laptop up to them and activate different functions such as switching on the compressor or evap fan etc. The software interface is proprietary but i’m sure some smart person could work it out.

    1. Is the port on the GE Geospring Heat Pump Water Heater ethernet then? I can’t get a straight answer on this other than it may fry something and don’t plug in an ethernet device.

  6. Someone I know has a Mitsubishi split system at home. After trying to get an interface for his home automation directly from the manufacturer and being quoted some obscene price, he later found out that it implemented another industry standard protocol via an unlabelled five pin header on the hard wired control/thermostat (it’s a ducted split) panel.

    This five pin header he now uses is apparently used by multiple manufacturers to provide compatibility with things like hotel HVAC management systems.. he got a board from somewhere in Europe to interface to the header for a fifth or so of the price Mitsubishi wanted for their branded solution.

  7. Yes, there are boards available that add wireless functionality or link the heat pumps to a standard thermostat controller, but the problem with those is that they cost $180 and up. A conventional thermostat adapter PAC-US444CN-1 for Mitsubishi is $224. Kumo cloud is $180 and requires to be able to talk to Mitsubishi servers 24/7.
    A $4 ESP chip and a bit of code to work with MQTT or any other service is a winner IMO

  8. Nice! Thanks for featuring my little project.

    I would still like to make a post on decoding the protocol at some point, I’ve just not had a chance yet. It was basically just changing the remote and watching the data stream. I made a little Python script to print it out in columns/rows so I could easily visualise what was changing with each change of setting. There’s still a few bits I haven’t decoded.

    I considered using an EPS8266 myself initially but decided on the Pi for a couple reasons: I wanted a change from playing with the ESP8266 for a while, and I thought it would be useful for people to have a stand-alone controller to host the MQTT and web things too if they didn’t have existing automation system in place.

    Cheers!

    Hadley

  9. Since there is no feedback every time you push a button on the remote it will send all the configuration and setting that you see in the remote LCD so it will works in case of loss of sync. The remote IR message is much longer that the usual remote codes.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s