New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Daikin WIFI controller BRP084Cxx firmware update from 1.19.0 to 2.8.0 breaks local API #99251
Comments
Hey there @fredrike, mind taking a look at this issue as it has been labeled with an integration ( Code owner commandsCode owners of
(message by CodeOwnersMention) daikin documentation |
I have 2 split systems (FTXM20WVMA and 35 one) installed today which both use BRP084C44. Both come with v1.1.30 firmware and I updated 1 of them to the latest 2.8.0 without knowing anything yet. And then I tried to configure both in Daikin Mobile Controller (I'm in Australia) and only the one with 2.8.0 can be controlled successfully. Weird thing is only in iOS can I see the "update firmware" choice. In Android I just see "adapter does not respond" error. Nothing I can do there in Android. And now that I tried to configure them in HA, both can't be connected. When I tried to configure using Daikin AC integration and manually entered the IP, it just said Unexpected Error:
Not sure if this is related, but just sharing what I had. |
There is a big warning on the integration page: https://www.home-assistant.io/integrations/daikin/ This is probably the same issue with your Only solution as I see it is to use https://github.com/revk/ESP32-Faikin. |
same issue with @epajfl00 |
Same here, have lost connection in HA, was working perfectly prior to updating the daikin wifi module from 1.19.0 to 2.8.0 |
Same issue. Is it possible to downgrade the firmware version 1.9.0 of the AC ?" |
This is not a forum nor a support channel. Please open a discussion in the forum section of Home Assistant and file a complaint against Daikin that they have broken local integration. |
@home-assistant rename Daikin WIFI controller BRP084Cxx firmware update from 1.19.0 to 2.8.0 breaks local API |
@home-assistant close |
The local API must still work, as the app can still access the aircon locally without going to the cloud. Maybe it was changed to require encryption or some other breaking change. |
Thanks for that @starryalley. I had a look but the two captures are not enough to reverse engineer the protocol. However it seems that register p_07 is where the key is. I've extracted the elements from e_3001 of the two captures, and put them in order. Only one register changed between the two commands, see below.
|
@home-assistant reopen |
With support for local api we might be able to make integration work again. Nice findings @starryalley! Please send me pm in the forum so we can document the new api and implement support. |
@icovada can you help us with decipher and implement support for 2.8? |
Interesting, looks like they moved to a more correct use of APIs: POST/PUT with payload instead of GET with args to change stuff! This of course breaks everything... @starryalley could you provide us with a pcap/log file of the requests you saw, possibly starting from when you open the app on your phone? Also as many commands as you can with detailed instructions of what you changed (one thing at a time, obviously) |
Hi, This is the with unit in heating mode, and OFF, switching the set point to 18.5C, note the value in p_03 is 25.
This is in the same state, now switching the set point to 19C, now p_03 is 26.
Now moving up to 19.5c, now p_03 is, you guessed it, 27.
I need to find a better way to do these captures, tcpdump is very basic. |
I also captured the regular handshake of the app. This happens regularly without touching anything on the GUI.
|
Not sure if you or others have seen this doc, it may help in the methodology to decipher. |
Another update...
I can see the temperature set point in the response too. |
Chrisp250, that is get news,!! |
I think either POST or PUT works. but the app uses PUT.
Let me know how you go |
Thank you @icovada. Let me know if you need any more info on the detail I sent you before. |
@icovada You should absolutely not feel that way 😀 We are all very thankfull for your, and everyone elses efforts when and if you chose to offer your time. So thank you! |
Don't be silly. There is NO expectation of your time from me or anyone else here. I am (and I'm sure others are) just grateful for people like you who actively give their time to help the community with no expectation of personal gain. This is litterally one of the most selfless things that I find people engage in within the home automation community. I am working hard to try and skill myself up to the level of a lot of the amazing people who work on these integrations so that I can hopefully give back the way many others have given for me through my journey. I still have a lot to learn but I hope one day to be able to do something just as you have for the people like me. Thank you 🫡 |
@chrisp250 have you tried sending PUTs containing only single values and not entire blocks like the app does? |
HI @icovada, No, I haven't tried that. I'm not sure it would work either. I'm worried about leaving the unit in an in-between state if I sent a single value since the API is now so low level. I think the minimum command would be a mode change setting e3001, p_01. Would it be hard for Home Assistant to send a block instead of a single value? Another option would be to start by restoring the monitoring functionality of the integration so that we can see what mode the unit is on (off, cooling, heating, etc) and what the temperatures (indoors / outdoors) are, and what the set point is and then work on the commands part. Thank you |
No it's not, but I was wondering if a smaller command would do the trick anyway. It's not a matter of home assistant rather of the pydaikin dependency we're using. I've been analysing the jsons from your packet captures and I am quite confident I can implement the basic calls, but I wouldn't know where to get inside/outside temperature. Have you figured out where it is? |
I could probably explore reducing a bit the message, but might need more than 1 parameter. Would that make it easier? For the temperature, see my posts above, I didn't figure out outdoor temperature yet, but I have the 2 set points (cooling and heating) and indoor temperature and humidity: Cheers |
You should definitely not feel like this! Don't feel bad but feel empowered instead because you have an ability to change other people's lives for the better. Idk if this is appropriate but I want to put an award for fixing Daikin 2.8.0 support with HA. I will be happy to send 100$ once it is done. This is not much but this is another type of motivation that may help in this situation. I too cannot live without this integration and can either wait for this fix or replace my AC with another brand which is going to be expensive and painful but I cannot live like this anymore. Shame on you Daikin for breaking this API, that was a bad move. Because of this unneeded change lives were lost, relationships were broken, and I am sure other bad things happened. |
That is extremely nice of you to offer this "bug" bounty, @SmartFoundations! Anyone who wants to contribute is welcome to come over onto @fredrike 's repo for the library used for this integration: https://bitbucket.org/mustang51/pydaikin Unfortunately I was just going through a rewrite to fix another issue I was having (supporting power consumption cap). We just need to set priorities and decide whether this rewrite is beneficial for the future or not, though anyone's contribution is welcome EDIT: Shame on Daikin! Shame! |
Update on how it's going: I've resumed work on the library, now I remember where I left off! The plan is to first rewrite the brp069 integration with the new paradigm, which is something I feel more confident on as I happen to own two of these and I can use my own aircon as guinea pigs for the greater good. I'm using the DaikinClimate object from HASS as base for the new base Pydaikin class to streamline integration (and also avoid reinventing the wheel over and over) Once this will be done, tested and released in v3.0 of the library I can start working on this new integration. I'll keep you updated. If anyone wants to help, do contact me. |
Thank you for all your work on this dude. I know the whole community is cheering you on. I only wish my level of code knowledge was suitable to be able to help you. |
I think this will help @icovada
And Ex. get pv value in Java
|
Dear guys, I found that this author has dissected most of the syntax used in the new API and shared it in the articles they wrote. |
See rospogrigio/daikin_residential#182, Daikin announced there the Daikin Europe Developer Portal |
This is AMAZING news thanks for finding this #jwillemsen. Hopefully this will mean we'll be able to get this integration back on track relatively quickly once all of this comes online. Who knows we might even be able to get a local API running from it which would be EVEN better. |
Not really good news at all that Daikin wants everyone to switch to a cloud integration with ridiculously low polling limits. Might as well use a Sensibo at that point. |
And Europe only? What about Australia/New Zealand/South America/etc. |
is there any update on this? it must be affecting lots of people (me included) but unfortunately I do not have the skills to address it |
Daikin is essentially broken for me as I cannot downgrade. 😕 |
Is the BRP069B4 using the daikin onecta app? If so, you need an integration using the daikin cloud, fe https://github.com/jwillemsen/daikin_residential_altherma |
This Rust app works with my Australian 2022 Daikin Alira X on 2.8.0, adapter BRP084C44, when all HA integrations don't: https://github.com/mzyy94/daikin-homekit Can confirm that this works without having to provide a username and password to login, so assuming it operates with some kind of local API. Running the app autodiscovers the Aircon and creates a new Homekit device. Once added to the phone, the aircon responds instantly. I personally don't know enough to do anything with this, but maybe it will help to develop a solution? EDIT: Homebridge plugin based on undocumented local API in active development here https://github.com/tasict/homebridge-daikin-local-platform |
@sammularczyk I'm on an android device could you please explain how this works and or how it bridges the gap in the HA functionality? |
Hi, The plan is:
|
Your efforts would be incredibly appreciated 🙏 |
Is anyone aware of any changes to this having come down the line yet? |
@icovada Hi! Do you have any news about new API implementation? |
Correct me if I am wrong but this issue should be raised against https://github.com/fredrike/pydaikin and followed from there? |
Hi all, Cheers |
The problem
Recently, there was an update to the Daikin mobile app, when this was updated, it showed that a firmware update was available for the wifi controller which was running at 1.19.0, and all good.
The update was ver 2.8.0 so that was done. The mobile app is fine and controls as expected, all good.
However, HA latest on version 2023.8.3, failed to connect, so all entities are now unavailable.
Tried to communicate directly with the API commands on the host address, “page not found”, was the result for any commands. So I can no longer communicate with it directly, as before.
A firmware roll-back of the update is not possible.
BTW, for information I’ve found that my controller must be a “BRP084C44”.
See below link.
Daikin (daikinthai.com) 2
Any thoughts?
What version of Home Assistant Core has the issue?
2023.8.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Daikin AC
Link to integration documentation on our website
No response
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
No response
The text was updated successfully, but these errors were encountered: