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?