I am successfully running a great Daikin air conditioning unit in an OpenHAB-powered smart home. Recently i purchased a second one for my newly remodeled bedroom; and was very "pleased" to see that original BRP online controller is not available for sale in my country any more due to political reasons. There was, however, a locally developed replacement, which is, of course, not compatible with the original. Additionally it forces me to use their proprietary cloud; not only potentially disclosing some of my privacy, but also tying my smart home to a working Internet connection for no reason.
Fortunately i was able not only to find some information on successfully reverse engineered Daikin "S21" communication protocol, but also find an awesome ESP32-Faikin project, which does the majority of the thing i need.
My newly purchased controller, named "Daichi" (which of course has nothing to do with the japanese company), is a small board, built around an AI Thinker ESP12 module. Therefore this project'sale goals are:
- Backport ESP32-Faikin to ESP8266 architecture
- Support original HTTP+JSON-based BRP communication protocol, at least enough to support OpenHAB
Since various ESP8266-based hardware is widely accessible, i am making this project opensource. A (partly) reverse-engineered Daichi controller schematic is available in "Hardware" folder for those who would be interested in implementing their own board based on this or similar ESP8266 module. Since violating someone else's possible design copyrights is not the goal of this project, the schematic is incomplete. It does not contain exact values for parts (many of these are impossible to determine without complete disassembly), it's only enough for use as a reference, to understand how the module is interfaced and what pins are in use. There's nothing special to that really; any electronics engineer is able to put together such a board with minimum efforts.
- Compatible with original BRP series Daikin online controllers; drop-in replacement
- Simple local web based control with live websocket status, easy to save as desktop icon on a mobile phone.
- MQTT reporting and controls
- Includes linux mysql/mariadb based logging and graphing tools
- Works with EnvMon Environmental Monitor for finer control and status display
- Automatically works out if S21 or alternative protocol used on ducted units
- Daichi DW22-B Wi-fi controller ver.03
- Any ESP8266-based board of your own design; reference schematic included.
This project has been successfully tested on:
- FTXF20D "Sensira" - S21 protocol
- FTXB25 - S21 protocol
- FTXB35 - S21 protocol
- FTXB50C - CN_WIRED protocol
There's also a list of supported models on Original Faikin-ESP32 wiki; those are also expected to work.
It is possible to build the firmware from source, but for those who don't know how to do it, prebuilt binaries are available in release/ folder of the repository.
Faikin is built using ESP8266_RTOS_SDK, and installation requires to replace bootloader and partition table. This is done by flashing all the files using esptool:
esptool.py -p COM3 -b 460800 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 8MB 0x8000 partition-table.bin 0xd000 ota_data_initial.bin 0x0 bootloader.bin 0x10000 Faikin-8266.bin
It is enough to do this only once; after you have the proper bootloader, you only need to replace the application (Faikin-8266.bin)
If you built from source, the same result is achieved by simply running "make flash".
Appears as access point with simple web page to set up on local WiFI
Local interactive web control page using hostname.local, no app required, no external internet required.
The build requires ESP8266 RTOS SDK v3.x
Git clone this --recursive
to get all the submodules, and it should build with just make
. There are make targets
for other variables, but this hardware is the make pico
version. The make
actually runs the normal idf.py
to build with
then uses cmake. make menuconfig
can be used to fine tune the settings, but the defaults should be mostly sane.
make flash
should work to program. Any basic USB-to-5V-TTL-serial adapter should be fine; i used
WaveShare PL2303, and of course the full ESP IDF
environment.