Daikin summer cooling in Home Assistant: what I learned from building my own control logic

I use Home Assistant to control several Daikin air conditioners during summer.
The main reason for developing my own control logic was a problem I did not expect at first:

The Daikin temperature is not necessarily the room temperature**

The temperature reported by the Daikin indoor unit can differ significantly from the temperature measured in the occupied part of the room.

I use independent Homematic IP wall thermostats as the room reference and have seen differences of around 2 °C.

More importantly, this difference is not constant. It changes during operation depending on cooling activity, airflow and room conditions.

My first idea was therefore to use a fixed offset.

That did not work reliably. An offset that was correct at one moment could be wrong later.

The solution: calculate the Daikin setpoint dynamically

The Homematic IP thermostat is now the leading sensor for room comfort.

Home Assistant controls the Daikin mainly by changing its temperature setpoint.

The important point is that this setpoint is not simply the desired room temperature.

Home Assistant compares:

Daikin actual temperature – Homematic IP actual room temperature

and uses this current difference when calculating the Daikin setpoint.

In simplified form:

Daikin setpoint = desired room temperature + current sensor difference

For example:

  • desired room temperature: 22.0 °C

  • Homematic IP actual temperature: 23.0 °C

  • Daikin actual temperature: 21.5 °C

  • current sensor difference: -1.5 °C

This gives a Daikin reference setpoint of approximately:

22.0 °C - 1.5 °C = 20.5 °C

When there is active cooling demand, Home Assistant can lower the Daikin setpoint further to control the cooling intensity.

So there are two separate elements:

sensor compensation
→ adapts the Daikin setpoint to the current difference between both sensors

cooling intensity
→ determines how aggressively the room should currently be cooled

This was one of the most important findings during development:

The Daikin setpoint is a control variable – not necessarily the desired room temperature.

Hysteresis prevents overcooling

Dynamic setpoint calculation alone was not sufficient.

Close to the desired room temperature, frequent corrections could still result in overcooling.

I therefore added hysteresis.

In simplified form:

Room clearly too warm
→ active cooling and calculate the required Daikin setpoint

Room close to target
→ keep the current control state

Room reaches the target range
→ raise the Daikin setpoint and actively reduce cooling

This separates whether cooling is required from how strongly the Daikin should cool.

Let Daikin do what Daikin does well

Another finding was that I do not need to control every parameter myself.

The fan remains in automatic mode.

Home Assistant determines the temperature setpoint, while the Daikin continues to use its own internal logic to control fan speed and operating behaviour.

For my installation, this works better than trying to replace the complete internal Daikin control logic.

The cloud command limit matters

A further practical problem was the Daikin cloud interface.

In my setup, only about 200 control commands within 24 hours are accepted.

My first versions generated too many setpoint changes and I actually ran into this limitation.

The controller therefore sends a new setpoint only when a meaningful change is required. Very small changes and identical targets do not generate another cloud command.

I also stop control commands before reaching the maximum limit.

My main findings

The most important lessons so far are:

  • use an independent room sensor as the comfort reference

  • do not rely on a fixed sensor offset because the deviation changes dynamically

  • calculate the Daikin setpoint from the current sensor difference

  • treat the Daikin setpoint as a control variable, not as the desired room temperature

  • separate cooling demand from cooling intensity

  • use hysteresis to prevent overcooling

  • leave fan control to the Daikin in automatic mode

  • minimize cloud commands from the beginning

  • include the wider energy context in the analysis: my installation also has a PV system, and Solcast PV forecasts are used as additional information for analysis and optimization

The PV forecast is currently an analysis input, not a direct requirement for the basic temperature control described above. I deliberately keep these two functions separate.

This article intentionally describes only the basic concept of my summer cooling regulation.

The complete system goes considerably further. It includes a central control dashboard, push notifications, energy and PV analysis, and an AI-based analysis layer for monitoring and further optimization.

I plan to cover these parts in separate posts.

I am also developing a dedicated winter heating strategy using the same Daikin units. This introduces additional topics such as PV forecast, energy use and the economics of using the Daikin units for heating. I will share those experiences separately after collecting sufficient real-world data.

For now, I would be interested in one question:

How large and how dynamic is the difference between the internal Daikin temperature and an independent room sensor in your installation?

I use the same idea (use the set point as a relative variable) to control my Midea-made unit: https://medium.com/@florian.mckee/mini-splits-bring-your-own-thermostat-software-edition-753673af8a26

I’ve recently stored 2 Daikins at my mum’s house. I have to set the setpoint to 27c to get 24.5C in reality (per my calibrated Hue sensor).

I don’t mess with the set point other than recognising I need to set it 2.5C higher than I really want.

I use cooling not auto (at least in the summer) - I don’t want it heating by accident.

I only switch the unit off is windows/doors are open or mum is not at home.

I’ve tried to overcome many flaws in Daikin’s software. This is done mainly for heating purposes but it could give You some ideas.

This relies heavily on Faikout and local control.

Hi,

thanks for your feedback and for sharing your experience.

Can I ask if you have integrated your Daikin units into Home Assistant as well, or are you mainly using the Daikin app?

