Git Product home page Git Product logo

daikin-control's Introduction

Daikin-Control

Web Gui Preview

The '''Daikin Emura FTXG-L''' air conditioner comes with a wifi module preinstalled that allows you to control it via internet. The solution provided by Daikin is a mobile app (very well designed) that allows you to control the air conditioner even remotely, exploiting the REST API of the wifi module.

Even if the system works, there are some problems:

  • It is no possible to control the AC from a web browser. You must use the official mobile application. If your device is not supported or you are from a computer you can not control your air conditioner over the internet.
  • To control your AC remotely from outside your lan, your requests must go through the Daikin server. The device response is slow because the system is based on polling request. (you can't set the ip of the AC on the mobile application)
  • Even if the remote management system involves the use of an account with password, there is a big security issue, password and username can be accessed from inside your LAN with a GET request. (try basic_info request)

This project aims to provide 2 main things:

  • unoffcial documentation of Daikin API needed to control the air conditioner
  • web interface to manage air conditioner settings

Tested Hardware

The API described by this document have been tested and seems to be working with firmware version from 1.4.3 to 3.3.1.

The following hardware configurations have been used for testing:

ModelName:          Daikin Emura FTXG-L
ModelID:            FTXG35LV1BW
WifiControllerID:   BRP069A41 4P358711-2C
Software version:   1.4.3
ModelName:          Daikin Emura FVXS-F
ModelID:            FVXS35FV1B
WifiControllerID:   BRP069A42
Software version:   2.6.0
ModelName:          Daikin Caldo XRH30
ModelID:            FTXTM302V1B
WifiControllerID:   BRP069B41
Software version:   1.2.51

If you try new hardware configurations or new firmware versions, please contact me.

API System

Daikin original API use REST.

You can use GET http request to retrive informations and POST http request to apply new settings.

Uri GET POST desc
/common/basic_info X Provides Daikin account information (security issue!), software version, mac address and generic info
/common/get_remote_method X Provides information about polling system
/common/set_remote_method X Set information on the polling system (reduce remote time update ??)
/aircon/get_model_info X Provides model informarion
/aircon/get_control_info X Main Uri to request all current status parameters
/aircon/set_control_info X X Main Uri to set status parameters (control almost all)
/aircon/get_sensor_info X Provides information on sensors (temperatures, humidity, power consumption)
/aircon/get_timer X ?
/aircon/set_timer X ?
/aircon/get_price X ?
/aircon/set_price X ?
/aircon/get_target X ?
/aircon/set_target X ?
/aircon/get_week_power X Provides weekly and today runtime information (in mn)
/aircon/get_year_power X Provides yearly runtime information
/aircon/get_program X ?
/aircon/set_program X ?
/aircon/get_scdltimer X Provides information about on/off weekly timer
/aircon/set_scdltimer X Set information about on/off weekly timer
/common/get_notify X ?
/common/set_notify X ?
/common/set_regioncode X ?
/common/set_led X ?
/common/reboot X reboot the AP

Parameters

/aircon/set_control_info

Power

param name : pow

description: represents the power state of the device

value desc
0 OFF
1 ON

Mode

param name : mode

description: represents the operating mode

value desc
2 DEHUMDIFICATOR
3 COLD
4 HOT
6 FAN
0-1-7 AUTO

Temp

param name : stemp

description: represents the target temperature

general accepted range 10-41

mode accepted range
AUTO 18-31
HOT 10-31
COLD 18-33

device memorize last target temp state for each mode under dft* (dft1,dft2...) parameters. You can't set directly these.

Fan rate

param name : f_rate

description: represents the fan rate mode

Daikin Emura FVXS does not support silence (=B) value for fan rate mode functionality.

value desc
A auto
B silence
3 lvl_1
4 lvl_2
5 lvl_3
6 lvl_4
7 lvl_5

device memorize last fan rate state for each mode under dfr* (dfr1,dfr2...) parameters. You can't set directly these.

Fan direction

param name : f_dir

description: represents the fan direction

value desc
0 all wings stopped
1 vertical wings motion
2 horizontal wings motion
3 vertical and horizontal wings motion

device memorize last fan rate state for each mode under dfd* (dfd1,dfd2...) parameters. You can't set directly these.

Humidity

param name : shum

description: represents the target humidity

Daikin Emura FTXG-L and FVXS does not support humidity related functionality.

device memorize last humidity state for each mode under dh* (dh1,dh2...) parameters. You can't set directly these.


Minimal parameters set

The /aircon/set_control_info has some mandatory parameters, it means that you need to include them in all the requests to this endpoint even if you are not interested in changing those specific values.

These are the mandatory parameters:

  • pow
  • mode
  • stemp
  • shum
  • f_rate
  • f_dir

While these are the ones that can be omitted:

  • adv
  • dt*
  • dh*
  • dfr*
  • dfd*
  • b_mode
  • b_stemp
  • b_shum
  • b_f_rate
  • b_f_dir
  • alert

minimal request example: pow=1&mode=1&stemp=26&shum=0&f_rate=B&f_dir=3

/common/set_led

Led

It seems that this settings doesn't actually change led.

param name: led

value desc
  • | set to '0' (same as '0' value) 0 | ? 1 | ?

Unsupported settings

This list show which hardware functionality are not supported by API

  • led brightness switch

Libraries

Useful resource

Control Info Examples

Switched Off

ret=OK,pow=0,mode=7,adv=,stemp=24.0,shum=0,dt1=24.0,dt2=M,dt3=25.0,dt4=25.0,dt5=25.0,dt7=24.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=7,b_stemp=24.0,b_shum=0,alert=255,f_rate=4,f_dir=0,b_f_rate=4,b_f_dir=0,dfr1=4,dfr2=5,dfr3=7,dfr4=5,dfr5=5,dfr6=5,dfr7=4,dfrh=5,dfd1=0,dfd2=0,dfd3=3,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0

Auto 25C ( CONFORT AIR ) ( INTELLIGENT EYE )

ret=OK,pow=1,mode=7,adv=,stemp=25.0,shum=0,dt1=25.0,dt2=M,dt3=22.0,dt4=25.0,dt5=25.0,dt7=25.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=7,b_stemp=25.0,b_shum=0,alert=255,f_rate=A,f_dir=0,b_f_rate=4,b_f_dir=0,dfr1=4,dfr2=5,dfr3=4,dfr4=5,dfr5=5,dfr6=5,dfr7=4,dfrh=5,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0
ret=OK,pow=1&dh2=50&dfd4=0&b_stemp=25.0&alert=255&f_dir=0&b_shum=0&dh4=0&dfd3=0&dh3=0&dfd2=0&dfr2=5&dfr7=B&dfr4=5&dfd7=0&dfrh=5&dt3=25.0&dfdh=0&adv=&dh5=0&dh1=0&dfr6=5&dt5=25.0&dfr1=B&stemp=25.0&shum=0&dfd6=0&f_rate=A&b_f_dir=0&dt1=25.0&dhh=50&dfd1=0&dfr3=5&dh7=0&mode=1&dfd5=0&b_mode=7&dt4=25.0&b_f_rate=A&dt7=25.0&dt2=M&dfr5=5

Hot 25c ( AIR silence )

ret=OK,pow=1,mode=4,adv=,stemp=25.0,shum=0,dt1=25.0,dt2=M,dt3=22.0,dt4=25.0,dt5=25.0,dt7=25.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=4,b_stemp=25.0,b_shum=0,alert=255,f_rate=B,f_dir=0,b_f_rate=B,b_f_dir=0,dfr1=B,dfr2=B,dfr3=B,dfr4=B,dfr5=B,dfr6=B,dfr7=B,dfrh=5,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0

daikin-control's People

Contributors

ael-code avatar djmomo avatar ehjortberg avatar pyr0x3n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

daikin-control's Issues

Support request for new features

Hi,

I just bought a daikin FTXM air conditioner with BRP069A41 wireless adapter. I played a bit with the http api and I found out that there are a couple of new features that aren't present in your unofficial documentation regarding some operation modes: for instance comfort, powerful, sensor, clean, econo and quiet.
I found out that some of the modes can be detected on the get_control_info page, but I cannot set them through the http api.
I'm wandering if it is possible to sniff the messages that the daikin android application sends to the adapter to get the correct set messages (not all, but many of these modes can be set through the application).
I'd like to know (before starting to sniff packets and since I think you have already done something similar) if you can tell me:

  • if the interface the application uses is the http api you already documented
  • if you have any suggestion about ip packet sniffing (did you use an android app or did you use any other technique?)
    I hope you can help me and I'll try to update the documentation as much as I can.

A

REST request and parameters

Looking at the 3.3.6 wirless binary, the following requests/parameters seems to exist:

DAIKIN_UDP/debug/24h_info
DAIKIN_UDP/common/basic_info
DAIKIN_UDP/debug/timeinfo
DAIKIN_UDP/debug/s_debug_on
DAIKIN_UDP/debug/s_debug_off
DAIKIN_UDP/debug/myconsole
DAIKIN_UDP/debug/loglevel=e
DAIKIN_UDP/debug/loglevel=i
DAIKIN_UDP/debug/loglevel=v
DAIKIN_UDP/debug/demandON
DAIKIN_UDP/debug/demandOFF

aircon/error_notice
aircon/get_price
aircon/set_price
aircon/set_special_mode
aircon/get_demand_control
aircon/set_demand_control
aircon/get_program
aircon/set_program
aircon/get_model_info
aircon/get_control_info
aircon/set_control_info
aircon/get_scdltimer_info
aircon/set_scdltimer_info
aircon/get_sensor_info
aircon/get_demand_studyinfo
aircon/set_demand_studyinfo
aircon/get_timer
aircon/set_timer
aircon/get_scdltimer
aircon/set_scdltimer
aircon/get_week_power
aircon/get_year_power
aircon/clr_nw_err
aircon/get_nw_err
aircon/get_target
aircon/set_target
aircon/get_month_power_ex
aircon/get_week_power_ex
aircon/get_year_power_ex
aircon/get_day_power_ex
aircon/get_scdltimer_body
aircon/set_scdltimer_body
aircon/get_monitordata
aircon/get_info
aircon/set_info
common/get_date
common/set_led
common/get_remote_method
common/set_remote_method
common/get_product_code
common/set_product_code
common/get_regioncode
common/set_regioncode
common/set_name
common/notify_date_time
common/get_datetime
common/set_timezone
common/get_wifi_setting
common/set_wifi_setting
common/get_network_setting
common/set_network_setting
common/get_wlanapch
common/get_progsum
common/start_wifi_scan
common/set_icon
common/set_location
common/permit_wifi_connection
common/start_wifi_connection
common/get_sn
common/set_sn
common/basic_info
common/clr_smiinfo
common/get_smiinfo
common/get_fwinfo
common/get_group
common/set_group
common/look_adapter
common/stop_look_adapter
common/get_wifi_scan_result
common/set_account
common/reboot
common/set_lpw
common/get_holiday
common/set_holiday
common/get_notify
common/set_notify
common/get_servername
common/set_servername
debug/serial_pctool
dkac/system/fwupdate

&apw=
&port=
&type=
&reg=
&ver=
&method=
&notice_ip_int=
&notice_sync_int=
&ope_flg=
&adp_kind=
&time_info=
&notify=
&location=
&icon=
&led=
&en_hol=%d
&price=
&target=
&group=
&sensor_info=
&pushinfo=
&model=
&status=
&tinfo=
&pinfo=
&scdl_timer_info=
&scdl_timer_body1=
&scdl_timer_body2=
&scdl_timer_body3=
&week_power=
&year_power=
&day_power_ex=
&week_power_ex=
&month_power_ex=
&year_power_ex=
&demand=
&mondata=
&swid=
&eepid=
&err_info=
&apw=
&port=
&type=
&subtype=qa
&reg=
&ver=
&method=
&notice_ip_int=
&notice_sync_int=
&ope_flg=
&adp_kind=
&time_info=
&notify=
&location=
&icon=
&led=
&en_hol=%d
&price=
&target=
&group=
&sensor_info=
&model=
&status=
&scdl_timer_info=
&scdl_timer_body1=
&scdl_timer_body2=
&scdl_timer_body3=

Silent mode not persitent

I have an FTX-J split unit with the WiFi module.
It accepts all commands from this "unofficial api".

When I send the Silent command f_rate=B and immediately check the get_control just from a browser, it reports f_rate=B back. But the unit does not go into Silent mode, and if I check (just refresh in the browser) a couple of seconds later it suddenly reports f_rate=A.

The Daikin does support Silent mode and it works fine when I select it with the infrared remote control.
Except that, when I set Silent mode with the infrared remote and check the get_control, it still says f_rate=A instead of B. I see no difference in the get_control between Auto mode and Silent mode when I set it from the infrared remote control...

Error: control ajax request failed

Hi again,
I'm trying to use web gu i (by opening up.html), and I get this error! Can you pls help?
I've already placed unit IP address in config.php... Am I missing some Things?
Do you have any step by step guide to use it?
Do you know how the iOS app searches for devices in the network?
Thank you again
Manuel

Daikin product number of wifi module

I'm new to GitHub as a user but your code seems to be exactly what I'm looking for so first of all I want to thank you for this awesome project!

I wasn't sure on how to contact you and I assume this isn't proper use of the issues function but here goes.

I wonder what the product number of this wifi controller is? Is it the BRP069A41? I think this information would be a great addition to the readme as Daikin has multiple modules for this which can be very confusing.

So, can you confirm that the code is tested on the BRP069A41?
Some info on the BRP069A41:
https://www.youtube.com/watch?v=qHkBHCU7eiQ
https://www.youtube.com/watch?v=GV4Vv0caW2E
(wasn't able to find EN version)

Reinstall Firmware

Dose anyone knows if is possible to reinstall the Firmware on a Daikin BRP069A42 or do you ever encountered error 251 ?

After connecting the wifi module to the router and updating the Firmware to 3.3.1 if I use the Android app Daikin Online Controller I receive an error "251 An error occurred on the unit".

The output of /common/basic_info ret=OK,type=aircon,reg=eu,ver=3_3_1,err=251,lpw_flag=0,adp_kind=2,led=1

Getting auth error with firmware 3.3.6

I recently updated to firmware 3.3.6 (had to, the real Daikin app wouldn't let me use it otherwise) and now all requests to the URL's documented here give me a 403 error. Had anyone figured out how to authenticate rest calls?

Question: Any of you have many err=255 on AP units?

Hi @ael-code and other users,

First of all @ael-code thanks for all your work so far... Kudos.

@ All:
Since I got my 3 AP controllers:...
1x BRP069A42 for FTXR42EV1B9 (singe Ururu Sarara)
2x BRP069A43 for FTXS20K2V1B (dual split unit)
...I have "hangs/lockups" of the AP.
The time interval differs. Can be 1 week can be 3 weeks.
What happens is that the system will not react via the Daikin App and /common/basic_info will show err=255.

Since today I found the /common/reboot call. This fixes the issue for me. I'm very happy as before I had to switch the AP's to standalone and back before they start working again.

My Question to you all: Do you have the same issues?
My local reseller + Daikin Netherlands + Europe cannot fix it, so I'm very curious.

PS1 the strange thing is that the AP is still working and accessible via the API but cannot communicate with the AirconUnit itself.

PS2 I face the above issue with all 3 AP's at different times.

Power on/off the unit via php/raspi

Hi all.
I'm installed this web gui and use it for manage my Daikin FTXM unit.

Now I'm trying to switch on/off the unit via http but I do not understand how I do it .
( my idea is use curl or sometings like this, for auto-manage the unit )

i try this via browser without success :
http://192.168.1.91/aircon/set_control_info?pow=1

Is there a way to turn on the unit without sending all the parameters?

There is an example to use your api ( api.php ) without gui ?

Thanks,
Fabrizio.

Analysis of the 3.3.1 firmware binary

I took the Daikin Controller.APK into a decompiler and except for the quite hard to read java code I also found the firmware 3.3.1 file (dkacstm-wlan-F-3_3_1.bin) inside the APK (Android binary of the app).

This is the endpoints I've found so far:

DAIKIN_UDP/common/basic_info
DAIKIN_UDP/debug/24h_info
DAIKIN_UDP/debug/demandOFF
DAIKIN_UDP/debug/demandON
DAIKIN_UDP/debug/loglevel=e
DAIKIN_UDP/debug/loglevel=i
DAIKIN_UDP/debug/loglevel=v
DAIKIN_UDP/debug/myconsole
DAIKIN_UDP/debug/s_debug_off
DAIKIN_UDP/debug/s_debug_on
DAIKIN_UDP/debug/timeinfo

/common/get_date
common/basic_info
common/clr_smiinfo
common/get_datetime
common/get_fwinfo
common/get_group
common/get_holiday
common/get_network_setting
common/get_notify
common/get_product_code
common/get_progsum
common/get_regioncode
common/get_remote_method
common/get_servername
common/get_smiinfo
common/get_sn
common/get_wifi_scan_result
common/get_wifi_setting
common/get_wlanapch
common/look_adapter
common/notify_date_time
common/permit_wifi_connection
common/reboot
common/set_account
common/set_group
common/set_holiday
common/set_icon
common/set_led
common/set_location
common/set_lpw
common/set_name
common/set_network_setting
common/set_notify
common/set_product_code
common/set_regioncode
common/set_remote_method
common/set_servername
common/set_sn
common/set_timezone
common/set_wifi_setting
common/start_wifi_connection
common/start_wifi_scan
common/stop_look_adapter


 /aircon/notice
/aircon/error_notice
aircon
aircon/clr_nw_err
aircon/get_control_info
aircon/get_day_power_ex
aircon/get_demand_control
aircon/get_demand_studyinfo
aircon/get_info
aircon/get_model_info
aircon/get_monitordata
aircon/get_month_power_ex
aircon/get_nw_err
aircon/get_price
aircon/get_program
aircon/get_scdltimer
aircon/get_scdltimer_body
aircon/get_scdltimer_info
aircon/get_sensor_info
aircon/get_target
aircon/get_timer
aircon/get_week_power
aircon/get_week_power_ex
aircon/get_year_power
aircon/get_year_power_ex
aircon/set_control_info
aircon/set_demand_control
aircon/set_demand_studyinfo
aircon/set_info
aircon/set_price
aircon/set_program
aircon/set_scdltimer
aircon/set_scdltimer_body
aircon/set_scdltimer_info
aircon/set_special_mode
aircon/set_target
aircon/set_timer

Perhaps we should start a wiki page describing the parts of the protocol that have been decoded.

Wiki page is not restricted

Someone could use the wiki to publish spam pages. It happened to my repository once. You should restrict the access.

Intelligent Eye API?

Hi,

thanks for the great document!

I'd like to know if there is a way to get informations from the Intelligent Eye, so I know if there is someone in the room of my Emura.

Thanks!

setled suggestion

Hello, I might have a suggestion about the setled API: it might be setting NOT the internal unit led, but the WiFi controller LEDs

How to install?

Please, can you help us to install your add-on?
Is valid for openhab2?

Thanks

Help please

May I have some guidance on how to install your app?

Multiple units on single webapp instance

Hi,

This tool works like a charm for me. Thanks a lot for your research. Could you add the possibility of controlling several units from the same page if it's not to much work?. The best would be to select on the page one or more units to send command . I have 8 of them in my house and it would be a big improvement for me if you make it possible.
Regards
Nicolas

JSON parse error

Hello

I got 4 Daikin units installed including wireless controller. The official app is working fine, but with the same limitations/problems as described here. This project is a good solution to that.

I tried to set up a webserver on the same network as the units, which is running right now. I copied the code (content of web_gui to my publichtml folder), changed the IP-address of the unit in the config.php page and tried using the webpage as a control for the unit. The controls aren't working, and aren't doing anything. I can click on it but nothing happens.

In the debug console I can find the following errors:

Uncaught SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse ()
at XMLHttpRequest.xmlhttp.onreadystatechange (daikin_ui.js:24)

Uncaught SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse ()
at XMLHttpRequest.xmlhttp.onreadystatechange (daikin_ui.js:79)

Does this error has something to do with the non-working UI?

Thanks for your support

Turn on vacation mode

I have left my unit on with a programmed schedule and I would like to remotely either change the weekly schedule or even better turn on the vacation mode. I have VPN access and the iPhone app does not work through VPN, I did manage to turn in off remotely via /aircon/set_control_info, but every time the weekly schedule changes its setting it turns itself on again. Did anyone figure out what the remote command for tuning on the vacation mode is?

Thanks a lot!

err=255

Thanks för this app!
A question. I have 5 units 3 work well but 2 of my units does not respond to the commands an throw error err=255

http://192.168.0.84/common/basic_info
ret=OK,type=aircon,reg=eu,dst=1,ver=2_2_5,pow=0,err=255,location=0,name=%56%61%72%64%61%67%73%72%75%6d,icon=0,method=polling,port=30050,id=XXXX,pw=XXXXX,lpw_flag=0,adp_kind=2,pv=2,cpv=2,led=0,en_setzone=1,mac=XXXXXXXX,adp_mode=run

Anu idea what is the err=255

http://daikinsmartdbt.jp/

Hi,
Congratulations for this great initiative with a great potential!
What user/pass shall i use to access this page?!
Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.