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 ⋙

How To Access An Android Phone With A Broken Screen

How To Access An Android Phone With A Broken Screen

Dealing with a broken screen on your Android phone is a hassle. Although phone screens are pretty tough, one nasty drop can shatter them completely. Given that most people have a lot of irreplaceable content on their phones, it is

Find out how to find friends and family using online services

Find out how to find friends and family using online services

In today's world, where information is more accessible than ever before, finding long-lost friends or relatives has become much easier. Online services for finding people provide convenient and effective tools that allow you to restore lost connections.

IObit Uninstaller 13 - One Click to Uninstall All Unwanted Programs

IObit Uninstaller 13 - One Click to Uninstall  All Unwanted Programs

In the busy software utilities industry, the available uninstallation tools are often overshadowed by more glamorous alternatives. Nonetheless, an excellent way of removing programs on a PC is vital for optimal system performance and the elimination of unwanted applications.

Instructions for creating Moon phase trend

Instructions for creating Moon phase trend

Instructions for creating a Moon phase trend. The Moon trend is extremely popular on TikTok, creating an unprecedented fever. Through Moon phase will help you know the date

How to edit videos posted on YouTube without losing views

How to edit videos posted on YouTube without losing views

How to edit videos posted on YouTube without losing views, You forgot to blur sensitive content in videos posted on YouTube. Don't worry, here's how to adjust it

How to enable dark mode on TikTok

How to enable dark mode on TikTok

How to turn on dark mode on TikTok, How to turn on dark mode on TikTok is not difficult. The article will guide you in detail how to change the TikTok interface to black on Samsung

Shirt size chart - How to choose the most accurate shirt size

Shirt size chart - How to choose the most accurate shirt size

Shirt size chart - How to choose the most accurate shirt size, What is the shirt size chart? Shirt size means only the size and size of the shirt or pants. Shirt size varies according to direction

Instructions for drawing prizes to receive Lucky Money on ZaloPay

Instructions for drawing prizes to receive Lucky Money on ZaloPay

Instructions for drawing prizes to receive Lucky Money on ZaloPay. Recently, Zalo has launched the program "Amazing lucky money, Happy Spring Luck" taking place from January 29, 2021 to

How to view and recover Microsoft Outlook password

How to view and recover Microsoft Outlook password

How to view and recover Microsoft Outlook password, How to view Outlook password on computer is not difficult. This article will guide you how to view and recover Outlook password

Instructions for creating and searching for draft posts on Facebook

Instructions for creating and searching for draft posts on Facebook

Instructions for creating and searching for draft articles on Facebook. Currently, we can save articles that we have created but have not yet posted on Facebook. Here, WebTech360 invites

How to set up LibreOffice Writer to work like Microsoft Word

How to set up LibreOffice Writer to work like Microsoft Word

How to set up LibreOffice Writer to work like Microsoft Word, If you're planning to switch from Microsoft Word to LibreOffice Writer but want a similar experience

Instructions for turning off saving videos on TikTok are extremely simple

Instructions for turning off saving videos on TikTok are extremely simple

Instructions for turning off saving videos on TikTok are extremely simple, to help people block others from downloading and saving their videos simply and easily. So today, WebTech360

Instructions for creating genealogical and organizational charts on Google Sheets

Instructions for creating genealogical and organizational charts on Google Sheets

Instructions for creating genealogical charts and organizing them on Google Sheets. Google Sheets is an online office application that helps us easily edit online spreadsheets,

How to import and manage multiple email accounts in Gmail

How to import and manage multiple email accounts in Gmail

How to import and manage multiple email accounts in Gmail, Want to manage all emails in Gmail? Let's learn how to manage and add multiple accounts with WebTech360

Instructions for using Photoshop filters for beginners

Instructions for using Photoshop filters for beginners

Instructions for using Photoshop filters for beginners, Each filter in Photoshop has its own algorithm and uses. Below are instructions for using the internal filter

How to create automatic clicks on Macrorify

How to create automatic clicks on Macrorify

How to create automatic clicks on Macrorify, Macrorify helps you create automatic click tasks and detect images. In this article, let's find out how with WebTech360

Instructions for logging out of Instagram account remotely

Instructions for logging out of Instagram account remotely

Instructions for remotely logging out of your Instagram account. If you don't know how to remotely log out of your Instagram account, today WebTech360 would like to introduce

Instructions for remotely logging out of Tik Tok account

Instructions for remotely logging out of Tik Tok account

Instructions for remotely logging out of Tik Tok account. To help people quickly log out of Tik Tok accounts from other devices, today WebTech360

Instructions for blurring photos on B612

Instructions for blurring photos on B612

Instructions for blurring photos on B612. Recently, the B612 application has updated the image blur effect. Next, WebTech360 will introduce the article Instructions for blurring photos

How to fix the error of printing blank pages in Microsoft Excel

How to fix the error of printing blank pages in Microsoft Excel

How to fix the error of printing blank pages in Microsoft Excel. Why do some Excel documents not display data or contain blank pages when printed? Below are the reasons