Regarding the fan control: I use the Daikin Auto Fan mode. I do not control the fan speed from Home Assistant. Instead, I let the Daikin internal logic decide the required fan speed and only control the temperature setpoint from Home Assistant.

One important lesson I learned is that I do not use the Daikin operating mode “Auto” for automatic switching between cooling and heating.

This is different from the Auto Fan mode.

With several indoor units connected to one outdoor unit, automatic switching between cooling and heating can lead to conflicts, because all indoor units connected to the same outdoor unit need to operate in the same mode.

Therefore, I avoid the Daikin “Auto” operating mode and keep the cooling/heating mode explicitly defined by the overall system logic. The temperature regulation itself is done by Home Assistant through the calculated Daikin setpoint, while the fan speed remains controlled by the Daikin Auto Fan logic.

The sensor difference between the Daikin and the actual room temperature becomes even more challenging in winter. Warm air rises, and the temperature measured inside the indoor unit can be significantly different from the temperature where people are in the room.

This was one reason why I started with the summer optimization first. It allowed me to develop the sensor compensation and control logic step by step before applying it to heating.

Thanks again for your input. I would be interested to know how you solved the Daikin control part in Home Assistant.

Thanks for sharing this project. I had a look at it and it is very interesting.

I think we are approaching a similar goal from different directions. Your focus seems to be on improving the Daikin behaviour itself, especially for heating, by using local control with Faikout and machine learning.

My current focus is more on the overall room control and the integration of the Daikin units into a larger Home Assistant energy system. For me, the important question is how to achieve the desired room conditions at the right time and under the right overall conditions.

I also use the Daikin units as part of a hybrid heating system together with my existing heating. Therefore, I am currently collecting operational data and analysing the behaviour of the system.

I agree that local control has some interesting advantages, especially because it avoids cloud limitations and provides more direct access to the device.

Your approach is very interesting, especially regarding future analysis and optimization of the device behaviour. I will definitely have a closer look at Faikout.

Thanks again for sharing.

Thanks for sharing this article. This is actually very close to the basic idea of my approach.

I also use the Daikin setpoint as a relative control variable rather than treating it as the actual room target temperature.

The main concept is:

Room temperature → Home Assistant → calculated mini-split setpoint

The room is the system I want to control, and the air conditioner is the actuator.

What I find especially interesting in your approach is the use of an external thermostat instead of relying only on the internal mini-split sensor. This is also one of the main findings in my project: the internal sensor of the indoor unit does not always represent the temperature where people are in the room.

The main difference in my setup is that I also compensate dynamically for the difference between the external room sensor and the Daikin sensor, because this difference changes during operation.

I like the idea of using local control. At the moment I am still using the official Daikin integration, but local control is an interesting direction, especially regarding cloud limitations and future resilience.

Thanks again for sharing. It is great to see that other people are also moving towards room-based control instead of only controlling the internal logic of the mini-split.

HVAC mode and setpoint* 100% controlled by HomeAssistant.

Sorry, was referring to hvac_mode being set to cool. When I mentioned auto, I really meant heat_cool - apologies for the confusion there.

I also have fan_mode on auto.

I have only had the units for 1½ weeks. I am in the UK and it so was only on for a couple of days during the last heatwave. I really haven’t had enough usage to tackle the problem you describe and was only able to notice that I have to set one unit 2.5°C higher than I want and the other unit 2°C higher that I want.

I did get the installer back round and he told me the machine has built-in hysteresis such that the actual temp will fluctuate ~2°C around the setpoint. Regardless, I am not convinced the current_temperature reading is accurate given the sensor’s position in the unit (It drops by several degrees after the unit is switched to cool so is too close to the cooling element. …I have a feeling I will end up using an external temp sensor with logic like yours. I will report back after more trials at the next heat wave.

[Edit: Clarified that automation is for HVAC mode and setpoint only]

Thanks for the additional information. No problem about the auto confusion – I think this is a common misunderstanding because there are different auto settings. The HVAC auto mode controls automatic heating/cooling operation, while fan_mode: auto only controls the automatic fan speed.

It is interesting that you already control hvac_mode and the setpoint from Home Assistant. I think you are already quite close to the approach I ended up with.

Regarding the built-in hysteresis: I think your installer is right that Daikin has internal hysteresis to avoid unnecessary compressor switching. However, this does not solve the complete room temperature control problem.

One of the main findings from my setup was that the Daikin current_temperature value cannot be used as the only reference for room comfort. The main reason is the sensor position. It is located inside the unit and close to the airflow path, so the measured temperature can be influenced by the cooling operation itself. After cooling starts, the sensor value can drop significantly, even though the actual room temperature has not changed by the same amount.

One additional tip from my experience: try enabling both horizontal and vertical louver movement. In my setup, this improved the air circulation in the room and made the Daikin sensor reading slightly closer to the actual room temperature. However, it was still not accurate enough to use it as the only comfort reference.

This is why I use an external room sensor as the reference and the Daikin temperature only as additional information.

I would be very interested to hear about your results after more operation during the next heat wave (assuming we get another one this year…). If you run into problems or want to compare observations, feel free to ask. I am happy to share my experience.

will do - cheers.