Optimizing Daikin Altherma Hot Water Tank Control with Solar Energy via ONECTA Cloud API

Hey everyone,

I’m trying to integrate my Daikin Altherma air-to-water heat pump (specifically the Domestic Hot Water (DHW) tank) with Home Assistant to optimize the use of excess solar energy. I’m using the ONECTA Cloud API to control the system.

My goal is to increase the desired temperature of the DHW tank when my solar panels produce excess energy, essentially using the tank as a thermal battery. However, I’ve run into a couple of limitations:

1.	The API doesn’t allow programmatic control of the DHW tank’s desired temperature.

This is also not possible via this integration GitHub - jwillemsen/daikin_onecta: Home Assistant Integration for devices supported by the Daikin Onecta App
2. There is only one possible schedule configuration for the tank, which isn’t flexible enough for my needs.

While I can switch the boost mode on or off via the API, boost mode consumes too much energy at once, which doesn’t align with my goal of gradual, efficient energy use.

Has anyone figured out a workaround to control the DHW temperature, or set up more flexible scheduling based on solar production? Any tips or experiences on how to better manage this with Home Assistant or extend the API capabilities would be much appreciated.

Thanks in advance!

Hi!

Having the same challenge here.
Did you eventually find a solution?

Thanks!

After much trial and error, and deciphering of section 5.7.5 of the Daikin User reference guide (“To change the domestic hot water temperature”), this has worked for me…

On the main control unit, as Installer:

  • set Tank to Reheat Only (i.e. no schedule, nothing else controlling hot water temperature)
  • set Tank WD Curve to Fixed (i.e. not weather dependent, as that would try to control something)
  • set Eco to the lowest Hot Water value you’re ever likely to request via the API / jwillemsen’s HACS repo for Home Assistant (wiki link). Try a value lower than this, it gets set back to the old value after ~2 minutes. e.g. 30.
  • set Maximum to the highest Hot Water value you’re ever likely to request (e.g. 60)
  • log back in as User

Be patient, make a change, give it a few minutes to confirm all is as expected / has stayed as expected.

I’ve dropped an email to [email protected]

perhaps if they get enough requests they’ll finally act and fix this:

Good morning,

Pease could this be forward to your onecta app and the team that works with the API?

I, along with with many other people online are crying out for you to allow us to be able to adjust the hot water tank temperature via the app and via your api.

Currently the only way to do it is to go into the app, go to scheduling, go to edit the schedule, select the current day, then add a new time slot, then wait up to ten mins (because the app defaults to 10 min increments) then wait for the heat pump to start heating the hot water to the comfort temperature

Instead why not add an option the same as heat so people can select what temperature they want the tank to be exactly and also allow people to use the api to make the heat pump increase water tank temperature when they have excess solar or when there’s cheap electricity when it;s windy etc. Currently you only allow “powerful” mode to be controlled in this way but it uses 3-4 times the amount of energy.

Please - we’re begging you, this can;t be the first time this has come up?

Kind regards

Hi there!

Over the last week, and thanks to the pointers of Kevin in above message, I managed to figure it out myself (and this while I’m in fact also closely linked with Daikin :sweat_smile:).

What I did:

  1. I followed Kevin’s instructions and adjusted my Altherma indoor unit to the settings he proposed. Only thing I still want to check is the “ReheatOnly” setting, as I’m planning to fully control the Domestic Hot Water (DHW) via the API & Home Assistant.

  2. Based on the referenced documentation from jwillemsen (Home · jwillemsen/daikin_onecta Wiki · GitHub), I figured out how to do this.
    Based on my understanding, my biggest finding is that you have 2 controls when activating the HA integration: one for DHW and one for underfloorheating.
    The confusing thing of the standard integration (at least in my installation) is that the first one does not seem to come up very clearly in HA as a thermostat, causing some inital confusion at my side as well (also due to the naming). In order to distinguish, I changed the naming & the logo in my HA instance:


  3. Once this was done, I used Node-Red to build my flow. It’s still quite rudimental, and for sure will be improved the coming weeks, but I hope it gives you an idea:

The Node-Red flow hopefully/probably explains itself a bit. You’ll also notice there are still some blocks that still represent ideas (e.g. consider the forecasted solar power, differentiate on week days vs. working days) that I still need to consider in my logic. This is on my schedule the coming weeks.

In order to steer this process, I’ve created 3 helpers in the flow (that I also include on my dashboard):

  • “Minimum t°” is the lower boundary; I’ll only start creating hot water if it drops below that threshold. This to make sure I don’t end up in an on/off cycle.
  • “Target t°” speaks for itself.
  • “DHW override”: as you can see in the flow, when this is enabled, it skips all logic. This is a “times of the day” implementation just to make sure that I have hot water in the evening (e.g. during the winter days):

Finally, and this is what you’re probably looking for, the final blocks in the flow influence the behaviour to create the DHW:

  • Switching on the heatpump for DHW is configured like this:


    Simply replacing the “heat_pump” by “off” in a copied node switches it off again.

  • Setting the tank temperature is done like this:


    The t° value is now coming from the above helper that is read out earlier in the process (and stored in the msg), but if you want, you can also hardcode this yourself.

Again, I’m quite new in Node-Red (only using it for a couple of weeks) and the flow is still a WIP, so most likely I’ll still optimize it in the weeks to come, and I also still need consider winter season in my logic (e.g. other thresholds in checks, other thermostat in HA), but I hope it at least gives you an idea how I’m doing it for the moment and allows you to get started as well…

2 last remarks:

  • You see that I also do a check on the outdoor t° in my flow, which should be lower than 24 °c. Apparently, it seems that during summer and when the outdoor t° is higher than this, the heatpump will also use it’s backup heater (which is not that inefficient). Still need to sort out if that’s as well applicable for my specific unit (ERLA), but decided to keep this in to safeguard the efficiency by avoiding the backup heater.

  • On weekly basis, and preconfigured by the installer, the heatpump is also performing a desinfection cycle (to hold off things like Legionella).
    Traditionally, this was planned on Friday afternoon on a fixed moment, not considering if there is solar energy available or not.
    As this step really uses the back-up heater to get the tank t° from 50°c to 70°c, it might be a further optimization to also steer this from HA, but then you need to make sure it runs at least once a week.

Hope the above makes sense… I’ll anyhow continue to iterate on this flow the coming weeks and update you on the progess.

Happy to listen to your feedback, comments & ideas!

Good luck! :four_leaf_clover: