Control Daikin air conditioner over the Internet

Here is a small home-automation project that I have been working in my free time. I wanted to control my home-made air source heat pump system (based on Daikin FTX71GV / RX71GV ) from anywhere with Internet access. That would allow me to control my house’s heating/cooling remotely and more interestingly I could create scripts that turn the heating up/down based on outside temperature, time of day, inside average temperature and other criteria. All this to make a more efficient energy use, therefore a greener energy plan. Detailed instructions on how to use the DAIKIN air conditioner controller

My Daikin uses an ARC433** series remote control, so the analysis was done for that particular IR remote.

I had a NaNode laying around, so the hardware part was pretty much figured out. Just needed an 940nm IR diode, couple resistors, a transistor and I was all set.

Next, I had to decode the IR protocol of Daikin air condifioners. That was quite a challenge as it turned out. To do this I needed to capture the IR signal and reverse-engineer it. Since I have no oscilloscope, I used my sound card as described in this article. I used audacity and spent few days poking by eyes analyzing the waveform. There are few articles on the Internet that helped me also, but none was about the IR protocol for my specific Daikin model. As it seems, there are at least three protocols used by that manufacturer.

The IR frame is split in two parts 3000us apart. Quite strange approach, I think it it done to confuse universal IR learning devices. In fact I also tried to learn the codes using a SilverCrest universal remote, but it fails due to the gap between transmissions.

So after I had the IR protocol figured out, I had to put up the software. I used Ken Shirriff’s IR library and modified it so that it takes Daikin’s protocol.

For Ethernet connectivity I useJCW’s EtherCard library, of course modifying it a bit because of some limitations it has. Basically the restrictions I needed to avoid are the progmem based DNS lookup and no custom HTTP headers management. Another challenge was to deal with the RAM usage, the library has the TCP buffer taking most of the ATMega’s RAM plus it is a single-packet implementation. That means that a page cannot exceed 1100 bytes (that’s the buffer size).. I finally managed to squeeze in all the UI and was left with 196 bytes of RAM free. Funny when you think of the amount of functionality that 30K of compiled sketch code can hold vs modern software resource usage.

So here is what I came up with as features list:

  • IPv4 only supported; IP, Gateway and DNS configurable via the web UI.
    • The module responds to ICMP (ping)requests
    • Option to reset to default values via a button press during start up (use in case you forget the network settings)
  • HTTP server
    • Web UI, optimized for use via mobile phone by using JQuery;
    • Option for basic HTML UI
    • JavaScript is required on the client in both cases
    • HTTP listen port is configurable
    • Basic HTTP authenticatication can be enabled for password protection of the web UI. Useful to prevent unauthorized access to the module
  • Manual remote control
    • Set On/Off state
    • Set temperature
    • Set mode (heat, cool, dry, auto)
    • Set aux functions (Powerful, Silent, Normal operation)
    • Set fan (1 bar, 3 bars,5 bars, night mode, auto)
  • Schedule timers – 10 user configurable timers via the UI; This is something quite useful because my Daikin doesn’t have scheduler built in.
    • Day(s) to activate Monday-Friday, Weekends,Every day, individual day of week
    • Hour
    • Minute (in 15 min intervals)
  • Time synchronization via NTP (Network Time Protocol; Time is needed if using the schedule. I use NTP because I don’t have a RTC on the NaNode plus seems less hassle to maintain.
    • NTP server configurable (as IP or site)
    • Timezone takes positive and negative values
  • Support for DynDNS dynamic DNS service. This is a bit of feature creep, but wanted to give it a try. So I have a fully functional DynDNS client now 
  • The module can generate JSON state string for external polling via PHP, JavaScript and so forth
    • {“state”:”1″,”mode”:”4″,”temp”:”24″,”fan”:”176″,”aux”:”16″}
  • The module can be controlled with HTTP GET requests. In combination with JSON feedback, you can use the module from your own web scripts

The project turned out too specific – for a particular model of AC. For the future I’d like to take a different approach – learning IR codes rather than decoding and using for a specific model. Learning a code will be simply memorizing the pulse widths and compressing them. AC remote controls send “state” in one command, therefore learning is quite useful. The user may then put a name to the learned code i.e. “heating, temp=21deg, fan=low”. The learned codes will be stored on SD card.

Sign up and earn $1000 a day ⋙

Leave a Comment

The Smart Guide to Transporting Bulky Goods

The Smart Guide to Transporting Bulky Goods

Transporting bulky goods presents a unique set of challenges. Whether you’re moving furniture, heavy machinery, construction materials, or large appliances, ensuring that these items reach their destination safely, on time, and without unnecessary expense requires a carefully thought-out approach.

Instructions to turn off Galaxy AI on Samsung phones

Instructions to turn off Galaxy AI on Samsung phones

If you no longer need to use Galaxy AI on your Samsung phone, you can turn it off with a very simple operation. Below are instructions for turning off Galaxy AI on your Samsung phone.

How to delete AI character created on Instagram

How to delete AI character created on Instagram

If you don't need to use any AI characters on Instagram, you can also quickly delete them. Here's how to delete AI characters on Instagram.

Instructions for inserting delta symbol in Excel

Instructions for inserting delta symbol in Excel

The delta symbol in Excel, also known as the triangle symbol in Excel, is used a lot in statistical data tables, expressing increasing or decreasing numbers, or any data according to the user's wishes.

Instructions for sharing a sheet on Google Sheets

Instructions for sharing a sheet on Google Sheets

In addition to sharing a Google Sheets file with all sheets displayed, users can choose to share a Google Sheets data area or share a sheet on Google Sheets.

Instructions for disabling ChatGPT storage

Instructions for disabling ChatGPT storage

Users can also customize to disable ChatGPT memory whenever they want, on both mobile and computer versions. Below are instructions for disabling ChatGPT memory.

Instructions to see the last Windows Update time

Instructions to see the last Windows Update time

By default, Windows Update will automatically check for updates and you can also see when the last update was. Here is a guide to see when Windows last updated.

Instructions to delete eSIM on iPhone are very simple

Instructions to delete eSIM on iPhone are very simple

Basically, the operation to delete eSIM on iPhone is also simple for us to follow. Below are instructions to delete eSIM on iPhone.

How to Convert Live Photo to Boomerang on iPhone

How to Convert Live Photo to Boomerang on iPhone

In addition to saving Live Photos as videos on iPhone, users can convert Live Photos to Boomerang on iPhone very simply.

How to block SharePlay on iPhone from automatically turning on

How to block SharePlay on iPhone from automatically turning on

Many apps automatically enable SharePlay when you FaceTime, which can cause you to accidentally press the wrong button and ruin the video call you're making.

How to use Click to Do on Windows 11

How to use Click to Do on Windows 11

When you enable Click to Do, the feature works and understands the text or image you click on and then makes judgments to provide relevant contextual actions.

How to turn on laptop keyboard light, activate Keyboard Backlight on Windows 10

How to turn on laptop keyboard light, activate Keyboard Backlight on Windows 10

Turning on the keyboard backlight will make the keyboard glow, useful when operating in low light conditions, or making your gaming corner look cooler. There are 4 ways to turn on the laptop keyboard light for you to choose from below.

How to enter Safe Mode Windows 10 on startup

How to enter Safe Mode Windows 10 on startup

There are many ways to enter Safe Mode on Windows 10, in case you cannot enter Windows and cannot enter. To enter Safe Mode Windows 10 when starting the computer, please refer to the article below of WebTech360.

How to create Ghibli style photos on Grok AI

How to create Ghibli style photos on Grok AI

Grok AI has now expanded its AI photo generator to transform personal photos into new styles, such as creating Studio Ghibli style photos with famous animated films.

Instructions to register for Google One AI Premium for free for 1 month

Instructions to register for Google One AI Premium for free for 1 month

Google One AI Premium is offering a 1-month free trial for users to sign up and experience many upgraded features such as the Gemini Advanced assistant.