Daikin AC Integration BRP069C4x

@vvv850
Exactly where would I add that config?

configuration.yaml file?
Or somewhere in the UI?


edit:

Answering myself. This goes into the configuration.yaml file, in the utility_meter section.
Adapt to your own sensor names of course.

utility_meter:
  atticac_energy:
    source: sensor.attic_ac_daily_cool_energy_consumption
    cycle: daily
    name: Attic AC Energy

A bit of a half-bump here… does anyone know of a good third-party device that I could fit that gives local API and power monitoring? Have attempted to play around with @rospogrigio’s code and debug deeper but it really seems like its actually the cloud platform that is taking that long to respond.

Has anyone got this working with the new cloud module model number AZAI6WSCDKB? That model is not listed on the integration page, but I can’t find any of the supported modules available anywhere (in the US). Everyone tells me I need the “new model number”.

Hi all,

Using a heat pump with the BRP069C4x and the https://github.com/speleolontra/daikin_residential_altherma integration - that should work afaik.

But when accessing Integrations and entering the username (email) and password, I get:

Logger: custom_components.daikin_residential_altherma.config_flow
Source: custom_components/daikin_residential_altherma/config_flow.py:59
Integration: daikin_residential_altherma ([documentation](https://github.com/speleolontra/daikin_residential_altherma), [issues](https://github.com/speleolontra/daikin_residential_altherma/issues))
First occurred: 6:49:48 PM (2 occurrences)
Last logged: 6:58:39 PM

Failed to retrieve Access Token: ('Login failed: %s', Exception('Unknown Login error: Login Failed Captcha Required'))

Does anybody know if they’ve changed something as the error says Captcha Required ?

I just wanted to chime in on the praise :slight_smile:
For my heat pump this was the proper repository:

I spent a bit of time on the this on https://github.com/rospogrigio/daikin_residential, which simply did not find any devices, but neither returned any errors.

Hello,

I’m one of those who regret buying this device. While the work you people have done here is great, I too would love to be able to control (or at least query the state of) the device without depending on the cloud service to be available (for another 10 or 15 years!) - and without having to get more obsolete or self-made hardware just for that purpose.

So, in order to remove the cloud from the equation, I think these are the options:

1) find a way to connect to the device locally.

While the device listens to port 80, I’ve found no interesting urls. There seems to be just the root path: the license list. But is there really HTTP server only for listing the licenses? Maybe more research is needed! Edit: see below.

I would like to try looking inside the firmware to find clues, but I don’t know how to find the download url, since I cannot eavesdrop the device traffic (see below). I’d be glad to hear if anyone has ideas on this.

2) present a fake cloud API to the device.

It seems that the device connects to a3kcc1b80m5pmv-ats.iot.eu-west-1.amazonaws.com (possibly not always the same address) and keeps an open connection to 443. When I change a setting in the mobile app, the server sends the command via the TCP connection. Looks like a websocket, as someone mentioned already.

Could we forward this traffic to our own server instead, and mimic the cloud service?

I tried setting up mitmproxy to intercept the connections, but the device seems to check the server certificate (as it should). Looks like a dead end.


I also had a brief look at the Android app. It’s Hermes bytecode, and will be a bit easier to investigate once the disassembling tool supports v84 bytecode (https://github.com/bongtrop/hbctool/issues/12). But I’m not sure we can find anything of value there, not even the firmware upgrade urls. They might only be in the firmware itself.

Then there’s the Wifi AP mode. I suspect it only allows one to set up non-WPS Wifi connection, instead of e.g. using the phone as a proxy even temporarily. Anyway, MITMing the app might give us something, but it’s a long shot.

I’m out of ideas. :confused:


Edit 2022-02-04: the http server does have something else. So far I found:

/config/adapter/user_info
  {"rsc":2000,"method":"polling","resource_id":123456}
  # id redacted

/config/adapter/datetime
  {"rsc":2000,"date":"2022/2/4","time":"10:6:56","sta":2}

/config/adapter/timezone
  {"rsc":2000,"tmdf":120,"dst":1,"zone":150}

/config/adapter/product_info
  {"rsc":2000,"model_name":"����������������������������������������","serial_number":"000000000000","region":"eu","device_type":0,"device_kind":"RA"}
  # (model name is just hex `FF FF FF` ...)

/config/adapter/err_info
  {"rsc":2000,"cnt_net_err":1,"con_ltime":"2022/02/03 18:58:01","discon_ltime":"2022/02/03 18:57:17","boot_cnt":5,"reboot_cnt_ping":1,"reboot_cnt_sync":0}

/config/firmware/info
  {"rsc":2000,"version":"1_12_51","revision":"59F98A32","sw_id":"19002923","edid":"0000000003365089"}

/config/firmware/update
  GET Method Not Allowed
  # (here's how to brick your device? :))

/config/system/reboot
  # (didn't try yet)

/config/wlan/settings
  {"rsc":2000,"ssid":"abcdef","security":"mixed","link":1,"rssi":-54,"sec_type":"WPA2"}
  # ssid redacted

/config/wlan/scan/result
  {"rsc":2000,"cnt":0}

/config/wlan/scan/start
  # (didn't try)

/config/cloud/connect
  # Android app includes this string but the url return 404. Maybe for different model, or maybe it gives 404 once it's connected.

Someone else had also found these endpoints, see Daikin Airconditioning & WiFi module - #68 by jons. Anyway, none of this looks promising.

2 Likes

If the controller turns out to be a complete dead end, you might want to try MITM’ing between the controller and the unit itself to try and reverse engineer that protocol?

For power monitoring I am installing a Shelly 1PM, it will be a lot more accurate & locally accessed, rather than the estimate calculated by Daikin control. The Shelly also had one relay, which maybe possible to interface with on/off or demand response. I have four outdoor units, so 4x Shelly 1PM to cover all.

For local API control I have been looking but there aren’t a lot of options, the old Daikin BRP072A42 does allow local control (I managed to pick one up on eBay) or I have found some third party options:

https://www.paladinsolarcontroller.com.au/technical/

1 Like

Hmm… you give me much pause for thought here… I have seen similar. But not quite the same… have seen nothing other rhan the outgoing 443 (assume websocket) going on. I suspect individual devices behave differently.

As much as we want our network autonomy and low latency I guess that what happens with platforms like Tuya is they abtract the individual devices and their nuances behind a standard API interface that doesn’t change in a single firmware update.

Unfortunately I can’t say that Daikin is where it needs to be with the APIs.

Let me try to replicate your results once my home network upgrade is in and we can compare notes… quite willing to tear the PCB out of one of my devices to try reverse engineer since the wifi adapter that probably added $200 to the device cost does absolutely nothing for me anyway.

Though, frankly, none of this would be necessary if there was a Daikin-supported Hass integration or even, like Tuya, a standard spec and the ability to pull down a key. Admittedly, if they developed a supported integration, we would not have to deal with this problem (e.g. if Home Assistant was like their Alexa and Google Home integrations). This will come as the Home Assistant project grows.

1 Like

Summarised pretty well, I have been struggling to get this properly integrated into my IoT Setup for a while and I am looking for the same cloud-independent approach as you do.

I was checking some traffic from my iPhone (192.168.1.13) when opening the Daikin App and I do get the following info:

Internet Protocol Version 4, Src: 192.168.1.13, Dst: 255.255.255.255 
User Datagram Protocol, Src Port: 6125, Dst Port: 30050 
Data: 4441494b494e5f5544502f636f6d6d6f6e2f62617369635f696e666f 

which translates to

 "DAIKIN_UDP/common/basic_info"

That last bit made me actually post this. Could the app actually be polling some kind of information from the AC locally? Or where does that point to?

What is interesting as well: When trying to sniff traffic on the IP address of the AC, there is nothing to see even though I am pushing commands via Daikin App / Node-Red through the cloud.

Maybe this helps somehow?

1 Like

In other news I think I may just have found the cause of the delay… the “body” of the aircon was between the nearest AP and the wifi module.

Ironically, if the signal is poor and protocol is UDP it would explain the dropped messages, timeouts, etc. This device doesn’t seem to send back a response most times, it just takes a long time to return or just hangs.

Going to try a new WiFi AP in the room, but in the meanwhile the timeouts seem to have stopped when I threw the offending Daikin out of my home profile and now the cloud responds fine.

Thanks for the hint. The device does reply with UDP, but seemingly in only this endpoint:

# echo -n 'DAIKIN_UDP/common/basic_info'| nc -u 192.168.7.7 30050
ret=OK,type=GPF,cdev=RA,protocol=DGC,reg=eu,ver=1_12_51,rev=59F98A32,comm_err=0,lpw_flag=0,adp_kind=4,mac=9C50D1123456,ssid=DaikinAP123456,adp_mode=ap_run,method=polling,name=REDACTED,icon=0,edid=0000000003365089,sw_id=19002923

I disassembled the Android app with this fork and found some more very promising strings, but was unable to get any replies. Probably they are for a different model:

DAIKIN_UDP/debug/en_multireq 1
DAIKIN_UDP/debug/ev_log_disp
DAIKIN_UDP/debug/loglevel=i
DAIKIN_UDP/debug/loglevel=v
DAIKIN_UDP/debug/myconsole
DAIKIN_UDP/debug/nodeDataExch
DAIKIN_UDP/debug/s_debug_off
DAIKIN_UDP/debug/s_debug_on
DAIKIN_UDP/debug/timeinfo

I tested these strings with an older Model (Controller BRP069A81) as well as with the new controller and did not get any results for both of them.

Hmmm… it turns out that the timeout behavior that I was seeing (below) is actually due to an intermittent WiFi signal problem… it seems that the Daikin cloud platform doesn’t really return anything useful in the scenario when it is unable to contact the aircon’s WiFi controller.

So, since it was time for a change anyway, I literally ditched my Asus Merlin and went with a new Ubiquiti high density setup. Problem resolved (though with only 4m between the AP and the Air Conditioner, the UDM reports 65% connection quality though at 100% signal). In my head this is because there is a lot of metal in the vicinity of the aircon’s WiFi adapter… If anyone is thinking of buying one of these air conditioners, its definitely something to bear in mind… anyhoo, it works now.

Updating daikin_residential sensor took longer than the scheduled update interval 0:00:30

Hello,
I have an Perfera Daikin heat pump with the BRP069C4x and EU model. I didn’t find on the topic if you can control your heat pump with HA. I tried 2 components (https://github.com/speleolontra/daikin_residential_altherma) and Daikin Altherma HVAC but they didn’t work :frowning_face:.
Is it the same thing for everybody ?

I used the Daikin AC integration in Home Assistant on my BRP069C4x EU model.
Just added the host/ip-adress and skipping the api and password.

Hello,
I’m surprised by your answer, because when I do the same thing, I have an error (in french sorry):
image

With this error message :

Logger: homeassistant.components.daikin.config_flow
Source: components/daikin/config_flow.py:94
Integration: Daikin AC (documentation, issues)
First occurred: 14:35:44 (1 occurrences)
Last logged: 14:35:44
Error creating device, 192.168.x.xx is not supported.

What is your HA version ?
How can we compare our Daikin model ?

No worries about the french I see what you mean. That’s wierd.
My HA version is 2022.2.9.
The Daikin model is: FTXM35N2V1B. Manufactor date. 2019/03 (should be and looks like Perfera)
The Wifi adapter is: BRP069C41

I’m not sure (don’t remember) but I think I had the same problem as you did.

For some reason I switch my mobile app for Android (I used Daikin online controller before) to a new app called ONECTA (previously known as Daikin Residential Controller).

That might have solved my problem. Not sure. Its up to you to try it.
Hope that helps.

Here’s the firmware version of the wifi-adapter: 1_14_53.

There’s a new one for update but I have not installed it yet as I don’t know how that will effect my integrations.

Ohh sorry, I see now in the App that I have the BRP069B4x adapter. :frowning:
Don’t know if that has to do with it.

I confirm to you, this adapter is compatible with Daikin AC component. But during this time, I found a custom component which work with my AC : https://github.com/rospogrigio/daikin_residential

All informations are on the github. I’m not really trying for the moment, but I see my new AC.

2 Likes